NOEMBLEM/エンブレムが設定されていません。

メールの詳細(メール表示)

件名:

Re: [session] リクエスト二重送信

差出人: muimyさん
送信日時 2002/10/16 23:57
ML.NO [struts-user:0867]
本文:

宮本です。

Strutsの同期トークンという仕組みが使えます。
セッションユニークトークンIDを保存して、
次のリクエストで保存したトークンIDとリクエストに渡されたトークンID
を比較する仕組みです(この処理はStrutsフレームワークで用意されています)。

やり方は、こんな感じだと思います。

1.JSPを呼ぶ前のActionクラスで、トークンを設定します。
Action#saveToken(request)

2.JSPでtransaction指定をします。
<html:link href="hoge.do" transaction="true">hoge</html:link>

※ここで出力されたJSPのHTMLソースを見るとトークンIDが振られているのがわ
かります。

3.呼ばれたActionでisTokenValidメソッドで、1度目の有効なリクエストかどう
か判別できます。
 Action#isTokenValid(request)
 ここでfalseが帰った場合には処理を無効にすればいいと思います。


ついでに、便乗質問させてください

マニュアルをお見たところ、html:linkやhtml:rewriteにはtransaction属性が
ありますが、html:formにはないようです。
formでアクションを指定する場合は、どうやって同期トークンを設定すればよい
のでしょうか?

添付:

このメールは下記のメールに対する返信です:

このメールには下記のメールが返信されています:

【PR】壁紙お小遣いメーリス辞書ふくびき