在springboot中使用filter,需要先自定义一个filter,其次注册该filter。
自定义filter
自定义的filter实现Filter(javax.servlet.Filter),并重写doFilter方法。
public class MyFilter1 implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("=============自定义过滤器MyFilter1============");
chain.doFilter(request, response);
}
}
注册自定义的filter
注册方式有两种,一种是生成一个对象,由对象自动注册filter;一种是使用注解注册filter。
第一种方式
使用@Configuration+@Bean方式来创建filterRegistration对象,由该对象来注册filter。在注册filter的时候,不要忘记添加urlPatterns。
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new MyFilter3());
registration.addUrlPatterns("/*");
return registration;
}
}
第二种方式
使用@WebFilter注解标记在自定义的filter上,需要指明urlPatterns和filterName。
@WebFilter(urlPatterns = "/*", filterName = "myFilter1")
public class MyFilter1 implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("=============自定义过滤器MyFilter1============");
chain.doFilter(request, response);
}
}
这就是filter的简单使用方式,先定义再注册。