據我所知,第一次致電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()
的進一步調用無效;您需要通過選定的方法來使用其餘的輸入。
這不是優雅,但它的作品。