- - PR -
HttpServletRequestのHTTPパラメータ追加について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-09-06 14:14
HttpServletRequestより取得できるHTTPパラメータの情報に対して、パラメータの追加・修正を行うことは可能でしょうか?
| ||||
|
投稿日時: 2004-09-06 14:44
こんにちわ。
投稿されたメッセージだけでは具体的に何をしたいのかは読み取れませんでしたが、HttpServletRequest#setAttribute()/HttpServletRequest#getAttribute()を使えばリクエストデータの設定・取得は可能です。 また、Servletに手を加えず、リクエストデータの加工を行いたいのであればjavax.servlet.Filterを利用してServletにリクエストデータが渡る前にリクエスト・レスポンスをフックすることは可能です。フック処理の後、FilterChain.doFilter()を忘れずに。 [ メッセージ編集済み 編集者: Y.Murakamin 編集日時 2004-09-06 14:47 ] | ||||
|
投稿日時: 2004-09-06 14:52
違いますよ。 set/getAttributeするのは、リクエストスコープ内に保存されるデータであり、 Servletコンテナ内でのみ生存しています。ですから、HTTPリクエストにこれらの データがそのまま乗るわけではありません。 投稿者の方が知りたいのは、むしろgetParameterで取得できるHTTPのリクエスト パラメタのことですかね?こちらは、Servlet内では加工できません。 大本のHTTPリクエストを改ざんすることになりますから。 | ||||
|
投稿日時: 2004-09-06 15:32
返答、ありがとうございます。
確かに私の知りたいのは、getParameterで取得できるHTTPのリクエストパラメーターでのことでした。 これに関しては編集出来ないとのことなので、別の方法でも考えてみます。 | ||||
|
投稿日時: 2004-09-06 15:51
確かに直接変更することはできませんが、既に回答があったようにサーブレットフィルタを 使ってHttpServletRequestのラッパクラスのインスタンスを渡すことで、ご希望のことは 実現できますよ。 「本当に実現したいことは何か」を具体的に書いたほうがいいと思います。 #たとえば既存のサーブレットの実装を変えずに動作を帰るためにパラメータを変更したい、とか | ||||
|
投稿日時: 2004-09-06 17:23
そうでね。具体的に何をやりたいかを直接書いたほうが良いですね。
具体的には、サーブレット内で条件によってhttpパラメータの値を変化させ、 後続の処理クラスに処理を渡したいのです。 後続の処理クラスは既に完成していて、getParameterで値を取得しています。 なので後続処理の変更は行わないで済む方法を探しています。 ちなみに画面系(jsp)も完成している状態なのでフィルターの使用も 躊躇しています。 | ||||
|
投稿日時: 2004-09-06 18:52
JSPで直接getParameterしているんですか!? そうでなければ、Servletにフィルタを仕込むのは設定だけですから、 それほど現状のロジックにインパクトがあるとは思われませんが。 | ||||
1
