- PR -

ActionのForward時のアドレスについて

1
投稿者投稿内容
うる
常連さん
会議室デビュー日: 2005/10/16
投稿数: 41
投稿日時: 2006-03-15 23:10
Strutsでの内容なのですが、
ActionでForwardしてJSPページを表示するような場合、
JSPページを表示した時のIEのブラウザで表示されているアドレスが、
JSPページのものではなく、Actionを呼び出した時のアドレスなっているのですが、
これは、こういうものなのでしょうか?

request.getHeader("referer")で呼び出し元のアドレスを取得しているのですが、
JSPページからFormのsubmitで別のページに飛んだ際、
飛んだ先でrequest.getHeader("referer")にて取得される値が、
JSPのアドレスではなく、JSPをForwardで呼び出したActionのアドレスになってしまうのが、
ちょっと困っています。

[ メッセージ編集済み 編集者: うる 編集日時 2006-03-15 23:11 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-03-16 00:09
ブラウザはどのような処理がサーバで行われているかはわかりません。
あるアドレスに対して要求した結果がJSPの内容であったというだけです。
ブラウザからJSPに要求したわけではないので、アドレスは変化しません。

リダイレクトとフォワードの挙動の違いはStrutsに関係なくServletによるものです。
http://www.atmarkit.co.jp/fjava/javatips/062jspservlet029.html

HttpServletRequest#getPath()の値をフォーム等に書き込んで、
リクエストヘッダのrefererではなく、
リクエストパラメータを参照するようにすると、
希望の動作が行えると思います。
1

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