2009-08-24 49 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數組中,如果是,則刪除它並繼續。如果不是,則拋出一個錯誤。