java web session过期 跳转页面没有跳出frame的问题

  对于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框架的效果了。

以下是java 过滤器的跳转代码

 public class LoginInterceptor implements HandlerInterceptor {

 @Override  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {

  User user = (User) request.getSession().getAttribute("user");  

 if (user != null) {  

  return true;  

 } else {   

 ServletContext context = request.getSession().getServletContext();   

 response.sendRedirect(context.getContextPath() + "/loginController/login");

   return false;    

  }  

}

原文地址:https://www.cnblogs.com/DylanZ/p/6169772.html