先貼出來簡單得不能再簡單的demo頁面效果:
察哈爾右翼前網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,察哈爾右翼前網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為察哈爾右翼前千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的察哈爾右翼前做網(wǎng)站的公司定做!
如下是spring mvc的Controller:
@RequestMapping("mytest")
@Controller
public class ZhangTestController {
private Logger log = LogManager.getLogger();
@RequestMapping(value = "toCancel")
public String toCancel( HttpServletRequest request, HttpServletResponse response, String orderNo){
log.info("orderNo={}",orderNo);
request.setAttribute("orderNo", null);
return "mytest/toCancel";
}
}
如下toCancel.jsp頁面,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html;charset=UTF-8" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="${pageContext.request.contextPath}/static/yimei/js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#chargeQuery").click(function () {
$("#inputForm").submit();
});
});
</script>
</head>
<body>
<form id="inputForm" action="" method="post" class="form-horizontal">
<input type="text" name="orderNo" id="orderNo" value="${orderNo}"/>
</form>
<span class="buyer pay-credit" id="chargeQuery">取消訂單</span>
</body>
</html>
如上,當(dāng)通過瀏覽器訪問http://localhost:8083/mytest/toCancel?orderNo=123,通過log可知打印出來的orderNo=123,這沒什么可質(zhì)疑的。
but,然后,再點(diǎn)擊頁面上的“取消訂單”,打印出來的日志你猜是什么?好奇的你,急于想知道答案的話就Ctrl+A吧~~orderNo=123,null
是不是完全出乎你的意料?!
如何解釋這種情況?
我的理解:servlet在解析請求參數(shù)的值時(shí),會通過逗號拼接所有地方的請求。本例orderNo參數(shù)的取值,包括get方式的orderNo參數(shù),還包括form表單里的name="orderNo"域的值,所以,點(diǎn)擊按鈕事件時(shí),orderNo參數(shù)的值是“123,null”。
今天在對生產(chǎn)排障時(shí),奇怪的發(fā)現(xiàn),查單的sql語句里,where條件中orderNo的參數(shù)值不是一個(gè)特定的字符串,而是“123,null”或“123,123”,最后發(fā)現(xiàn)原來是jsp頁面和webcontroller交互處理不當(dāng)導(dǎo)致的。本文記錄下來,以備園子里其他同學(xué)做參考。
當(dāng)前標(biāo)題:別不信!servlet獲取到的參數(shù)值,也許完全出乎你的意料!
本文鏈接:http://chinadenli.net/article24/pijgje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、電子商務(wù)、服務(wù)器托管、虛擬主機(jī)、、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)