1.简介
init由容器启动调用 destroy由容器关闭前调用
2.CustomFilter
public class CustomFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CustomFilter init.");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("CustomFilter doFilter before.");
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("CustomFilter doFilter after.");
}
@Override
public void destroy() {
System.out.println("CustomFilter destroy.");
}
}
3.FilterConfig
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<CustomFilter001> customFilterFilterRegistration() {
FilterRegistrationBean<CustomFilter001> registration = new FilterRegistrationBean<>(new CustomFilter());
registration.addUrlPatterns("/*");
registration.setName("customFilter");
registration.setOrder(1);
return registration;
}
}
registration.setOrder(1); 可以指定执行顺序
4.总结
CharacterEncodingFilter是最常见的过滤器案例