【发布时间】:2013-03-28 15:12:44
【问题描述】:
我正在使用 spring MVC 框架开发 Web 应用程序,我想限制用户在使用我的 Web 应用程序时使用浏览器的后退按钮进行遍历。我如何在springs 中这样做? spring 中是否有任何内置功能?
【问题讨论】:
标签: spring-mvc browser back-button
我正在使用 spring MVC 框架开发 Web 应用程序,我想限制用户在使用我的 Web 应用程序时使用浏览器的后退按钮进行遍历。我如何在springs 中这样做? spring 中是否有任何内置功能?
【问题讨论】:
标签: spring-mvc browser back-button
在您的应用程序中使用以下过滤器类,不要忘记在 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 {
}
}
就是这样,它解决了你的问题。
【讨论】:
您可以使用这个简单的代码,这将是一个错误的返回。 它将重新加载当前页面并打算禁用浏览器上的后退按钮。 this 在您想要阻止的预期 jsp 中。
<script type="text/javascript">
window.history.forward();
function noBack() {
window.history.forward();
}
</script>
并将其添加到正文标记中:
body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload=""
【讨论】: