Struts ではセッションが切れると、 token が無効になりますが、

例えばStrutsで作ったアプリで日記を書いていて、保存する前に
タイムアウトしてしまうと、記載していた内容が消えてしまいますよね。

token invalid の時もコミットさせてしまえばいいんですが、
そうすると二重投稿なども全て受け付けてしまうことになるので
なんとかセッションタイムアウトのときだけ、例外処理したい
のですが、こういうことは難しいでしょうか。
(リクエストにはユーザIDなど入っているのですが。)

ちなみに、mixiなんかは、日記を書いていてセッションが切れて
消えたなんて話を聞きませんが、中はどうなっているのか
ご存知の方、あわせて教えてください。

回答の条件
  • 1人3回まで
  • 登録:2007/11/19 23:18:11
  • 終了:2007/11/27 11:10:15

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/11/19 23:32:35

ポイント35pt

token invalid の時もコミットさせてしまえばいいんですが、

token が無効のときは再度入力画面に遷移すればいいんでは?

その時点で token を再生成すればユーザーはもう一度送信ボタンを押すだけです。


なんとかセッションタイムアウトのときだけ、例外処理したい

セッションが開始されていないときとタイムアウトの時の区別がつかないので普通の方法では無理ですね。

id:tono5652

回答ありがとうございます。

>token が無効のときは再度入力画面に遷移すればいいんでは?

確かにそうですが、そうなると、二重投稿が防げなくなってしまいます。

2007/11/19 23:49:57
id:KUROX No.2

KUROX回答回数3542ベストアンサー獲得回数1402007/11/19 23:40:10

ポイント35pt

http://www.hellohiro.com/session.htm

// セッションを取得します

HttpSession session = request.getSession(false);

String msg;

if (session == null) { // セッションが存在しない場合

msg = "セッションは存在しません";

}

セッションが存在するかどうかで、セッションタイムアウトしたかどうかの

判断をするぐらいしかなさそうですが・・。

Struts でも、上記の方法が使えるのは使えます。

-------------------

>mixiなんかは、日記を書いていてセッションが切れて消えたなんて話を聞きませんが

今現在は知りませんけど、長時間書いたあとに、登録しようとして失敗することは

少なからずあるようですが(苦笑)。

id:tono5652

なるほど。どうもありがとうございます。

2007/11/26 23:00:12
  • id:b-wind
    >>token が無効のときは再度入力画面に遷移すればいいんでは?
    >確かにそうですが、そうなると、二重投稿が防げなくなってしまいます。
    もともと token は2度押し防止用の機能です。二重投稿は防げません。
    また、「コミットする Action」ではなく、「入力用 Action」に戻せばその心配もないと思うのですが、どうでしょう?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません