据我所知,第一次致电getParameter
将读取postdata内容(如果有的话)。Java Servlet:指定request.getParameter的postdata限制?
有没有办法让我限制多少postdata内容将被处理到RAM中,或者我是否需要重写getParameter*
方法来完成?
我对将此设置为服务器范围内的设置不感兴趣。
据我所知,第一次致电getParameter
将读取postdata内容(如果有的话)。Java Servlet:指定request.getParameter的postdata限制?
有没有办法让我限制多少postdata内容将被处理到RAM中,或者我是否需要重写getParameter*
方法来完成?
我对将此设置为服务器范围内的设置不感兴趣。
还是我将需要来覆盖的的getParameter方法来实现呢?*
是。
为此,您可以使用由Filter
注入的本土产品HttpServletRequestWrapper
。
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(new MyPostDataLimitingRequest((HttpServletRequest) request), response);
}
我不相信有一种方法,通过现有getParameter()
,这是一个方便的方法来限制,不延长servlet或添加监听打破它给你的。
您可以通过使用getInputStream()
或getReader()
直接解析servlet中的输入流来避开这种情况,但我相信这会使该请求的其余部分对getParameter()
的进一步调用无效;您需要通过选定的方法来使用其余的输入。
这不是优雅,但它的作品。