在Spring“Web应用程序”中使用浏览器后退按钮阻止用户遍历

时间:2013-03-28 15:12:44

标签: spring-mvc browser back-button

我正在使用spring MVC框架工作开发Web应用程序,我希望在使用我的Web应用程序时限制用户使用浏览器返回按钮。我怎么能在spring s中这样做? spring中是否有内置功能?

2 个答案:

答案 0 :(得分:13)

在您的应用程序中使用以下过滤器类,不要忘记在web.xml中注册此过滤器类。

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class NoBrowserCacheFilter implements Filter{

    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response=(HttpServletResponse)res;
        response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires", -1);
        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

}

这就是它,它解决了你的问题。

答案 1 :(得分:0)

您可以使用这个简单的代码,这将是错误的。 它将重新加载当前页面,并打算禁用浏览器上的后退按钮。 这在您要阻止的预期jsp中。

<script type="text/javascript">
    window.history.forward();
    function noBack() {
        window.history.forward();
    }
</script>

并将其添加到body标签:

body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload=""