filter

124 阅读1分钟

image.png

Filter

  • Filter也属于Servlet规范

  • Filter开发步骤:

    新建类实现javax.servlet下 Filter接口

    实现其中的三个方法:init,dofilter,destory

    配置Filter,可以用注解@WebFilter,也可以使用xml

@WebFilter("/demo01.do")//设置要拦截的servlet
public class Demo01Filter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //请求发送过来servlet还没有执行时这句话执行
        System.out.println("helloA");
        //放行
        filterChain.doFilter(servletRequest,servletResponse);
        //
        System.out.println("helloA2");
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
  • Filter在配置时,和servlet一样,也可以配置通配符,例如@WebFilter("*.do")表示拦截所有以.do结尾的Servlet

  • 过滤器链

image.png

如果使用注解方式,过滤器的先后顺序是根据过滤器的全类名决定的,如果使用配置文件,按配置的先后顺序。

(使用时要注意filterChain.doFilter(servletRequest,servletResponse);放行)