我正在使用Web应用程序并使用框架jsf,hibernate和spring。
在应用程序中有不同类型的用户。在用户登记类型的基础上,我在不同用户类型的菜单中启用链接。
用户登录后,菜单栏中的注销链接将提供给用户。 我写了我的logout.jsp页面。
<% session.invalidate(); response.sendRedirect是(response.encodeRedirectURL( “../登录/ login.jsf”)); %GT;
即使登出后用户能够查看应显示给特定类型用户的页面。
请帮忙。
答案 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时返回的值。