Filter生命周期
- 程序启动调用Filter的init()方法(永远只调用一次);
- 程序停止调用Filter的destroy()方法(永远只调用一次);
- doFilter()方法每次的访问请求如果符合拦截条件都会调用(程序第一次运行,会在servlet调用init()方法以后调用;
- 不管第几次,都在调用doGet(),doPost()方法之前)。
Filter的使用
无论哪种方式都需要先定义一个Filter
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化myFilter过滤器");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("进入MyFilter过滤器 ");
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("MyFilter处理一下服务端返回的response");
}