如何在注销应用程序后阻止用户访问历史记录

时间:2016-08-31 10:24:54

标签: java spring-mvc

我正在开发一个SpringMVC应用程序,我需要创建一个注销页面。我制作页面但是当我点击浏览器上的后退按钮时,我可以看到用户数据。

如何在注销应用程序后阻止用户访问历史记录。请告诉我一个不使用Spring-security的解决方案。

我正在使用以下处理程序方法来注销该应用程序。

@RequestMapping("/logout")
public String logout(HttpServletRequest request)
{
    request.getSession().invalidate();
    return "index";
} 

谢谢

3 个答案:

答案 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.清除缓存

See thisalso this already asked question

答案 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 {
    }
}

`