美文网首页
Tomcat8 无法获取Post参数

Tomcat8 无法获取Post参数

作者: BennyTian | 来源:发表于2020-04-17 10:23 被阅读0次

    问题起因

    今天将 Spring4.x 升级到 5.2.x 因为 Spring5.2.x基于Tomcat8及以上, 所以把之前用的 Tomcat也从6.x升级到8.x

    问题详情

    GET请求: 一切正常, 参数都可以获取到
    POST请求: 所有前端提交的表单数据丢失 , 参数无法获取.

    问题排查

    1. 尝试修改SpringMVC相关的配置,Debug求情流程 -> 无解
    2. 将Tomcat8换成了 Jetty -> 恢复正常

    Jetty下没问题 所以肯定是Tomcat8的问题

    Tomcat6.x 配置分析

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" acceptCount="512" maxThreads="2048" useBodyEncodingForURI="true" maxPostSize="0"/>
    

    这个是现有Tomcat6的配置, 其中有一个参数 maxPostSize="0" 是用来限制POST请求内容的大小限制的, 在Tomcat6.x下 , maxPostSize="0" 表示不限制POST请求大小, 但是在Tomcat8.x下, maxPostSize>="0" 则表示禁止POST请求,如果要不限制POST请求大小,则为 maxPostSize<"0" .

    MaxPostSize
    maxPostSize Tomcat6.x Tomcat 8.x
    maxPostSize = 0 不限制 禁止POST请求
    maxPostSize > 0 指定大小 指定大小
    maxPostSize < 0 -- 不限制

    问题解决

    只需要将 maxPostSize 改成小于0的即可

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" acceptCount="512" maxThreads="2048" useBodyEncodingForURI="true" maxPostSize="-1"/>
    

    相关文章

      网友评论

          本文标题:Tomcat8 无法获取Post参数

          本文链接:https://www.haomeiwen.com/subject/saxevhtx.html