先贴出来简单得不能再简单的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交互处理不当导致的。本文记录下来,以备园子里其他同学做参考。

转载于:https://www.cnblogs.com/buguge/p/11153677.html

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

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

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

  2. asp.net获取页面url参数值的实现代码实例

    asp.net获取页面url参数值的实现代码实例 file: default.aspx.cs using system; using system.data; using system.configu ...

  3. Servlet 获取IllegelStateException

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

  4. JS获取URL中参数值(QueryString)的4种方法分享

    http://www.jb51.net/article/48942.htm JS获取URL中参数值(QueryString)的4种方法分享 作者: 字体:[增加 减小] 类型:转载 今天碰到要在一个页 ...

  5. java servlet 获取路径问题_Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析...

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是webroot 在class文件中,根目录是webroot/web-inf/classes 当然你也可以用system.getpro ...

  6. servlet获取相对路径 绝对路径

    servlet获取相对路径 绝对路径 转载于:https://www.cnblogs.com/hfultrastrong/p/8168016.html

  7. java.net.url 中文乱码,.Net获取URL中文参数值的乱码问题解决方法总结

    本文总结分析了.Net获取URL中文参数值的乱码问题解决方法.分享给大家供大家参考,具体如下: 解决方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进 ...

  8. html获取url参数值,js获取url中参数值的两种方法

    本节主要内容: js获取url中参数值. 方法1:正则分析法 复制代码 代码示例: function getQueryString(name) { var reg = new RegExp(" ...

  9. Servlet获取全路径

    2019独角兽企业重金招聘Python工程师标准>>> Servlet获取全路径: request.getScheme()+ "://" + request.ge ...

最新文章

  1. 自定义View的三种构造方法
  2. requestmapping配置页面后_@RequestMapping使用须知
  3. ubuntu mysql5.6 编译安装_Ubuntu14.04编译安装mysql5.6.26
  4. Linkedin工程师是如何优化他们的Java代码的
  5. NumPy学习笔记(一)
  6. mybatis-通用Mapper
  7. 20万数据 sql 快还是 java快?_H2数据库学习(一)
  8. 日本新年传统习俗介绍(二)
  9. BZOJ 1571: [Usaco2009 Open]滑雪课Ski
  10. 3803. 数组去重-AcWing题库
  11. 腾讯进军播放器,QQ影音能否撼动暴风影音?
  12. idea实现Tomcat热部署
  13. SonarQube检测出的bug、漏洞以及异味的修复整理,最新java技术栈
  14. 全网最详细elasticsearch7.10.2安装手册
  15. 如何将excel三列数据合为一列日期数据
  16. 给一个字符串数组,判断其是否是首尾相连的
  17. 美赛 LaTex排版笔记
  18. Beetl2.7.13 中文文档
  19. 模型部署入门教程(一):模型部署简介
  20. ionic2 city-picker 报_dur错误

热门文章

  1. 三种主流的Kubernetes部署方式
  2. Debian 8 在虚拟环境中安装kivy
  3. Gitlab的使用总结
  4. 配置WIN2003远程桌面的客户端连接数
  5. windows10下 tensorflow gpu版本安装配置方法
  6. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...
  7. 测试面试题集-1.测试基础理论
  8. 【NeurIPS2020】Google点针图网络,Pointer Graph Networks
  9. Layer2匿名交易协议ZKCHAOS与跨链资产桥ChainSwap合作促进跨链隐私保护
  10. OMG Network与安全多方计算提供商Enya达成合作