Java Servlet:为request.getParameter指定postdata限制?

时间:2012-11-20 15:48:22

标签: java servlets post limit

我理解第一次调用getParameter会读取postdata内容(如果有的话)。

我有办法限制将后处理内容处理到RAM中的数量,或者我是否需要覆盖getParameter*方法才能完成该操作?

我对将其作为服务器范围的设置不感兴趣。

2 个答案:

答案 0 :(得分:2)

  

或者我是否需要覆盖getParameter 方法才能完成?*

是。

为此你可以使用由HttpServletRequestWrapper注入的本土Filter

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    chain.doFilter(new MyPostDataLimitingRequest((HttpServletRequest) request), response);
}

答案 1 :(得分:1)

我不相信有一种方法可以限制现有的getParameter(),这是一种方便的方法,而不需要扩展servlet或添加一个监听器来为你分解它。

您可以通过使用getInputStream()getReader()直接解析servlet中的输入流来避免这种情况,但我认为这会使getParameter()对该请求的其余部分的进一步调用无效;您需要通过所选方法使用其余输入。

它不优雅,但它有效。