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
-
过滤器链
如果使用注解方式,过滤器的先后顺序是根据过滤器的全类名决定的,如果使用配置文件,按配置的先后顺序。
(使用时要注意filterChain.doFilter(servletRequest,servletResponse);放行)