过滤器与拦截器的区别

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里面的值,而 过滤器却不能访问。

        欢迎补充。


你可能感兴趣的:(java)