Filter的作用
Filter过滤器主要是用来实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息、日志记录等一些高级功能。例如对Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。
实现步骤
- 实现 Filter 接口,这里只是简单的记录url操作前和操作后
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println("before url :"+request.getRequestURI());
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("after url :"+request.getRequestURI());
}
@Override
public void destroy() {
}
}
- 添加@Configuration 注解,将自定义Filter加入过滤链
@Configuration
public class WebConfiguration {
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new MyFilter());
registration.addUrlPatterns("/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("myFilter");
registration.setOrder(1);
return registration;
}
}