session jsf中的注销问题

时间:2011-01-27 13:32:44

标签: jsf

我正在使用Web应用程序并使用框架jsf,hibernate和spring。

在应用程序中有不同类型的用户。在用户登记类型的基础上,我在不同用户类型的菜单中启用链接。

用户登录后,菜单栏中的注销链接将提供给用户。 我写了我的logout.jsp页面。

<% session.invalidate(); response.sendRedirect是(response.encodeRedirectURL( “../登录/ login.jsf”)); %GT;

即使登出后用户能够查看应显示给特定类型用户的页面。

请帮忙。

2 个答案:

答案 0 :(得分:4)

显然是从浏览器缓存中请求了该页面。

通过添加覆盖javax.servlet.Filter等动态网页的url-pattern映射的*.jsf来禁用它,并在doFilter()方法中执行以下操作。

HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpResponse.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

答案 1 :(得分:0)

致电后

session.invalidate(); 

添加

request.logout();.

方法logout将null设置为在请求中调用getUserPrincipal,getRemoteUser和getAuthType时返回的值。