3

REST 要求を処理する Java サーブレットがあります。ただし、これは無効なデータを受信すると壊れます。これは XML 形式で POST されており、これを解決するためにフィルター チェーンにフィルターを追加しました。フィルターが呼び出され、XML にアクセスして、要求の本文のデータにアクセスできます。

これを検証して操作し、データが正しいことを確認できますが、リクエスト オブジェクトにリセットする方法がわかりません。

HttpServletRequest オブジェクトの本体をどのように設定できますか?

4

2 に答える 2

2

HttpServletRequestWrapperを見てください

public HttpServletRequestWrapper(HttpServletRequest request)コンストラクターを使用して、元のリクエストを新しいオブジェクトでラップできます。自分で多くの作業を行う必要はありません。

于 2012-06-26T14:34:22.030 に答える
2

HttpServletRequest オブジェクトを新しいクラスでラップして、名前を付けます: NewHttpServletRequest. 実際の書き換えは、getParameter(String) などの適切なオーバーライド メソッドで行う必要があります。

package com.example;

import javax.servlet.http.HttpServletRequestWrapper;

public class MyHttpServletRequest extends HttpServletRequestWrapper {

    public MyHttpServletRequest(HttpServletRequest request) {
        super(request);
    }

    public String getParameter(String name) {
        String str = super.getParameter(name);
        // DO THE REWRITING
        return str;
    }

}

于 2012-06-26T14:27:51.663 に答える