先贴出来简单得不能再简单的demo页面效果:

如下是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,这没什么可质疑的。

but,然后,再点击页面上的“取消订单”,打印出来的日志你猜是什么?好奇的你,急于想知道答案的话就Ctrl+A吧~~orderNo=123,null

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

如何解释这种情况?

我的理解:servlet在解析请求参数的值时,会通过逗号拼接所有地方的请求。本例orderNo参数的取值,包括get方式的orderNo参数,还包括form表单里的name="orderNo"域的值,所以,点击按钮事件时,orderNo参数的值是“123,null”。

今天在对生产排障时,奇怪的发现,查单的sql语句里,where条件中orderNo的参数值不是一个特定的字符串,而是“123,null”或“123,123”,最后发现原来是jsp页面和webcontroller交互处理不当导致的。本文记录下来,以备园子里其他同学做参考。

别不信!servlet获取到的参数值,也许完全出乎你的意料!的更多相关文章

  1. 解析URL 获取某一个参数值

    /** * 解析URL 获取某一个参数值 * * @param name 需要获取的字段 * @param webaddress URL * * @return 返回的参数对应的 value */ - ...

  2. servlet获取参数时,request.getParameter("id")参数获取失败

    servlet获取参数时,request.getParameter("id")参数获取失败,这里的参数是“index”里面href中的参数 要注意,取不到值,是不是要取的参数有没有 ...

  3. Servlet获取URL地址

    这里来说说用Servlet获取URL地址.在HttpServletRequest类里,有以下六个取URL的函数: getContextPath 取得项目名 getServletPath 取得Servl ...

  4. JavaWeb学习记录(八)——servlet获取配置信息

    jdbc.properties内容如下: jdbcUrl=jdbc\:mysql\://localhost\:3306/animaluser=rootpass=root servlet获取资源信息代码 ...

  5. Servlet 获取IllegelStateException

    Servlet 获取IllegelStateException: response提交之后,进行requestDispatcher.forwar(),会产生这样的问题: 但是必须是outputStre ...

  6. 获取url地址参数值

    获取url地址参数值方法: function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + &q ...

  7. servlet获取request数据的乱码解决

    例如请求中有: /score?type=Mana&name=${user.name} ***************************************************** ...

  8. 【js操作url参数】获取指定url参数值、取指定url参数并转为json对象

    获取指定url参数值 /* 获取某url中的某参数值 调用:GetUrlQueryString("[url地址]","[参数名]"); */ function ...

  9. 用Servlet获取表单数据

    用Servlet获取表单数据 在webroot下新建userRegist2.jsp 代码如下: <%@ page contentType="text/html;charset=gb23 ...

随机推荐

  1. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条

    可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...

  2. 【30天自制操作系统】day03:读写磁盘

    软盘 80个柱面,2个磁头,18个扇区 每个扇区 512 字节,共 1440 KB 读磁盘汇编 读取 10 个柱面到 0x0820 内存位置 ;读取磁盘 MOV AX,0x0820 MOV ES,AX ...

  3. REST架构指导方案

    目录 REST架构指导方案 何为REST 在WEB系统中应用REST风格 应用约束 对资源应用正确的动词语义 名词性的URI地址 RESTFUL的URL路径实践 单一资源的路径制定 复杂查询的路径制定 ...

  4. 原生js的2048的制作过程

    1.首先我们来看一下效果图 开始: 结束: 接下来我们来实现代码部分: HTML部分: 2048大家应该都玩过,首先我们要准备16个盒子让它4*4排列,这里的css我就不说了,这应该使我们都会的,在这 ...

  5. Newifi D1或 D2在Openwrt中,启用硬件NAT,启用BBR

    Newifi D1或 D2在Openwrt中,启用硬件NAT,启用BBR 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-09-27. 启用 mt7621的硬件nat (Newifi ...

  6. DUBBO: xml文件无法解析

    xml是: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/ ...

  7. ionic项目打包+部署

    环境: 1.ionic 2.angular-cli  开发 1.CTRL C + CTRL V 2.图片路径的问题 使用‘assets/xxxxx.jpg’,而不使用‘../../assets/xxx ...

  8. Android WebView与H5联调技巧

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/78 背景: 突然想写一篇关于Android WebView ...

  9. AVAssetDownloadURLSession

    NSURLSession 的子类,用于支持创建和执行资产下载任务的URL会话,主要是用来下载HLS资源内容的 AVAssetDownloadURLSession reference https://d ...

  10. "(error during evaluation)" computed

    在vue-cli搭建的去哪网app项目中使用了  computed  计算属性 computed计算属性在chrome插件中的 vue devtools 插件中报错 应该显示出来 computed 属 ...