Filter过滤器的生命周期

提起来生命周期,不难想出,就是从被创建到别销毁,是的,在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方法

发布了376 篇原创文章 · 获赞 242 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/HeZhiYing_/article/details/104058979