java web session过期 跳转页面没有跳出frame的问题
2017-12-05 20:35
711 查看
Session过期导致的问题
对于frame页面框架的java web项目,如果session过期执行跳转操作时,只在一个frame中(例如center frame)跳转到设置的login页面了,为了能直接跳转到最初的登录页面,就需要在跳转的页面中(login.jsp)添加如下代码:<script type="text/javascript"> if (top.location != location){ top.location.href = location.href; } </script>
这段代码的含义就是:如果login.jsp不是框架的最外层页面,则改变框架结构,使login.jsp变为框架最外层,这样就实现了跳出frame框架的效果了,但是这样也有缺点,就是会在框架内先显示一下登录页,然后才会执行JS,使登录页加载为整个页面。
点击退出登录的问题
当用户退出系统或者session过期或者非法请求时,都要使当前页面跳转到登录页面。比如用户点击注销的按钮<a href="../login/action_logout.do">退出系统</a>
退出之后你会发现,只是刷新了top.jsp上面那个iframe,其他两个还在。
解决办法
1、利用超链接属性中target=”_parent”<a href="../login/action_logout.do" target="_parent">退出系统</a> <a href="../login/action_logout.do" target="_top">退出系统</a>
原理相当于目标页面替换当前的父窗体,而不是当前操作的窗体。
target属性值的含义:
_blank:新建窗口、_self:相同窗口、_parent:父窗口、_top:首窗口
2、利用js
1)在logout()函数中将session清空,返回的登录页面就会全屏显示登录页面.他的原理相当于在请求发送前,把请求的页面替换成当前页面最顶级的frame,这样返回的页面理所应当的会替换整个页面的内容。
<a href="#" onclick=top.location.replace("logout.action")>退出</a>
2)在login.jsp中加入脚本
function window.onload() { if(window.parent.length>0) window.parent.location=location; }
或
<script type="text/javascript"> if (top.location !== self.location) { top.location=self.location; } </script>
或
<script language="JavaScript"> if (window != top) top.location.href = location.href; </script>
当登录页面在frame中加载过程中,会触发这段js代码,从而判断是不是顶级窗体而自动跳转。
这两种方法的区别就在于一个是提交请求之前对请求进行处理,另外一个是请求回来以后进行处理。
参考链接:
http://blog.csdn.net/qq_35357001/article/details/53544072
https://www.cnblogs.com/DylanZ/p/6169772.html
相关文章推荐
- java web session过期 跳转登录页面,怎么跳出iframe的问题
- Web应用中,Session过期后页面的跳转问题
- 记录问题:登录session过期,ajax请求被web security拦截,页面没有数据且没有重定向到login页面
- 解决session过期跳转到登陆页面并跳出iframe框架
- Java-session过期后,拦截器拦截后页面跳不出iframe框架问题
- session过期跳转到登陆页面并跳出iframe框架的两个方法
- 解决session过期跳转到登陆页面并跳出iframe框架
- Shiro中Session过期页面跳转回登录页面处理问题
- Shiro中Session过期页面跳转回登录页面处理问题
- 解决easyui在session过期后iframe跳转到登录页面的问题
- frame中请求页面而session失效时页面跳转问题
- session过期返回登录页面跳出frame
- tomcat问题,jsp页面无法编译,web页面一片空白,log显示空指针,在tomacat的work文件夹下没有生成相应的Java文件
- Shiro中Session过期页面跳转回登录页面处理问题
- 解决session过期跳转到登陆页面并跳出iframe框架
- mvc ajax访问后台时session过期无法跳转到Login页面问题解决
- JAVA Web 安全机制----使用filter验证session用户和页面缓存问题处理
- 解决session过期超时跳转到登陆页面并跳出iframe框架
- 解决session过期跳转到登陆页面并跳出iframe框架
- Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法