问题描述:
有个列表页面的导出问题我折腾了很久没找到原因,现象也特别奇怪,导出当前页是没问题的,导出全部时导成了jsp,因为我这里的导出方式是请求后台查询后返回jsp给到导出的jsp里,调用导出的工具类对整个table进行导出,但是直接导出了这个jsp工具,网上查了半天也没有查到类似的情况。
后来发现有个情况是同一个列表页面时,因为参数的不同导致一个情况下可成功导出一个情况下导出异常。于是我继续排查,发现导出jsp的那种情况后台也是正常查询的,查询结果也给到了导出的jsp里,结果却就是直接成了导出jsp。后来尝试将jsp的导出方式改写成后台导出,结果导出的东西变成了请求的路径,现在我才终于发现是post请求的问题。
解决办法:
网上查询后发现这种情况是由于tomcat下post请求有个默认大小限制的,默认大约是2M多,而我导出时测试1100多条的时候是没问题的,超过1200就不行了。
设置server.xml中Connector中的属性,maxPostSize的值。
maxPostSize表示post请求时允许的最大参数值,tomcat7及以
下设置为0表示无限制,7以上需设置为负数。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxPostSize="0"/>