最近项目用到了ServletResponse的重定向,也就是servlet过滤器,session过期自动跳转登录页面,以前见过其他写法,感觉麻烦,不就是重定向吗,一句代码搞定,写那么多干嘛。最近真正用到这个技术写法,不得不去考究下。
1.session过期一般写法
response.sendRedirect(request.getContextPath() + "/login.html");
//response.sendRedirect("login.html");
//request.getRequestDispatcher("/login.html").forward(request, response);
这种写法一般没啥问题,要是web端应用了iframe就会出现问题,session过期后不是整个页面跳转登录页面,而是局部页面。
2.web端应用iframe写法
PrintWriter wr = response.getWriter();
wr.println("<html>");
wr.println("<script>");
wr.println("window.open ('/xsystem/login.html','_top')");
wr.println("</script>");
wr.println("</html>");
return;
这是一种通用写法,用不用iframe都可以。
3.参考
https://blog.csdn.net/judyfun/article/details/42393455
https://blog.csdn.net/fendou4533/article/details/11157739