> 文档中心 > SpringBoot自定义过滤器Filter实现

SpringBoot自定义过滤器Filter实现

  1. 在boot的启动类中加入@ServletComponentScan,@ServletComponentScan是SpringBoot中提供的注解,使用后可以直接使用@WebServlet、@WebFilter、@WebListener注解自动注入WebServlet、WebFilter、WebListener
  2. 自定义一个类比如:LoginCheckFilter实现Filter接口,并添加@WebFilter注解自动注入过滤器到spring容器中,WebFilter注解参数filterName指定过滤器的名字,urlPatterns指定需要过滤的路径,全部过滤/*
  3. 实现Filter接口的doFilter方法,方法参数说明如下
    1. ServletRequest servletRequest:在springboot的web应用中,servletRequest其实就是web服务器创建的一个HttpServletRequest对象,在web应用中可直接强转HttpServletRequest对象,以获取session等操作
    2. ServletResponse servletResponse:在web应用中可以强制转成HttpServletResponse对象
    3. FilterChain filterChain:filterChain.doFilter(request,response)将请求转发给下一个过滤器,如果没有下一个过滤器,则转发到请求的资源路劲
  4. AntPathMatcher:spring提供已匹配请求路径的对象,通过HttpServletRequest对象的getRequestURI方法request.getRequestURI()获取当前请求的路径,可以实现匹配放行PATH_MATCHER.match(url, requestURI)