素材巴巴 > 程序开发 >

修改前端表单post提交时最大长度限制

程序开发 2023-09-04 15:28:44

问题出现的背景:做excel导出时,使用post请求发现前台传递的数小于200kb可以导出去,如果大于200kb,则会在请求时报400错误,无法将将请求传递到后端。

原因:对于我们常用的WEB服务器,前端表单提交数据传给后端时参数的大小是有限制的

下面我将分别举例进行说明(默认单位是KB):Jetty、Tomcat

Jetty

  1. 报错:**Caused by: java.lang.IllegalStateException: Form is larger than max length 200000 idea jetty **
  2. 原因及解决方式
    原因就是Jetty默认的对于前端传递参数的设置大小是200kb,超过了会报400错误,且无法调用后端接口
    方法一:
    在这里插入图片描述
    方法二:
    在WEB-INF目录下的jetty-web.xml文件中,加入如下设置
  
   
 
   -1  
  
   -1  
  
   org.eclipse.jetty.server.Request.maxFormContentSize-1
 

(即对maxFormContentSize重新赋值,-1表示不限制,正数值表示所允许的最大bytes):

Tomcat

针对以上的问题,我则顺便查了下Tomcat,他的默认值是:maxPostSize=“2097152”(也就是2M的大小)
解决方式:

在tomcat
的TOMCAT_HOME/conf/server.xml中添加一行:
找到里面的Connector节点,在该节点中添加"maxPostSize"属性,将该属性值设置成你想要的最大值(单位:byte,-1表示不限制(谨慎使用,服务器压力会太大)

Tomcat常见参数设置

maxPostSize=“10485760”/>

BES

BES: 默认限制为2097152bytes(2MB). 修改默认限制值的方法如下:
通过BES控制台进行设置:独立实例->WEB容器->自定义属性 里添加 maxPostSize 属性(单位:KB,0表示不限制)。

Weblogic

这个服务器一般生产中用的应该都比较多,但是此次我并没有找到该服务器对该值的相关设置,且将我原本报错的代码放在Weblogic上面也没出现问题,具体欢迎各位到老留言


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。