- - PR -
requestオブジェクトのクエリー削除
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 と表示させたい)のです。 | ||||
|
投稿日時: 2007-01-31 17:08
B -> Aの際の遷移をGETではなくPOSTにすれば URLにパラメータが表示されることはありません。 HTMLのformタグにmethod="POST"を追記しましょう。 | ||||
|
投稿日時: 2007-01-31 17:15
回答ありがとうございます。 私の記載漏れがありました。すみません。 B→Aは自動画面遷移で、B.jsp では pageContext.forward("A.jsp"); を記述しています。 | ||||
|
投稿日時: 2007-01-31 18:17
では A-> B を POST にしてはいかがでしょう。
| ||||
|
投稿日時: 2007-01-31 18:43
回答ありがとうございます。
試してみましたが、ダメでした。更に、A→B→Aと画面遷移した時のアドレスをよく見ると http://B.jsp?text1=001 となっていました。 http://A.jsp?text1=001 ともならずなぜでしょうか? | ||||
|
投稿日時: 2007-01-31 19:03
B -> Aのページ遷移のきっかけを、javascriptのonLoadで取得し、
pageContext.forward("A.jsp");ではなくて、formをsubmitする方法で ページ遷移するのは駄目ですか? ブラウザを何を使っているか記載しておいた方が回答してくれる人が 分かりやすいと思います。 | ||||
|
投稿日時: 2007-01-31 19:15
A->BがPOSTで、BからフォワードでAを表示しているというのが正しいのであれば、URLは http://B.jsp になるはずです。そうならないとすると、A->BがGETであるか、A->Bのactionに http://B.jsp?text1=001 と書かれているからでしょう。 | ||||
|
投稿日時: 2007-01-31 19:18
そういう作りになっているのでしょう。 我々は手元にソースがあるわけでもなく、 試せる環境があるでもないのです。 今、提供されている情報からはわからないとしかいえません。 WebシステムがブラウザとWebサーバの間の HTTPのプロトコルでのやり取りだということは理解されていますか? ページの遷移に伴いどのようなHTTPリクエストが発行されているか、 それに対してどのようなHTMLを返しているのか、 そこを確認してみてください。 |