1

この HttpClient ライブラリでしばらく (数週間) 遊んでいます。どういうわけかリクエストに Attribute を設定したいです。パラメータではなく属性です。私のサーブレットでは、Integer inte = (Integer)request.getAttribute("obj"); を使用したいと考えています。

何が恋しいのかわからない。私はこれを試します。

NameValuePair[] pair = new NameValuePair[1];
pair[0] = new NameValuePair();
pair[0].setName("aloha");
pair[0].setValue("value");

しかし、これは属性ではなくパラメーターを設定します。これは、文字列とオブジェクトを受け入れるメソッドを持つ唯一のオブジェクトであるため、これも使用します。まだ解決していません。

HttpClientParams clParam = new HttpClientParams();
clParam.setParameter("obj", new Integer(24405));
method.setParams(clParam);

手がかりを教えてください.... Thx。

4

2 に答える 2

4

setAttribute/getAttributeメソッドの目的を誤解していると思います。「getAttribute」による取得要求に配置されたデータは、サーバー上のsetAttribute呼び出しでのみ設定できます。クライアントからサーバーにパラメーターを渡す唯一の方法はパラメーター(またはPOSTリクエスト内の他の構造)を介するため、クライアントは値を強制的に設定することはできません。

getAttribute / setAttributeは、RequestDispatcherを使用するときに、サーバーコード間で情報を渡すために実際に使用されます。

于 2009-07-26T18:20:17.583 に答える
0

サーブレットリクエストAPIから

属性は2つの方法で設定できます。サーブレットコンテナは、リクエストに関するカスタム情報を利用できるようにするための属性を設定できます。たとえば、HTTPSを使用して行われた要求の場合、属性javax.servlet.request.X509Certificateを使用して、クライアントの証明書に関する情報を取得できます。属性は、setAttribute(java.lang.String、java.lang.Object)を使用してプログラムで設定することもできます。これにより、RequestDispatcher呼び出しの前に情報をリクエストに埋め込むことができます。

あなたは実際に属性を意味しますか?クライアントからパラメータまたはHTTPヘッダーを設定しますか?

于 2009-07-26T18:23:10.183 に答える