1、过滤器实现的是一个Filter 接口,该接口是位于 javax.servlet包之下的,而 拦截器实现的是一个 HandlerInterceptor接口, 该接口位于springframework里面。
2、Filter中 需要实现 其 doFilter 方法完成系统的权限拦截,日志处理等工作,放行的方法是 doFilter方法,拦截器中实现 HandlerInterceptor接口,实现 preHandle 方法,preHandler中 return true表示通过放行代码,而 return false 表示不通过 代码。
3、使用的资源不同,因为 Interceptor拦截器是spring体系下的,所以可以在拦截器中注入 业务逻辑的 service 层,从而访问
业务逻辑,但是Filter就没有这个特权,在spring作为架构的项目当中,最好的是优先使用拦截器
4、拦截器 可以访问值栈 valueStack里面的值,而 过滤器却不能访问。
欢迎补充。