zoukankan      html  css  js  c++  java
  • 使用filter进行登录验证,并解决多次重定向问题

    最近在做关于filter登录验证的功能,防止未登录的用户直接通过地址进入系统

    LoginFilter类:继承Filter接口

    package com.ss.filter;

    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 LoginFilter implements Filter{

     
       @Override
       public void init(FilterConfig filterconfig) throws ServletException { }
     
      @Override
       public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
         throws IOException, ServletException  {
          HttpServletRequest servletRequest = (HttpServletRequest)request;
          HttpServletResponse servletResponse = (HttpServletResponse)response;
          HttpSession session = servletRequest.getSession();   
          String path = servletRequest.getRequestURI();  //获取用户请求的uri

          if(session.getAttribute("admin")==null && path.indexOf("/html/login")==-1) {         

             servletResponse.sendRedirect(servletRequest.getContextPath()+"/html/login.html");
             return;
          }
          else {
            filterChain.doFilter(request, response);
          }
       }
     
       @Override
       public void destroy() { }
     
    }

    在web.xml中配置session及filter:

     <!-- 设置session过期时间 min -->
     <session-config>
        <session-timeout>30</session-timeout>
     </session-config> 
     <!-- session过滤器配置相关 -->
     <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.ss.filter.LoginFilter</filter-class>
     </filter>
     <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>*.html</url-pattern>
     </filter-mapping>

  • 相关阅读:
    Linux安装nginx
    Linux安装vsftp服务
    maven的Tomcat插件使用
    Mybatis逆向工程生成代码
    千里之行,始于足下
    java 通过反射获取注解
    天气预报需要用到的jar包
    JDBC 利用反射 配置文件
    从网页下载图片的代码
    装箱/拆箱 对象排序
  • 原文地址:https://www.cnblogs.com/yao3364/p/7885230.html
Copyright © 2011-2022 走看看