2

の最初の呼び出しでpostdataコンテンツが読み取られることを理解していgetParameterます(存在する場合)。

RAMに処理されるポストデータコンテンツの量を制限する方法はありますか、それともgetParameter*それを実現するためにメソッドをオーバーライドする必要がありますか?

これをサーバー全体の設定にすることに興味はありません。

4

2 に答える 2

2

または、それを実現するためにgetParameterメソッドをオーバーライドする必要がありますか?*

はい。

HttpServletRequestWrapperそのためには、によって注入される自家製を使用することができますFilter

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    chain.doFilter(new MyPostDataLimitingRequest((HttpServletRequest) request), response);
}
于 2012-11-20T16:00:40.330 に答える
1

getParameter()サーブレットを拡張したり、サーブレットを追加して分解したりせずに、便利な方法である既存のを制限する方法はないと思います。

getInputStream()またはを直接使用してサーブレット内の入力ストリームを解析することでこれを回避できますが、これにより、残りのリクエストに対するそれ以降のgetReader()呼び出しが無効になると思います。getParameter()選択した方法で残りの入力を消費する必要があります。

エレガントではありませんが、機能します。

于 2012-11-20T16:03:21.180 に答える