菜鸟调错(九)——POST方法提交参数丢失问题
来源:互联网 发布:京东店铺怎么优化 编辑:程序博客网 时间:2024/05/20 11:24
在解决一个bug的时候,发现post提交上来的参数,有部分丢失了。经过一番查证,有资料说,Tomcat的server.xml中有一个maxPostSize属性,默认是2M。于是将其值显式置为0(不对post提交的大小做限制)。
改成上面的配置,问题迎刃而解,提交的数据不再丢失。
<Connector maxPostSize="0" URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
结果bug依旧存在,于是又经过一番搜寻,发现还有一个属性——maxParameterCount(设置允许提交参数的个数)。其默认值是10000,将其值设置为-1,即不显示提交参数的个数。
<Connector maxParameterCount="-1" URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
改成上面的配置,问题迎刃而解,提交的数据不再丢失。
maxParameterCount 解释:
http-get请求中允许传递的查询字符串的最大个数,尽管各种http浏览器(proxy工具)都会对http-get请求的长度和查询字符串的个数有限制,你仍然可以通过tomcat再次设定合适的值。parameter个数越多,事实上对tomcat的内存开支更大,很多时候处于安全或者实用的角度考虑,maxParameterCount的值都不会太大。默认值为10000,”-1″表示无限制。如果请求中参数的个数超过限定值,请求将会被拒绝。
这个解决方案不是很好,因为不对提交参数进行限制,可能会造成服务器压力过大,严重影响程序性能,带来非常糟糕的用户体验。但由于这是一个老旧的系统,这是设计上的问题,要进行彻底的调整,改动会很大,所以目前只能通过这种方式来缓解一下,日后肯定是要重构的。如果是一个正在开发的项目,绝对不能这么做,唯一的方法就是修改设计,不允许一次提交如此多的数据。
2 0
- 菜鸟调错(九)——POST方法提交参数丢失问题
- php 下 POST方法提交参数丢失问题
- 在内置tomcat容器下,post提交base64编码文件,接口出现参数丢失的问题
- thinkphp post分页 参数丢失问题
- 解决Ajax提交参数丢失的问题
- 处理post提交后,参数可见问题
- post提交数据参数量过大问题
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- ajax中post方法传参数,会丢失&,%,+',要转义
- ajax中post方法传参数,会丢失&,%,+',要转义
- ajax中post方法传参数,会丢失&,%,+',要转义
- Ajax用POST方法传参数,参数提交不到服务器
- NSMutableURLRequest post提交参数
- 菜鸟学SSH(九)——Hibernate——Session之save()方法
- 菜鸟好文推荐(九)——程序员”青春饭”问题之我见
- httpClient post提交文件上传参数的方法
- post提交到controller控制器参数乱码问题
- 日本手机开发——DoCoMo手机,表单get提交,action的url的参数丢失
- android学习杂记(3)--百度地图开发环境的配置
- jeecg 分布式部署附件共享问题(linux下配置共享磁盘nfs服务)
- C语言volatile、extern、auto、register的作用
- KNN算法总结
- Create Seamless Web Background Textures in Minutes
- 菜鸟调错(九)——POST方法提交参数丢失问题
- Android UI相关——BadgeView
- 最佳单例模式实现方式-单枚举类实现
- 在R中统计数据的频数或者密度分布并图形化
- 错误备忘录之List元素遍历改变
- 数据复制
- linux下的make
- jeecg 分布式部署附件共享问题(Linux软连接和硬链接)
- 前端第五次面试