You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetty 9.4.41嵌入式服务设置MaxFormContentSize不生效如何解决?

问题根因

你配置的所有maxFormContentSize相关参数(包含系统属性、服务级属性、Servlet上下文级三个位置的配置)仅对Content-Type: application/x-www-form-urlencoded类型的表单POST请求生效,你测试使用的请求Content-Type为application/atom+xml,不属于表单提交场景,因此该阈值规则不会触发,不会返回大小超限错误。

修复方案

如果需要限制所有类型请求的最大内容长度,可通过以下方式配置:

全局连接器生效

在你初始化HttpConfiguration的代码段中新增setMaxRequestContentSize配置,该配置会对当前连接器下的所有请求生效,不区分Content-Type类型:

HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setSendServerVersion(false);
httpConfig.setSendXPoweredBy(false);
// 新增如下配置,设置全局最大请求内容长度为700字节
httpConfig.setMaxRequestContentSize(700);

该配置同时支持Content-Length预判断和Transfer-Encoding: chunked分块请求的实时字节统计,超过阈值会直接返回413 Payload Too Large错误。

自定义粒度生效(可选)

如果需要针对不同路径、不同请求类型设置不同的阈值,可以自定义Jetty Handler做全局拦截,或者在对应Servlet的业务逻辑中先获取请求头Content-Length做大小判断,超过阈值直接返回413状态码即可。

内容的提问来源于stack exchange,提问作者Philippe Bertrand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:15:02