如何限制tomcat 8中的帖子大小?如何对其进行自定义回复?

Kha*_*bhy 6 java servlets tomcat8

我在 server.xml 文件中配置了这个

<Connector URIEncoding="UTF-8" connectionTimeout="20000" maxHttpHeaderSize="65536" **maxPostSize="1024"** port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
Run Code Online (Sandbox Code Playgroud)

但是,请求超过 1 KB 的传递就好像从未设置 maxPostSize 一样。任何人都可以建议什么会导致这种情况?

另一件事,如果帖子大小超过 1 KB,我想知道如何从 tomcat 进行自定义 http 回复

更新 因为我在这个问题上已经很久了。我有机会查看 tomcat 的源代码以准确检查此处发生的情况: 单击此处

我注意到从第 2541 行到第 2550 行,他们正在使用 getContentLength(),尽管文档说“maxPostSize:以字节为单位的最大大小”。这怎么可能以字节为单位?对我来说,它看起来更多的是字符数,它可以在 servlet 端完成。有人可以解释我在这里缺少什么吗?

Bhu*_*tam 6

根据tomcat 文档,maxPostSize 为 2M。

将由容器 FORM URL 参数解析处理的 POST 的最大大小(以字节为单位)。可以通过将此属性设置为小于零的值来禁用该限制。如果未指定,则此属性设置为 2097152(2 兆字节)。请注意, FailedRequestFilter 可用于拒绝超过此限制的请求。

如果要更改默认值,请更改以下文件位置:

$CATALINA_HOME/conf/server.xml

例子:

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
                maxPostSize="6291456" />
Run Code Online (Sandbox Code Playgroud)

字节大小 6291456*(1024*1024)=6M

注意:请确保在进行更改后重新启动服务器。