第一种方式
1.定义一个类实现Filter接口
@WebFilter(urlPatterns = "/myfilter01")
public class MyFilter01 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("过滤器1进来了");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
2.启动类添加注解扫描MyFilter01所在包
@SpringBootApplication
@ServletComponentScan(basePackages = "com.heqiang.filter")//扫描注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
第二种方式
1.定义一个类MyFilter02实现Filter接口
public class MyFilter02 implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
System.out.println("过滤器2进来了");
chain.doFilter(request,response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}
2.定义config类
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean myFilterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter02());
filterRegistrationBean.addUrlPatterns("/user/*");//注意只能单个*生效
return filterRegistrationBean;
}
}
3.启动类无需添加filter包的扫描
@SpringBootApplication
//@ServletComponentScan(basePackages = "com.heqiang.filter")//扫描注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}