如何在Java中限制HTTP请求的大小?

如何在Java中限制HTTP请求的大小?,java,http,limit,servlet-filters,Java,Http,Limit,Servlet Filters,在中,您可以这样限制请求大小: app.use(express.limit('2mb')); @MultipartConfig( maxFileSize=10485760, // 10Mb max fileSizeThreshold=524288, //512 Kb before buffering to disk maxRequestSize=10240 // 10Kb of meta data location=/tmp

在中,您可以这样限制请求大小:

app.use(express.limit('2mb'));
@MultipartConfig(
    maxFileSize=10485760,     // 10Mb max
    fileSizeThreshold=524288, //512 Kb before buffering to disk
    maxRequestSize=10240      // 10Kb of meta data
    location=/tmp             // with permission to write, default uses tomcat tmp
)
是否有Java等价物?我正在使用,所以任何特定于球衣的解决方案也可以

经过一些不成功的研究,我只能想出两个解决方案:

  • 自己编写这样一个过滤器
  • 使用web服务器强制执行限制。在我的例子中,它是ApacheHTTP服务器后面的Tomcat

  • 你推荐什么?您知道我缺少的现有库吗(为了避免自己编写过滤器)?

    您可以在Jersey中使用注释

    试着这样想:

    app.use(express.limit('2mb'));
    
    @MultipartConfig(
        maxFileSize=10485760,     // 10Mb max
        fileSizeThreshold=524288, //512 Kb before buffering to disk
        maxRequestSize=10240      // 10Kb of meta data
        location=/tmp             // with permission to write, default uses tomcat tmp
    )
    

    限制文件大小的原因是什么?如果这不是应用程序的真正限制,我会倾向于服务器配置。同意@jurgemaister。还因为用户可以绕过应用程序对大小的检查将请求复制到服务器。在这种情况下,服务器将接受不可接受的request@jurgemaister限制请求主体的原因主要是为了使某些拒绝服务攻击更加困难。