2009-08-24 50 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数组中,如果是,则删除它并继续。如果不是,则抛出一个错误。