tomcat解决POST请求过长的限制

spreadJS是纯前端的产品,不限制后端的技术平台。随着java用户使用人数的增多,经常会使用服务器端的Excel IO进行导入,导出操作,要知道spreadJS的Excel IO操作是需要将spreadJS页面中的内容序列化成JSON(ssjson)然后传输至后台进行处理。然而很多时候,用户的spread中的内容很多,序列化成JSON往往很长。这时候就可能存在问题。

发布于 2017/05/30 00:00

      spreadJS是纯前端的产品,不限制后端的技术平台。随着java用户使用人数的增多,经常会使用服务器端的Excel IO进行导入,导出操作,要知道spreadJS的Excel IO操作是需要将spreadJS页面中的内容序列化成JSON(ssjson)然后传输至后台进行处理。然而很多时候,用户的spread中的内容很多,序列化成JSON往往很长。这时候就可能存在问题。

       我们都知道GET请求是有长度限制的,HTTP协议规范没有对URL长度进行限制,这个限制是浏览器对其进行的限制,不同的浏览器之间限制也会不同。例如:IE下URL长度的限制是2083字符,但在chrome下长度限制却是8182字符。

      我们都知道如果请求过长需要用POST方式去发送请求,这里很多人存在一个误区,认为POST方式没有大小限制。这个说法没错,POST本身是没有大小限制,HTTP协议规范也没有进行大小限制,但是通常服务器会在这里做限制以保证服务器的处理能力。例如:在Tomcat下取消POST大小的限制(Tomcat默认2M); 但是有时候序列化的JSON长度会超过2M就会出现请求内容为空的情况。

  这个时候我们需要根据实际情况来修改服务器的配置,Tomcat中进行如下修改:打开tomcat目录下的conf目录,打开server.xml 文件,找到<Connector>标签,如果其中存在maxPostSize属性,那么修改属性的值(单位是KB),如果不存在maxPostSize属性,则需手动在标签中添加maxPostSize然后设置该属性的值。例如:<Connector …… maxPostSize="10240"/>这样设置后POST请求的最大长度就被设置成了10M,另外如果需要不限制POST请求的最大长度,那么设置maxPostSize="0"即可。

  其他服务器如果出现类似情况,可以上网查询相关配置进行设置。

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态