用Filter做了个登陆验证的,所有JSP action 都能拦截下来,若不登陆都会转向login.jsp
public String logout() throws Exception { HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Buffe","True");
response.setHeader("ExpiresAbsolute","Now() - 1");
HttpSession session = ServletActionContext.getRequest().getSession();
session.removeAttribute("user");
session.removeAttribute("sessionKey");
session.invalidate();
return SUCCESS;}if ( user == null) {
response.setHeader( "Pragma ", "No-cache ");
response.setHeader( "Cache-Control ", "no-cache ");
response.setDateHeader("Expires",0);
System.out.println("没有登录");
response.sendRedirect(request.getContextPath()+"login.jsp");
现在有个问题: 当在 a.jsp 退出登陆后,注销 session ,跳到login.jsp ,再点 页面后退,
这时就回到 a.jsp(能打印“没有登陆”), 但sendRedirect 就不起作用了。a.jsp里有多个action与服务端交互,
都可进入if ( user == null){} 但就是不执行 sendRedirect。请问如何解决 若不登陆都跳向 login.jspresponse.setHeader缓存的办法依然不起作用,在页面<meta>的方法可以跳转,但要在所有页面标记<meta>太麻烦,何况禁用缓存读取页面不太有效率。请问除禁用缓存的其他方法?
public String logout() throws Exception { HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Buffe","True");
response.setHeader("ExpiresAbsolute","Now() - 1");
HttpSession session = ServletActionContext.getRequest().getSession();
session.removeAttribute("user");
session.removeAttribute("sessionKey");
session.invalidate();
return SUCCESS;}if ( user == null) {
response.setHeader( "Pragma ", "No-cache ");
response.setHeader( "Cache-Control ", "no-cache ");
response.setDateHeader("Expires",0);
System.out.println("没有登录");
response.sendRedirect(request.getContextPath()+"login.jsp");
现在有个问题: 当在 a.jsp 退出登陆后,注销 session ,跳到login.jsp ,再点 页面后退,
这时就回到 a.jsp(能打印“没有登陆”), 但sendRedirect 就不起作用了。a.jsp里有多个action与服务端交互,
都可进入if ( user == null){} 但就是不执行 sendRedirect。请问如何解决 若不登陆都跳向 login.jspresponse.setHeader缓存的办法依然不起作用,在页面<meta>的方法可以跳转,但要在所有页面标记<meta>太麻烦,何况禁用缓存读取页面不太有效率。请问除禁用缓存的其他方法?
只是没有执行 response.sendRedirect(request.getContextPath()+"login.jsp");
a.jsp不是纯的静态页面 ,里面有action。