日期:2014-05-17  浏览次数:20720 次

页面跳转与刷新判断
本人最近在做一个系统,要实现当页面跳转时销毁session对象中的某个值,但在刷新的时候不处理。现在不知道怎么判断jsp页面的跳转和刷新,在网上也找了,可是没有找到想要的答案,希望哪位兄弟或姐妹给与解答。本人不胜感激!(解决的办法最好是能够跨浏览器的)

------解决方案--------------------
判断不了!


跳转时销毁session ? 刷新的时候不处理!

也就是说你保存的变量就这个页面使用?

如果是这样为什么要保存到session 呢?

jsp 也有页面级变量,好像是声明范围是 pagescope
------解决方案--------------------
1.单做一个页面处理类,处理这类事情,包括其它的(以后有什么都可以加进去)。

2.在这个类的开始定义一个二维数组成员,存储需要处理的页面名称和对应的处理函数。
然后作一个ALLDO方法,参数为字串,表示页面名称。函数里拿这个参数取数组中对应的处理函数,完成相应工作。对这个问题来说,就是去将对应的SESSION值置NULL,或设空值。

3.然后在所有页面里引用这个类,创建对象并调用其中一个ALLDO方法,将页面自身名称作为参数传递过去。
这样,只要在有必要的JSP页面里写上引用以及调用的两三行,就完事了。
------解决方案--------------------
在后端判断 refer 吧。
如果 refer 为空或与当前页 url 一致 说明为刷新。
否则为跳转。

每个页面都建立个 ajax 请求后端这个判断 refer 的模块。
后端如果发现 refer 不同了,就将当前登录的 session 清除。

缺陷是,如果访问到了其他站点则这个策略失效。
这事需要使用 session 超时机制来辅助处理。