JavaWeb拦截器,查看用户是否登录过,未登录禁止访问页面并且跳转到登录页面

来源:互联网 发布:淘宝2017双十一交易 编辑:程序博客网 时间:2024/05/21 06:48
package util;    import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/**  * 拦截器,查看用户是否登录过,未登录禁止访问页面 */  public class AuthFilter implements Filter {      public void destroy() {      }        public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse, FilterChain filterChain)              throws IOException, ServletException {          HttpServletRequest request = (HttpServletRequest) servletRequest;          HttpServletResponse response = (HttpServletResponse) servletResponse;          String currentURL = request.getRequestURI();          // 取得根目录所对应的绝对路径:          String targetURL = currentURL.substring(currentURL.indexOf("/", 1),currentURL.length());          // 截取到当前文件名用于比较          HttpSession session = request.getSession(false);      // 判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环          if (!"/JSP/login.jsp".equals(targetURL)) {            if (session == null || session.getAttribute("name") == null) {                  response.sendRedirect(request.getContextPath() + "/JSP/login.jsp");                  return;              }          }          // 加入filter链继续向下执行          filterChain.doFilter(request, response);      }        public void init(FilterConfig filterConfig) throws ServletException {      }  }  

阅读全文
0 0
原创粉丝点击