The first way
1. Define a class to implement the Filter interface
@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. Add annotations to the startup class to scan the package where MyFilter01 is located
@SpringBootApplication
@ServletComponentScan(basePackages = "com.heqiang.filter")//扫描注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
The second way
1. Define a class MyFilter02 to implement the Filter interface
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. Define the config class
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean myFilterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter02());
filterRegistrationBean.addUrlPatterns("/user/*");//注意只能单个*生效
return filterRegistrationBean;
}
}
3. Start scanning without adding filter package
@SpringBootApplication
//@ServletComponentScan(basePackages = "com.heqiang.filter")//扫描注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}