- PR -

HttpServletRequestのHTTPパラメータ追加について

1
投稿者投稿内容
ふしぎ
会議室デビュー日: 2004/09/06
投稿数: 5
投稿日時: 2004-09-06 14:14
HttpServletRequestより取得できるHTTPパラメータの情報に対して、パラメータの追加・修正を行うことは可能でしょうか?
Y.Murakamin
会議室デビュー日: 2003/07/03
投稿数: 15
お住まい・勤務地: 埼玉県
投稿日時: 2004-09-06 14:44
こんにちわ。
投稿されたメッセージだけでは具体的に何をしたいのかは読み取れませんでしたが、HttpServletRequest#setAttribute()/HttpServletRequest#getAttribute()を使えばリクエストデータの設定・取得は可能です。
 また、Servletに手を加えず、リクエストデータの加工を行いたいのであればjavax.servlet.Filterを利用してServletにリクエストデータが渡る前にリクエスト・レスポンスをフックすることは可能です。フック処理の後、FilterChain.doFilter()を忘れずに。

[ メッセージ編集済み 編集者: Y.Murakamin 編集日時 2004-09-06 14:47 ]
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-09-06 14:52
引用:

投稿されたメッセージだけでは具体的に何をしたいのかは読み取れませんでしたが、HttpServletRequest#setAttribute()/HttpServletRequest#getAttribute()を使えばリクエストデータの設定・取得は可能です。


違いますよ。

set/getAttributeするのは、リクエストスコープ内に保存されるデータであり、
Servletコンテナ内でのみ生存しています。ですから、HTTPリクエストにこれらの
データがそのまま乗るわけではありません。

投稿者の方が知りたいのは、むしろgetParameterで取得できるHTTPのリクエスト
パラメタのことですかね?こちらは、Servlet内では加工できません。
大本のHTTPリクエストを改ざんすることになりますから。
ふしぎ
会議室デビュー日: 2004/09/06
投稿数: 5
投稿日時: 2004-09-06 15:32
返答、ありがとうございます。

確かに私の知りたいのは、getParameterで取得できるHTTPのリクエストパラメーターでのことでした。

これに関しては編集出来ないとのことなので、別の方法でも考えてみます。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-06 15:51
引用:

ふしぎさんの書き込み (2004-09-06 15:32) より:
確かに私の知りたいのは、getParameterで取得できるHTTPのリクエストパラメーターでのことでした。

これに関しては編集出来ないとのことなので、別の方法でも考えてみます。


確かに直接変更することはできませんが、既に回答があったようにサーブレットフィルタを
使ってHttpServletRequestのラッパクラスのインスタンスを渡すことで、ご希望のことは
実現できますよ。

「本当に実現したいことは何か」を具体的に書いたほうがいいと思います。
#たとえば既存のサーブレットの実装を変えずに動作を帰るためにパラメータを変更したい、とか
ふしぎ
会議室デビュー日: 2004/09/06
投稿数: 5
投稿日時: 2004-09-06 17:23
そうでね。具体的に何をやりたいかを直接書いたほうが良いですね。

具体的には、サーブレット内で条件によってhttpパラメータの値を変化させ、
後続の処理クラスに処理を渡したいのです。

後続の処理クラスは既に完成していて、getParameterで値を取得しています。
なので後続処理の変更は行わないで済む方法を探しています。
ちなみに画面系(jsp)も完成している状態なのでフィルターの使用も
躊躇しています。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-09-06 18:52
引用:

ちなみに画面系(jsp)も完成している状態なのでフィルターの使用も
躊躇しています。


JSPで直接getParameterしているんですか!?
そうでなければ、Servletにフィルタを仕込むのは設定だけですから、
それほど現状のロジックにインパクトがあるとは思われませんが。
1

スキルアップ/キャリアアップ(JOB@IT)