2009-08-24 10 views
0

jspを使用してアプリケーションを作成すると、ブラウザに常に実行されるURLがキャッシュされるため、アクションが実行されます再び。 例: ">転送; リンクをクリックした後にページを更新すると、この操作は再度実行されます。 私はこの問題を回避するために使用する必要があることも知っていますが、実際にはない便利。jspでリフレッシュしたときに再実行アクションを防止する方法

いずれかよりよい解決策がありますか? 任意の提案が理解されるであろう。事前に 感謝を。

答えて

0

このソリューションはInternet Explorerで動作します。

<script type="text/javascript"> 
    document.onkeydown = function(){ 
    if(window.event && window.event.keyCode == 116){ // Capture and remap F5 
     window.event.keyCode = 505; 
    } 
    if(window.event && window.event.keyCode == 505){ // New action for F5 
     return false; // Must return false or the browser will refresh anyway 
    } 
} 
</script> 
1

あなたは通常、最初のリクエストに応じて生成され、に保存されている非表示のフォーム変数を、持っていますそのセッションを乱数として生成します。

このフィールドをチェックし、セッション変数をチェックし、一致する場合はそれを処理し、セッション変数を削除します。

このように、戻るボタンを押すと、フォーム内で同じ変数が返されますが、セッションでは削除されるため、大文字と小文字を区別することができます。

0

トークンとして知られているものを使用できます。あなたのフォームの提出には、トークン番号を隠しフォーム要素として含めます。あなたのページを生成する際に、このランダムなトークンをSESSIONS(配列内)に追加してください。フォーム提出時に、ランダムトークンがSESSION配列内に存在するかどうかを確認し、存在する場合はそれを削除して続行します。いいえの場合は、エラーをスローします。

関連する問題