(1) Filter需要在web.xml中配置,依赖于Servlet
(2) Interceptor需要在SpringMVC中配置,依赖于框架
(3) Filter的执行顺序在Interceptor之前,如图:
从灵活性上说拦截器功能更强大些,Filter能做的事情,都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类,例如SpringSecurity就是在filter中进行操作),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。
参考:拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别_时光留夏的博客-优快云博客_拦截器过滤器顺序