- PR -

strutsでダブルポストと戻るボタン制御を行う

1
投稿者投稿内容
たろー
会議室デビュー日: 2004/12/21
投稿数: 11
投稿日時: 2004-12-25 17:41
お世話になっています。
たろーです。

strutsでダブルポストとブラウザ戻るボタンの制御を検証中です。
strutsのActionクラスに二重送信防止用のメソッド(isTokenValid、saveTokenなど)がありますが、ダブルポストの検知とブラウザの戻るボタン後の遷移の検知は二重送信防止のメソッドで検知可能というのがわかりました。

ただ、問題なのが、ダブルポストの検知とブラウザの戻るボタン後の遷移の検知の区別が判断不可能と判断しています。判断不可能なのでしょうか??

また、ダブルポストの防止で初回アクセスのリクエストをサーブレットの処理として許可し、2回目以降のリクエストは無効化したいのですが、無効化する手段が見つかりません。Nullを返すのですが、真っ白い画面に遷移(?)します。

回避方法や解決方法がありましたら、アドバイスの程、よろしくお願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-12-25 18:18
ダブルポストと戻るボタン->再ポスト はどちらもブラウザから来るリクエストは同じですので基本的に判別不可能です。

「Nullを返すのですが、真っ白い画面に遷移(?)します。 」とは具体的にどういう意味でしょう?
Action で null を返しているという意味でしょうか?
2度目以降では実際の処理を省いて画面表示の JSP へ Forward してやれば Ok です。
もちろん画面表示に必要な項目は session に積んである必要がありますが。また、1度目の処理が終わるって結果が session に積み込まれる前に Forward されてしまっては困りますので適切に同期してやる必要があります。
たろー
会議室デビュー日: 2004/12/21
投稿数: 11
投稿日時: 2004-12-26 16:32
ご返答ありがとうございます。
ダブルポストとブラウザの戻るボタン後の他ボタン押下時の区別は判断不可能と判断し、さしあたり、ダブルポストはJavascriptの実装で対処し、ブラウザの戻るボタンはstrutsのisTokenValid、saveTokenメソッドで対処しました。

また、JSPへはRequestDispatcher#forward()メソッドにて遷移を確認しました。

strutsとはいえども、個々のアプリケーションは作り込まないと、要求には応えられませんね。。。
ありがとうございました。
1

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