SpringMVC没有接受到参数的坑
其实说上来也不是SpringMVC的坑。
相同的一份代码,我在windows上用mvn打成jar放到linux上执行,POST请求可以接收到参数;
但是我直接在linux上从git拉取分支,并在linux上打包部署这个POST请求就是接受到不到参数,真的是一毛一样的代码打成的包,开始我解决的思路在以下几个地方:
mave在linux下打包和windows下打包有差异?找了很久发现没有这个问题。
spring mvc的源码也翻了一下,发现问题是在Request的body中有byte数组,字符串的参数以字节的形式放在其中,但是ParameterMap中就是一个参数都没有,而windows下打包运行Parameter中就有参数,虽然发现了这个异样,但是没能定位问题,以为是tomcat有问题。
spring boot的tomcat接受参数有问题,在windows下和linux下不一样?网上查了一下内置的tomcat似乎没什么bug。
真的是要抓狂了,搞了好几天都没有解决这个问题,害的我写的一键部署的bash脚本都没法用了,每次都是在windows上打包,然后用ftp发到linux上部署,太痛苦了。
。
。
。
。
。
。
。
。
最后准备放弃的放弃的时候,突然随便点点目录,在某个犄角旮旯还有一个文件夹,里面有4个Filter(接手别人的项目),我真是日了狗了,立马把这4个Filter删掉,然后重新在linux下打包部署,测试一下果然收到了参数(POST,form)。
令我疑惑的是为啥同样是一份代码,windows上可以接受到参数,而linux接受不到参数?我没有深究,已经受伤了。。。
另外,要吐槽一下这个代码,虽然被我伤了n多的AOP和Filter,没想到还是有一个遗留的Filter。就我个人而言,业务可以复杂,但是项目结构不要负载,不要弄各种AOP和Filter,除非不得已。除了问题真的可以搞死人。不要随便秀操作,谢谢。
P. S.
HttpServletRequest中的流只能读一次,再读的话就会报错,好像以后特殊的处理可以读两次
SpringMVC没有接受到参数的坑的更多相关文章
- Springmvc之接受请求参数二
Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action ...
- springmvc 接受json参数的坑
构造json数据时候js对象中的值 一定要用 "" 双引号,不能用单引号,因为转成字符串后,到后台进行解析时,因为java认为单引号是单字符 ,转不成对应的字符串,所以会报错! 如 ...
- SpringMVC接受JSON参数详解及常见错误总结我改
SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...
- SpringMVC接受JSON参数详解及常见错误总结
SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...
- SpringMVC接受JSON参数详解
转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...
- SpringMvc接受请求参数的几种情况演示
说明: 通常get请求获取的参数是在url后面,而post请求获取的是请求体当中的参数.因此两者在请求方式上会有所不同. 1.直接将接受的参数写在controller对应方法的形参当中(适用于get提 ...
- SpringMVC中post请求参数注解@requestBody使用问题
一.httpClient发送Post 原文https://www.cnblogs.com/Vdiao/p/5339487.html public static String httpPostWithJ ...
- springmvc Controller接收前端参数的几种方式总结
(1) 普通方式-请求参数名和Controller方法的参数一致 @Controller @RequestMapping("/param") public class TestPa ...
- 【SpringMVC】获取请求参数
通过ServletAPI获取 test.html <a th:href="@{/testServletAPI(username='admin',password=123456)}&qu ...
随机推荐
- (面试)写出下面switch语句的输出结果
(1) public static void main(String[] as) { int a = 0; switch (a) { case 1: System.out.println(&q ...
- SNF平台从sql server兼容oracle的处理方式和开发方式
前几天有这样一个需求,就是让SNF平台BS版的基础程序全面支持Oracle数据库. 初一看这是一个很大的工程,因为大家都知道 Sql和Oracle的语法有很多的不一样,如 top .日期获取.类型之间 ...
- 内心的平静就是财富本身-Cell组件-用友华表的由来-T君
时至今日,Cell组件仍是应用广泛的商业报表组件 作者:人生三毒 编者注:本文作者人生三毒为知名网站及网页游戏公司创始人,此前曾为IT类媒体资深编辑,见证了中国互联网早期的发展. 认识T君之前先认识的 ...
- 如何在 Mac 上通过 Boot Camp 安装 Windows?
如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...
- js日期操作,某天的N天后,一个月后的日期
var date = new Date(); var tomorrow = date.setDate(new Date().getDate() + 10); //10天后的日期 console.log ...
- UI控件篇——UIPageControl及其自定义
UIPageControl类提供一行点来指示当前显示的是多页面视图的哪一页.当然,由于UIPageControl类可视样式的点击不太好操作,所以最好是确保再添加了可选择的导航选项,以便让页面控件看起来 ...
- 【Unity】4.7 摄像机
分类:Unity.C#.VS2015 创建日期:2016-04-11 一.简介 摄像机(Camera)是为玩家捕捉并展示世界的一种设备.场景中至少需要有一台摄像机,也可以在一个场景中使用多台摄像机.这 ...
- 从头开始学习vue-router
一.前言 要学习vue-router就要先知道这里的路由是什么?为什么我们不能像原来一样直接用标签编写链接哪?vue-router如何使用?常见路由操作有哪些?等等这些问题,就是本篇要探讨的主要问题. ...
- 如何正确的重写equals() 和 hashCode()方法
比较两个Java对象时, 我们需要覆盖equals和 hashCode. public class User{ private String name; private int age; priva ...
- Angularjs学习笔记5_scope和$rootScope
$rootScope $rootScope 是最顶级的scope,它对应着含有 ng-app 指令属性的那个DOM元素. app.run(function($rootScope) { ...