大家。
在我的JSF应用程序中,我使用commandButtons提交表单,处理托管bean中的数据以及显示结果页面。当用户处于这些结果页面之一并按下后退按钮时,浏览器会显示一条消息,要求重新提交表单。有什么方法可以避免这种情况吗?我已搜索但尚未找到解决方案。
在应用程序中,有一个过滤器类可防止在用户注销后返回页面。这种方法与上述问题有什么关系吗?
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
LoginController loginController = (LoginController) ((HttpServletRequest) request).getSession().getAttribute("loginController");
HttpServletResponse res = (HttpServletResponse) response;
res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
res.setDateHeader("Expires", 0); // Proxies.
//System.out.println("prevent caching");
if(loginController == null || !loginController.isLoggedIn()){
String contextPath = ((HttpServletRequest) request).getContextPath();
((HttpServletResponse) res).sendRedirect(contextPath + "/index.xhtml");
}
else {
chain.doFilter(request, res);
}
}
我感谢任何帮助。