提起来生命周期,不难想出,就是从被创建到别销毁,是的,在Filter过滤器中就是这样的简单三步,首先是init创建,只执行一个,用于加载资源,然后doFilter处理过滤,每一次请求被拦截资源时会执行,执行多次,最后是destroy销毁,只执行一次,用于释放资源,具体执行下面进行代码演示,写一个Filter类
package com.zhiying.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")
public class FilterDemo3 implements Filter {
// 在服务器启动后,会创建Filter对象,然后调用init方法,只执行一个,用于加载资源
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init...");
}
// 每一次请求被拦截资源时会执行,执行多次
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("doFilter...");
chain.doFilter(request,response);
}
// 在服务器正常关闭后,Filter对象被销毁,会执行destroy方法,只执行一次,用于释放资源
public void destroy() {
System.out.println("destroy...");
}
}
当我们启动服务器的时候,执行了init方法
当我们多次进行访问的时候,只执行了doFilter方法
当我们销毁它的时候,执行了destroy方法