1
如果我关闭了浏览器而不会使会话失效,那么我不想让它在没有再次登录的情况下访问我的应用程序。如何在jsf 2.0中使会话失效,如果浏览器关闭而不会使当前会话无效。
并且不希望我的用户使用后退按钮来评估受限用户页面。
我该如何在JSF 2.0中做到这一点?
如果我关闭了浏览器而不会使会话失效,那么我不想让它在没有再次登录的情况下访问我的应用程序。如何在jsf 2.0中使会话失效,如果浏览器关闭而不会使当前会话无效。
并且不希望我的用户使用后退按钮来评估受限用户页面。
我该如何在JSF 2.0中做到这一点?
如何在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做到这一点显示来自浏览器缓存的页面。
感谢回复@BalusC。我已经做到了,但我正在从JSF2.0寻找东西..顺便感谢您的帮助。 – ifti