-------------------------------------------敬告信息
警告: 网页已经过期 您申请的网页是用表单中提交的信息创建的。该网页已失效。由于有安全预警功能,Internet Explorer 不会自动再次提交您的信息。
要重新提交信息并查看该网页,请单击刷新按钮。
--------------------------------------------------现象1----------------------------------------------------------
[登陆]页面--------->[树型目录]IFREAM页面
若在[树型目录]的每个Link的页面里面都加入,如下清cache语句
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
则,用Link的真实地址(右键属性查看这个Link的真实地址)
在IE浏览器上访问这个Link,然后在点IE的Back按钮就会出现上面的警告信息!
--------------------------------------------------现象2----------------------------------------------------------
getServletContext().getRequestDispatcher("URL").forward(request,
response);
若[登陆]页面采用上面这种方式,迁移到[树型目录]IFREAM页面,则
用户登陆后在[树型目录]页面做一些操作后,点IE浏览器的Back按钮!一直Back
到[登陆]页面,然后再点前进,若画面加入清cache语句,则显示上面的警告信息!
这时候若Back到URL为控制迁移的Servlet上,点刷新则
[
因为从[登陆]页面迁移到[树型目录]页面,通过一个Servlet来控制迁移,该Servlet采用的是getRequestDispatcher方式,所以
现在点刷新就会把原来信息重新提交一遍。
]会自动重新登陆到[树型目录]叶面!这就是所谓的重复提交?
若采用下面这种方式迁移则不会出现这种情况!
response.sendRedirect("URL");
但是这个URL必须是存在的.Jsp,并且IE的浏览器,地址栏上面的路径,即是我Jsp的路径!
不像getRequestDispatcher这种方式,地址栏上面的路径,即我Servlet的路径!若用response.sendRedirect("URL");这种方式,我有办法修改,IE地址栏上面先是的URL吗?
警告: 网页已经过期 您申请的网页是用表单中提交的信息创建的。该网页已失效。由于有安全预警功能,Internet Explorer 不会自动再次提交您的信息。
要重新提交信息并查看该网页,请单击刷新按钮。
--------------------------------------------------现象1----------------------------------------------------------
[登陆]页面--------->[树型目录]IFREAM页面
若在[树型目录]的每个Link的页面里面都加入,如下清cache语句
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
则,用Link的真实地址(右键属性查看这个Link的真实地址)
在IE浏览器上访问这个Link,然后在点IE的Back按钮就会出现上面的警告信息!
--------------------------------------------------现象2----------------------------------------------------------
getServletContext().getRequestDispatcher("URL").forward(request,
response);
若[登陆]页面采用上面这种方式,迁移到[树型目录]IFREAM页面,则
用户登陆后在[树型目录]页面做一些操作后,点IE浏览器的Back按钮!一直Back
到[登陆]页面,然后再点前进,若画面加入清cache语句,则显示上面的警告信息!
这时候若Back到URL为控制迁移的Servlet上,点刷新则
[
因为从[登陆]页面迁移到[树型目录]页面,通过一个Servlet来控制迁移,该Servlet采用的是getRequestDispatcher方式,所以
现在点刷新就会把原来信息重新提交一遍。
]会自动重新登陆到[树型目录]叶面!这就是所谓的重复提交?
若采用下面这种方式迁移则不会出现这种情况!
response.sendRedirect("URL");
但是这个URL必须是存在的.Jsp,并且IE的浏览器,地址栏上面的路径,即是我Jsp的路径!
不像getRequestDispatcher这种方式,地址栏上面的路径,即我Servlet的路径!若用response.sendRedirect("URL");这种方式,我有办法修改,IE地址栏上面先是的URL吗?
两个页面a.jsp b.jsp ,a页面由用户输入一串字符,提交后,传递到b页面显示,而b页面我添加了清缓存的操作:
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
运行a.jsp,提交后,到b页面,b页面点浏览器“后退”键,正常回到a页面,而后点“前进”键,则提示网页已过期。
那么我们的服务器应答工作是不是在第二次进入这个页面时,才会进行清理缓存的操作呢?以前搜集过防止用户点“后退”和刷新页面的一些方法:
<script language="javascript" for="document" event="onkeydown">
<!--
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!=''){
event.keyCode=9;
}
if((event.altKey)&&((event.keyCode==37)||(event.keyCode==39))){
//alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}
//屏蔽退格删除键,屏蔽F5刷新键,Ctrl+R
if((event.keyCode==116)||(event.ctrlKey && event.keyCode==82)){
event.keyCode=0;
event.returnValue=false;
}
//屏蔽Ctrl+n
if((event.ctrlKey)&&(event.keyCode==78)){
event.returnValue=false;
}
//屏蔽 shift+F10
if((event.shiftKey)&&(event.keyCode==121)){
event.returnValue=false;
}
//屏蔽 shift 加鼠标左键新开一网页
if(event.srcElement.tagName == "A" && event.shiftKey){
event.returnValue = false;
}
//屏蔽Alt+F4
if((event.altKey)&&(event.keyCode==115)){
showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
return false;
}
-->
</script>ps:这个不会与你其他的js函数冲突,若想继续添加新的js函数,在下面直接添加:
<script language="JavaScript" type="text/JavaScript">
<!--
......
-->
</script>