- PR -

requestオブジェクトのクエリー削除

投稿者投稿内容
ニューフェイス
会議室デビュー日: 2004/11/01
投稿数: 13
投稿日時: 2007-01-31 16:43
A.jsp にあるテキストボックス(text1)に文字を入力後、サブミットボタンクリックで B.jsp へ画面遷移するアクションとしています。
B.jsp では request.getParameter("text1") で値を取得後に内部処理を行ない、再度 A.jsp に画面遷移するような処理を作成しています。
この時、A.jsp に戻ってきた時にクエリー文字列も引き継がれたままとなっていますが、URLからクエリーを削除することはできるのでしょうか?

実現したいことは、A→B→Aと遷移した時に、ユーザにクエリー文字列を見せたくない(アドレスバーには http://A.jsp?text1=001 ではなくて http://A.jsp と表示させたい)のです。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-01-31 17:08
引用:

ニューフェイスさんの書き込み (2007-01-31 16:43) より:
実現したいことは、A→B→Aと遷移した時に、ユーザにクエリー文字列を見せたくない(アドレスバーには http://A.jsp?text1=001 ではなくて http://A.jsp と表示させたい)のです。



B -> Aの際の遷移をGETではなくPOSTにすれば
URLにパラメータが表示されることはありません。
HTMLのformタグにmethod="POST"を追記しましょう。
ニューフェイス
会議室デビュー日: 2004/11/01
投稿数: 13
投稿日時: 2007-01-31 17:15
引用:

B -> Aの際の遷移をGETではなくPOSTにすれば
URLにパラメータが表示されることはありません。
HTMLのformタグにmethod="POST"を追記しましょう。



回答ありがとうございます。
私の記載漏れがありました。すみません。
B→Aは自動画面遷移で、B.jsp では pageContext.forward("A.jsp");
を記述しています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-31 18:17
では A-> B を POST にしてはいかがでしょう。
ニューフェイス
会議室デビュー日: 2004/11/01
投稿数: 13
投稿日時: 2007-01-31 18:43
回答ありがとうございます。
引用:

インギさんの書き込み (2007-01-31 18:17) より:
では A-> B を POST にしてはいかがでしょう。


試してみましたが、ダメでした。更に、A→B→Aと画面遷移した時のアドレスをよく見ると
http://B.jsp?text1=001
となっていました。
http://A.jsp?text1=001 ともならずなぜでしょうか?
フライト
ベテラン
会議室デビュー日: 2005/03/11
投稿数: 63
お住まい・勤務地: 津田沼・東京
投稿日時: 2007-01-31 19:03
B -> Aのページ遷移のきっかけを、javascriptのonLoadで取得し、
pageContext.forward("A.jsp");ではなくて、formをsubmitする方法で
ページ遷移するのは駄目ですか?

ブラウザを何を使っているか記載しておいた方が回答してくれる人が
分かりやすいと思います。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2007-01-31 19:15
引用:

試してみましたが、ダメでした。更に、A→B→Aと画面遷移した時のアドレスをよく見ると
http://B.jsp?text1=001
となっていました。
http://A.jsp?text1=001 ともならずなぜでしょうか?


A->BがPOSTで、BからフォワードでAを表示しているというのが正しいのであれば、URLは
http://B.jsp
になるはずです。そうならないとすると、A->BがGETであるか、A->Bのactionに
http://B.jsp?text1=001
と書かれているからでしょう。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-01-31 19:18
引用:

ニューフェイスさんの書き込み (2007-01-31 18:43) より:
更に、A→B→Aと画面遷移した時のアドレスをよく見ると
http://B.jsp?text1=001
となっていました。
http://A.jsp?text1=001 ともならずなぜでしょうか?



そういう作りになっているのでしょう。
我々は手元にソースがあるわけでもなく、
試せる環境があるでもないのです。
今、提供されている情報からはわからないとしかいえません。

WebシステムがブラウザとWebサーバの間の
HTTPのプロトコルでのやり取りだということは理解されていますか?

ページの遷移に伴いどのようなHTTPリクエストが発行されているか、
それに対してどのようなHTMLを返しているのか、
そこを確認してみてください。

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