0

Java には、メソッド引数として明示的に渡すことなく、あるオブジェクトから別のオブジェクトにデータを運ぶために使用できる ThreadLocal があります。

GWT リクエストをインターセプトし、そこからカスタム HTTP ヘッダーを抽出する必要があります。次に、ヘッダー値を何らかの方法で保存して、後で処理する必要があります。

問題は、ヘッダーを抽出する場所が RequestBuilder に属し、RequestBuilder 内からサーバーからの要求/応答を実際に処理するカスタム コードに変数を渡す方法 (?) がないことです。また、クライアント コードからそのリクエスト ビルダーに変数を渡すことはできません。

ThreadLocal が解決策になる可能性がありますが、GWT では使用できません。使えるものはありますか?

4

1 に答える 1

0

RequestBuilder.setHeaderを使用して、HTTPリクエストのヘッダー値を設定できます。
バックエンドでは、サーブレットのHttpServletRequestを使用して、HTTPリクエストからヘッダー値を取得できます。

更新

静的インスタンス変数を持つクラス:

public class SomeClass {
    public static String myVar;
}

また、RequestBuilderコードでは、次のことを実行できます。

RequestBuilder request = new RequestBuilder(url);
request.setCallback(new RequestCallback() {
    @Override
    public void onResponseReceived(Request request, Response response) {
        SomeClass.myVar = response.getHeader("someheader");
    }
});
于 2012-05-30T09:23:35.293 に答える