の最初の呼び出しでpostdataコンテンツが読み取られることを理解していgetParameter
ます(存在する場合)。
RAMに処理されるポストデータコンテンツの量を制限する方法はありますか、それともgetParameter*
それを実現するためにメソッドをオーバーライドする必要がありますか?
これをサーバー全体の設定にすることに興味はありません。
または、それを実現するためにgetParameterメソッドをオーバーライドする必要がありますか?*
はい。
HttpServletRequestWrapper
そのためには、によって注入される自家製を使用することができますFilter
。
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(new MyPostDataLimitingRequest((HttpServletRequest) request), response);
}
getParameter()
サーブレットを拡張したり、サーブレットを追加して分解したりせずに、便利な方法である既存のを制限する方法はないと思います。
getInputStream()
またはを直接使用してサーブレット内の入力ストリームを解析することでこれを回避できますが、これにより、残りのリクエストに対するそれ以降のgetReader()
呼び出しが無効になると思います。getParameter()
選択した方法で残りの入力を消費する必要があります。
エレガントではありませんが、機能します。