別不信!servlet獲取到的參數(shù)值,也許完全出乎你的意料!-創(chuàng)新互聯(lián)

先貼出來簡單得不能再簡單的demo頁面效果:

主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設(shè)項目的能力。

別不信!servlet獲取到的參數(shù)值,也許完全出乎你的意料!

如下是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>

如上,當通過瀏覽器訪問http://localhost:8083/mytest/toCancel?orderNo=123,通過log可知打印出來的orderNo=123,這沒什么可質(zhì)疑的。

but,然后,再點擊頁面上的“取消訂單”,打印出來的日志你猜是什么?好奇的你,急于想知道答案的話就Ctrl+A吧~~orderNo=123,null

是不是完全出乎你的意料?!

如何解釋這種情況?

我的理解:servlet在解析請求參數(shù)的值時,會通過逗號拼接所有地方的請求。本例orderNo參數(shù)的取值,包括get方式的orderNo參數(shù),還包括form表單里的name="orderNo"域的值,所以,點擊按鈕事件時,orderNo參數(shù)的值是“123,null”。

今天在對生產(chǎn)排障時,奇怪的發(fā)現(xiàn),查單的sql語句里,where條件中orderNo的參數(shù)值不是一個特定的字符串,而是“123,null”或“123,123”,最后發(fā)現(xiàn)原來是jsp頁面和webcontroller交互處理不當導致的。本文記錄下來,以備園子里其他同學做參考。

別不信!servlet獲取到的參數(shù)值,也許完全出乎你的意料!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標題名稱:別不信!servlet獲取到的參數(shù)值,也許完全出乎你的意料!-創(chuàng)新互聯(lián)
文章源于:http://bm7419.com/article44/goshe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、做網(wǎng)站電子商務(wù)、ChatGPT、標簽優(yōu)化全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)