2011-10-12 56 views

回答

2

如何在JSF 2.0无效会话,如果浏览器中得到没有被当前会话失效关闭。

您无法以可靠的方式编程。会话将在30分钟后自动失效。如果你打开一个新的浏览器,那么将创建一个新的会话,并且以前的会话将不再可用。


,不希望我的用户使用返回按钮评估受限用户的页面。

您需要在浏览器指示,以缓存那些受限制的用户页面。

@Override 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    HttpServletRequest httpReq = (HttpServletRequest) request; 
    HttpServletResponse httpRes = (HttpServletResponse) response; 

    if (!httpReq.getRequestURI().startsWith(httpReq.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc) 
     httpRes.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
     httpRes.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
     httpRes.setDateHeader("Expires", 0); // Proxies. 
    } 

    chain.doFilter(request, response); 
} 

这样的浏览器被强制发送一个完整的HTTP请求每次而不是:您可以通过创建它在覆盖这些页面,并执行以下任务中doFilter()方法的URL模式映射到一个filter做到这一点显示来自浏览器缓存的页面。

+0

感谢回复@BalusC。我已经做到了,但我正在从JSF2.0寻找东西..顺便感谢您的帮助。 – ifti

相关问题