package com.it.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(urlPatterns="/*")
public class DemoFilter implements Filter {
@Override // 初始化的方法 只要调用一次
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
System.out.println("init 初始化方法执行了!");
}
@Override // 拦截到请求 之后调用 只调用多次
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("doFilter: 拦截到了请求");
// 放行
filterChain.doFilter(servletRequest,servletResponse);
}
@Override // 销毁方法 只调用一次
public void destroy() {
Filter.super.destroy();
System.out.println("destroy销毁方法执行了!");
}
}
注意两个注解
@webFilter(urlpatterns="/*") 实现类
@servletcomponentScan Springboot 启动了
1.过滤器执行流程
- 浏览器请求-->放行前的逻辑-->放行-->资源-->放行后的逻辑
2.拦截路径
- /login
- /depts/*
- /*
3.过滤器链
一个web应用中 , 配置了多个过滤器 .就形成了一个过滤器链
在过滤器当中 转换Json 格式的依赖
<!--fastJSON-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>