2012-01-03 21 views
0

アクションクラス内で要求の変更や設定ヘッダーはありますか?私はそれを変更したい、または私はフラグを要求ヘッダの中に入れたいと言うことができますが、 '属性'とパラメータに値を入れるのと同じです。Javaで要求ヘッダーを設定する

答えて

3

これはHttpServletRequestWrapperを使用して行うことができます。しかし、それはかなり汚い解決策です。あなたの問題を解決する他の方法はありませんか?

1

できません。サーブレットから返されたリクエストパラメータは、変更不可能Mapです。リクエストから返されたコンテンツを(サーブレット経由で)追加/削除することはできません。

フラグを設定するには、セッションにそれを保存し、別のアクションで、フラグ&をセッションから削除することをお勧めします。

+0

私はリクエストからしかデータを取得できないことを意味します。一方向データ移動 – muneebShabbir

+0

はい、要求はクライアントからサーバーに送信されるデータなので、あなたに本物の情報を送るクライアントと考えてください。ヘッダーリクエストを操作する機会があれば誰でもコードで偽装することができます。待ちますが、可能ですが、サーブレットの場合、コンテナはこれを許可しないでください。 –

+0

コンテナの意味は?私はstruts-1で作業していて、アクションクラスのリクエストを変更しようとしています – muneebShabbir

0

詳細を入力する必要があります。サーバーが要求を受信すると、要求ヘッダーを操作するように思えます。なぜあなたはそれをしたいと思うか分かりません。応答ヘッダーを変更することは意味があります。しかし、要求ではありません。

+0

実際に私は流れをシミュレートしたい。ヘッダーは第三者モジュールによって設定されます。しかし地元で私はそれを反映していることを試してみたいと思っています。なぜなら、ヘッダーを設定しようとしていたからです。 – muneebShabbir

1

元のリクエストを、希望する変更を含むリクエストクラスにラップする必要があると思います。

アプリケーションロジックをより理にかなったオブジェクトに処理する際にリクエストパラメータを先に解析してから、元のオブジェクトを変更したい場所にそれらのオブジェクトの状態を設定する方が良い場合がありますヘッダ。

+0

いいですね...試してみる必要があります。 – muneebShabbir

+0

私の要求をどうやって解決できますか? – muneebShabbir

0

私は、彼らはあなたがこれを行うことができる唯一のきれいな方法がHttpServletRequestWrapper

経由ですぐのgetHeader、getHeaders、getHeaderNamesをオーバーライドして、あなたが行ってもいいと思います。

1

あなたはあなたが変更/任意の数を追加するには、このFirefoxのプラグインを使用することができ 、ブラウザで要求を行うことができれば、あなたは 、Javaを使用してURL接続を開くには、このWhat is the proper way of setting headers in a URLConnection?

ような何かをすることができますしようとしている場合要求ヘッダー。

https://addons.mozilla.org/en-US/firefox/addon/modify-headers/

グッドラック

1

これに対する答えは、あなたが解決しようとしている何の問題に依存します。

あなたのコメントの1つは、テストしようとしていることを示唆しています。この場合、次の2つの基本的なオプションがあります。

  1. モックリクエスト(ユニットスタイルのテスト)を使用します。
  2. クライアントからヘッダーを変更します(統合スタイルテスト)。

実際のクライアントからのテストでは、クライアント側でヘッダーを設定します。

mockingクライアントとのやり取りでは、何らかの形のモックを使用する必要があります。たとえば、StrutsTestCaseは、MockStrutsTestCase(コンテナ外)とCactusStrutsTestCase(コンテナ内)のクラスを提供し、リクエストのプロパティと特性を簡単に操作できます。

関連する問題