我理解第一次调用getParameter
会读取postdata内容(如果有的话)。
我有办法限制将后处理内容处理到RAM中的数量,或者我是否需要覆盖getParameter*
方法才能完成该操作?
我对将其作为服务器范围的设置不感兴趣。
答案 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()
对该请求的其余部分的进一步调用无效;您需要通过所选方法使用其余输入。
它不优雅,但它有效。