站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题求解:防止使用浏览器 “后退” 的办法。

求解:防止使用浏览器 “后退” 的办法。

摘要: 求解:防止使用浏览器 “后退” 的办法。


各位朋友:
  我最近在做一个小小的管理网页(实在不好意思称它为“系统”,刚开始学习的)。用的是 JSP + javabean。用的是 框架,上下结构,下面分为 左(菜单)和右(主要界面)。

  我现在想实现这样的功能:点浏览器上的标准按钮”后退“无效,即主要界面仍然不变。




按退格键呢


当然,按 退格键也失效当然就更加好了。

因为目前是做的这个事情,为了节约内存,所有的查询结果绑定到的变量都是一个,每查询一次,就覆盖了前一次的,因此再退到前一次的操作页面进行提交操作的话,肯定会出现访问内存数据的错误。所以,只好让这些键失效,即只要换了个查询,你要是想继续以前的工作,再访问一次。

我知道好多地方其实已经实现了这样的功能,就126.com信箱都这样,如果登录进了信箱,再退出就没有任何变化。


怎么搞啦?没有人来呀?大家帮帮忙呀!!


有一种笨方法,但不能屏蔽退格,就是不显示导航栏,屏蔽右键!


ajax


用javascript应该可以完成!!


不显示导航栏 然后用js 拦截退格键


no-cache


不明白你要说什么,
"所有的查询结果绑定到的变量都是一个,每查询一次,就覆盖了前一次的,因此再退到前一次的操作页面进行提交操作的话,肯定会出现访问内存数据的错误"............


楼上的朋友,我做的网页是 jsp的,里面的数据通过查询数据库后,用 javabean绑定到session中的,由于为了节约空间,就只用了一个变量,因此每查询一次数据库,新的结果集将覆盖前一次的,如果这样按浏览器上的后退,还是可以退到刚才的页面,但是那个页面的数据显然和结果集的数据不一致了。
有个方法就是把每个查询结果的变量都用不同的名字,这样结果集绑定的对象不同,就不会覆盖,但是会消耗很多的内存,进行衡量的时候。还是觉得如果可以防止后退的话,会好一些!


禁用缓存.


header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1


<%
//让浏览器不缓存jsp页面
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>


其实没必要让后退按扭实效,如果他后退了就让这个页面过期就可以了,这样就要清除它的缓存
用以下语句:
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);


↑返回目录
前一篇: jsp怎么写javascript的服务端脚本呀?
后一篇: 在jsp用户怎么读取指定目录下的文件列表(急!!!要吐血了)