过滤器Filter

遇见
2023-06-05 / 0 评论 / 60 阅读 / 正在检测是否收录...
Filter快速入门

1. 定义Filter:定义一个类,实现 Filter 接口,并重写其所有方法。
2. 配置Filter:Filter类上加 @WebFilter 注解,配置拦截资源的路径。引导类上加 @ServletComponentScan 开启Servlet组件支持

在易语言里面使用的时候有个注册前全局接口与注册后全局接口

@WebFilter(urlPatterns = "/*")
public class DemoFilter implements Filter {
    @Override //初始化方法, 只调用一次
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("init 初始化方法执行了");
    }

    @Override //拦截到请求之后调用, 调用多次
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("Demo 拦截到了请求...放行前逻辑");
        //放行
        chain.doFilter(request,response);

        System.out.println("Demo 拦截到了请求...放行后逻辑");
    }

    @Override //销毁方法, 只调用一次
    public void destroy() {
        System.out.println("destroy 销毁方法执行了");
    }
}
@ServletComponentScan
@SpringBootApplication
public class TliasApplication {

    public static void main(String[] args) {
        SpringApplication.run(TliasApplication.class, args);
    }

}
Filter执行流程

请求 --> 放行前逻辑 --> 放行 --> 资源 --> 放行后逻辑
liia8d0i.png

Filter拦截路径

Filter 可以根据需求,配置不同的拦截资源路径:

liiabsb7.png

过滤器链

介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链

0

评论

博主关闭了所有页面的评论