form 提交出错 数据量大Post too large错误解决方法



jsp中form 提交出错 数据量大Post too large错误解决方法介绍,假如form表单提交数据量太大的时候可能会出现无法显示该网页的问题。以下是相关的解决方法:

解决form 提交出错办法1—TOMCAT设置

在 $TOMCAT_HOME$/conf/server.xml中找到

<Connector port=”8080″ maxHttpHeaderSize=”16384″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true” URIEncoding=”UTF-8″/>

该值默认是4096相当于4K大小的数据。可以适量修改此值以保证正常提交。

maxHttpHeaderSize The maximum size of the request and response HTTP header, specified in bytes. If not specified, this attribute is set to 4096 (4 KB).

解决办法2:

将jsp中form的提交方式改为POST。

如果有hidden,检查hidden数据量,问题可能出在hidden标签那, hidden能够传递的数据量好像是100K来着。post表单对应的http报文的body部分,没有大小限制,get对应的是http报文的head部,get方式传参所以才有限制。

一个大数据量的提交,结果出现一个错误,说Post too large…

另还有句提示,就是 Parameters were not parsed because the size of the posted data was too big. Use the maxPostSize attribute of the connector to resolve this if the application should accept large POSTs.

这个错误不知道是不是国内的人很少遇到,没几个人写出来。后来我在国外的网站上找到了原因和解决办法:


Q: In Tomcat, I got a “Post data too big” error.

A: Apache Tomcat by default sets a limit on the maximum size of HTTP POST requests it accepts.

In Tomcat 5, this limit is set to 2097152 (2 Mb). When you try to upload files or post forms that are

larger than 2 MB, this error can occur.

The solution is to reconfigure Tomcat to accept larger POST requests, either by increasing

the limit, or by disabling it. This can be done by editing Tomcat’s server.xml.

In the <connector>element, add an attribute “maxPostSize” and set a larger value (in bytes) to

increase the limit. Setting it to 0 will disable the size check.

也就是,tomcat 默认设置能接收 HTTP POST 请求的大小最大为 2M,如果你的POST请求传递的数据大于2M,就会报这个错误。

解决的办法是修改 tomcat 的配置文件 $TOMCAT_HOME$/conf/server.xml,找到里面的标签,在该标签中添加 “maxPostSize” 属性,将该属性值设置成你想要的最大值,单位是字节,如果你把这个值设置为 0(maxPostSize=”0″),tomcat 将不再检查 POST 的大小。