如何在未使用Servlet记录用户时重定向到索引页面?

如果用户未使用servlet登录,如何重定向到登录页面。

我有一个登录页用户使用该登录页面并进入主页,导航用户点击退出后只需点击浏览器中的后退按钮现在页面转到以前访问过的页面,如何在使用时将用户重定向到登录页面servlet的?

感谢您的帮助和持续的支持

在页面顶部的jsp中使用以下代码

if(userName.length()==0 || userType.length()==0 ){ session.setAttribute("message", "Please Login"); response.sendRedirect(response.encodeRedirectURL(path+"/"+destination)); } 

使用servlet,

在web.xml中

   AuthenticationFilter com.java.web.authentication.AuthenticationFilter   AuthenticationFilter /faces/manage/*  

在validationfilter中,

  if (visit == null) { servletContext.log("Redirecting to the login page."); session.setAttribute(Constants.ORIGINAL_VIEW_KEY, requestPath); String loginView = httpRequest.getContextPath() + httpRequest.getServletPath() +Constants.LOGIN_PAGE; httpResponse.sendRedirect(loginView); } else { filterChain.doFilter(servletRequest, servletResponse); } 

在你的servlet doGet或doPost(无论哪个被调用)中,你需要检查用户是否已登录(我猜你有会话检查机制),如果你看到用户没有登录,只需使用:

 response.sendRedirect("/login.jsp"); 

您可以在Servletvalidation用户会话,如果会话无效或者会话不包含userId(如果在会话创建时您在会话属性中设置了该会话),则将其重定向到login页面。 要禁用,您需要使用jsp/servlet以下代码清除缓存。

 response.setHeader("Cache-Control","no-cache"); response.setHeader("Cache-Control","no-store"); response.setHeader("Pragma","no-cache"); response.setDateHeader ("Expires", 0); 

理想情况下,您应该在Filter中执行此操作。

 public void doFilter(.......){ if(user logged in){ filterChain.doFilter(...); } else { response.sendRedirect("/login.jsp"); } } 

我建议你使用Servlet Security Feature ,它允许容器管理Web Application Security