使用场景
- 登录校验
- 请求数据预处理
- 过滤敏感字符
简单说明
- Filter 是 JavaEE 中 Servlet 规范的一个组件,位于包javax.servlet 中
过滤器使用
@Component
public class MyFilter implements Filter {
//该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次,这个方法必须执行成功,否则过滤器会不起作用。
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Filter 前置");
}
// 容器中的每一次请求都会调用该方法, FilterChain 用来调用下一个过滤器 Filter。
@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 处理后");
}
// 当容器销毁 过滤器实例时调用该方法,一般在方法中销毁或关闭资源,在过滤器 Filter 的整个生命周期也只会被调用一次。
@Override
public void destroy() {
System.out.println("Filter 后置");
}
}