Filter生命周期
Filter(过滤器)生命周期各方法执行顺序
- 服务器启动,首先执行构造方法和init方法(这两个方法只执行一次)
- 当有匹配过滤条件的请求时执行doFilter方法(该方法可以执行多次)
- 服务器正常关闭的时候,或者该Filter类重新加载的时候会执行destroy方法(该方法只执行一次)
Filter生命周期各方法执行顺序原理图如下。
各方法执行顺序的代码验证
创建一个Filter类
public class TestFilter implements Filter {
public TestFilter() {
System.out.println("ConstructorMethod");
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("initMethod");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
System.out.println("请求");
chain.doFilter(request, response);
System.out.println("响应");
}