对于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;
}
}