1. 通过注解扫描完成 Filter 组件的注册
1.1 编写 Filter
/**
*SpringBoot 整合 Filter 方式一
*<filter>
* <filter-name>FirstFilter</filter-name>
* <filter-class>com.bjsxt.filter.FirstFilter</filter-class>
*</filter>
*<filter-mapping>
* <filter-name>FirstFilter</filter-name>
* <url-pattern>/first</url-pattern>
*</filter-mapping>
*/
//@WebFilter(filterName="FirstFilter",urlPatterns={"*.do","*.jsp"})
@WebFilter(filterName = "filter1",urlPatterns = "/*")
public class Filter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("进入 Filter");
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("离开 Filter");
}
@Override
public void destroy() {
}
}
1.2 编写启动类
@EnableAutoConfiguration
@ServletComponentScan("com.zth")
public class App {
public static void main(String[] args){
// 启动 SpirngBoot 项目
SpringApplication.run(App.class,args);
}
}
2. 通过方法完成 Filter 组件的注册
2.1 编写 Filter
public class Filter2 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("进入 Filter2");
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("离开 Filter2");
}
@Override
public void destroy() {
}
}
2.2 编写启动类
@SpringBootApplication
public class App2 {
public static void main(String[] args){
// 启动 SpirngBoot 项目
SpringApplication.run(App2.class,args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean (){
ServletRegistrationBean bean = new ServletRegistrationBean(new MyServlet2());
bean.addUrlMappings("/second");
return bean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean (){
FilterRegistrationBean bean = new FilterRegistrationBean(new Filter2());
bean.addUrlPatterns("/second");
return bean;
}
}