具体的请求处理过程(参考其他文章):
Filter是在Servlet规范中定义的,是Servlet容器支持的。而拦截器是在Spring容器内的,是Spring框架支持的。
使用的资源不同:同其他的代码块一样,拦截器也是一个Spring的组件,归Spring管理,配置在Spring文件中,因此能使用Spring里的任何资源、对象,
例如Service对象、数据源、事务管理等,通过IoC注入到拦截器即可;而Filter则不能。
深度不同:Filter在只在Servlet前后起作用。而拦截器能够深入到方法前后、异常抛出前后等,因此拦截器的使用具有更大的弹性。
所以在Spring构架的程序中,要优先使用拦截器。
参考:
https://www.tianmaying.com/tutorial/spring-mvc-interceptor
http://blog.csdn.net/xiaodanjava/article/details/32125687