Java:具有servlet和缓存控制的注销功能
下面的代码是我的servlet。我使用Java:具有servlet和缓存控制的注销功能,java,security,servlets,logout,Java,Security,Servlets,Logout,下面的代码是我的servlet。我使用doFilter()进行缓存控制,并使用doPost()使会话无效并重定向到登录页面。后退按钮问题仍然存在。有人能说出我做错了什么吗?请在你否决投票前告诉我原因! 提前谢谢 public class LogoutServlet extends HttpServlet implements Servlet, Filter{ @Override public void doFilter(ServletRequest req, ServletRespon
doFilter()
进行缓存控制,并使用doPost()
使会话无效并重定向到登录页面。后退按钮问题仍然存在。有人能说出我做错了什么吗?请在你否决投票前告诉我原因!
提前谢谢
public class LogoutServlet extends HttpServlet implements Servlet, Filter{
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse hsr = (HttpServletResponse) res;
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
hsr.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(req, res);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(false);
session.invalidate();
response.sendRedirect("login.jsp");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
throw new UnsupportedOperationException("Not supported yet.");
}
}
我不知道你是如何做到这一点的:但这个问题没有标题,你不能点击它:问题似乎已经消失了。真的很奇怪。好吧,我的问题有什么解决办法吗?你看到的后退按钮问题是什么?一旦您使会话无效,所有受保护的URL都应该将用户重定向到登录页面。重定向工作正常。问题是,即使在注销后按“后退”按钮,也可以返回到安全页面。就像经典问题一样。