TextArea提交失败(Tomcat 关于表单提交数据量过大导致数据丢失的问题)
Tomcat 关于表单提交数据量过大导致数据丢失的问题使用ajax的方式提交TextArea内容过大无法提交的原因,使用POST提交也是一样,后台没接收到故怀疑是提交失败,郁闷ing。
随便上传了一个字符串 ,发现可以正常的提交,不用问肯定是提交的内容超过了限制。
alert了一下字符串长度 ,超过了3百万页面加载缓慢。想了想,post的提交规则,八成是tomcat的问题。
在网上查了查 ,果然是这个问题
通过查看资料,发现tomcat默认传输最大的数据限制为2M,最后的解决办法是设大tomcat的conf下的server.xml中<Connector 的maxPostSize的值.(设为0是取消POST的大小限制)
打开tomcat目录下的conf目录,修改server.xml 文件 增加 maxPostSize="0" 即可。其中单位为:byte
<Connector
debug="0"
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
port="8080"
redirectPort="8443"
enableLookups="false"
minSpareThreads="25"
maxSpareThreads="75"
maxThreads="150"
maxPostSize="0"
URIEncoding="GBK"
/>
Connector元素属性介绍
1、maxHttpHeaderSize
属性:maxHttpHeaderSize;
含义:Tomcat可以传输与接受的HTTP请求或响应标题的最大长度,以字节为单位;
默认值:8192(8kB)
2、maxKeepAliveRequests
属性:maxKeepAliveRequests;
含义:由每个客户端到Tomcat的HTTP keep-alive连接能完成的最大请求数。在完成指定的请求数以后,Tomcat关闭了连接,而客户端必须重新连接。
设置该值为-1,配置无限连接(注意,在不产生更多的请求的时候,这可能导致连接一直处于open状态)。设置为1表示彻底禁止keep-alive连接;
默认值:100
3、maxPostSize
属性:maxPostSize;
含义:POST请求参数的最大值,将由容器自动分析;
默认值:2097152(2 MB)
4、maxSavePostSize
属性:maxSavePostSize;
含义:POST请求参数的最大值,在认证过程中将由容器保存;
默认值:4096(4 kB)
5、maxSpareThreads
属性:maxSpareThreads;
含义:该Connector应保持active实际却处于idle状态的请求处理最大线程数,只要活跃线程数不超过maxThreads的设置值就行。如果在APR或NIO连接器上设置该属性,则不会起作用;
默认值:50
6、maxThreads
属性:maxThreads;
含义:该Connector应并发运行的请求处理线程最大数。如果把该值设得太高,则服务器将无法阻挡线程调度且需要太长的时间才能完成请求。
如果设置太小,则Tomcat将不能充分利用服务器计算机的硬件资源,而请求的时间比所需要的时间要长。有关设置最优的硬件与软件组合的细节,请参见Tomcat性能调效。如果在APR或NIO连接器上设置该属性,则不会生效;
默认值:200
7、minSpareThreads
属性:minSpareThreads;
含义:只要活跃线程数没有超过maxThreads的设置值,该Connector应该保持alive却保持idle状态的请求处理线程的最小数量。如果在APR或NIO连接器上设置该属性,则不会起作用;
默认值:4
8、noCompressionUserAgents
属性:noCompressionUserAgents;
含义:对Web服务器声明的一些HTTP客户端,支持HTTP 1.1 GZIP压缩,但不能正常工作。可以将该属性设置为以逗号分割的常规表达式列表,与阻碍HTTP客户端的用户代理字符串相匹配,而且该连接器对与之相匹配的客户端不使用GZIP压缩;
默认值:空字符串
参考:http://my.oschina.net/fangliwen/blog/68164
http://yqling2008.iteye.com/admin/blogs/1517684
页:
[1]