OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

sessionに付けた情報について

  • すぐに回答を!
  • 質問No.191297
  • 閲覧数140
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

現在、servletでWEBアプリケーションを作成しているのですが
ブラウザで「戻る」をした場合に、sessionに付けて受け渡しした
データが残ったまま前画面に戻り、次にアクションを起こした時に
新しいデータではなく、先ほどの古いデータを元にservletが起動して
しまいます。
 そして、ブラウザの更新ボタンを押すと初めて新しいデータが反映した
画面に遷移するのです。
 sessionを使ったWEBプログラムの場合、このようなブラウザの戻るキー
による動作不良はついて回るものなのでしょうか?
 このバクは私がsessionの使い方の失敗によるものと予想しているのですが
解決策が未だみつかりません。
 このような状態になった方の経験から、アドバイスをいたたければ幸いです。
また、sessionについて詳しい情報があるサイトがあれば教えていただきたい。
よろしくお願いします。

 
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル9

ベストアンサー率 53% (41/76)

ブラウザの戻るボタンやsubmitボタンの二度押しによるトラブルは必ず起こります。
現状ではこれを回避するように実装するという以外に方法はありません。

>ブラウザで「戻る」をした場合に、sessionに付けて受け渡しした
>データが残ったまま前画面に戻り、次にアクションを起こした時に
>新しいデータではなく、先ほどの古いデータを元にservletが起動して
>しまいます。

これはブラウザから送信された情報ではなく、session中に保持されたデータを見にいってるからでは?

戻るボタンの対応の1つとして、ブラウザにも依存しますが、戻るボタンを押して欲しくないページ(servletで生成)では、Expireヘッダを付けておくというのも1つの手です。
IEとかは状況により平気でExpireヘッダを無視してくれたりしますが、絶対にあり得ないぐらい古い日付を付けておけば、再度submitされた場合、必ず新しいデータがservletに渡されてきます。

それともう1つは、servletで生成する各ページにマークをつけておく方法です。
つまり今どのページから遷移してきたかを記録しておく方法です。
これにより、異常な遷移が発生した場合、再入力の画面を出力するなどとするわけです。

他にも方法は考えられますが、取りあえずこんなところで試してみてください。
お礼コメント
noname#4663

 回答ありがとうございます。とても参考になりました。
もう一度ロジックを見直した結果、基準の情報を表示された
ページに持たせてそれを元にsessionに情報をつける
ことにしました。
 これなら、どこに戻ろうがそこからまたデータを渡す
ことができるので上記の現象は出なくなりました。
また、アドバイスをよろしくお願いします。
投稿日時 - 2001-12-27 16:58:03
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ