一.前言
首先比较下过滤器filter和拦截器intercept的差别,两个有点像,但实际有所差别,过滤器和拦截器在对请求进行拦截时,一个是发生的时机不一样,filter是在servlet容器外,interceptor在servlet容器内,且可以对请求的3个关键步骤进行拦截处理。另外filter在过滤是只能对request和response进行操作,而interceptor可以对request、response、handler、modelAndView、exception进行操作。
二.基本用法
1.Application添加注解
@EnableAutoConfiguration
@ServletComponentScan
@ComponentScan("com.example.sso_client")
2.新增Fileter测试
@WebFilter(filterName = "filter", urlPatterns = "/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("过滤器初始化");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("执行过滤操作");
chain.doFilter(request, response);
}
@Override
public void destroy() {
System.out.println("过滤器销毁");
}
}