我正在开发一个SpringMVC应用程序,我需要创建一个注销页面。我制作页面但是当我点击浏览器上的后退按钮时,我可以看到用户数据。
如何在注销应用程序后阻止用户访问历史记录。请告诉我一个不使用Spring-security的解决方案。
我正在使用以下处理程序方法来注销该应用程序。
@RequestMapping("/logout")
public String logout(HttpServletRequest request)
{
request.getSession().invalidate();
return "index";
}
谢谢
答案 0 :(得分:2)
您可以在jsp页面顶部添加以下行,以便不存储历史记录或缓存
<%
response.setHeader("Cache-Control","no-cache,no-store,must-revalidate");//HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
答案 1 :(得分:2)
停止用户返回上一页的历史记录
您可以使用javascript
window.history.forward();<br>
function noBack(){<br>
window.history.forward();
}
但由于种种原因,这不是最佳方法。
还有许多其他解决方案
1.使会话无效
2.清除缓存
答案 2 :(得分:1)
如果你正在使用Spring框架,那么使用拦截器来避免应用程序的这种行为。
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}
`