引言
过滤器和拦截器都是Web应用中常见的概念,但两者之间有何差别什么时候应该使用过滤器,什么时候应该使用拦截器,却经常让很多人感到茫然,其实过滤器和拦截器在某些方面的功能是类似的,所以容易让人混淆,当然他们也有区别。
相同点
-
同样可以拦截请求,可以进行权限验证等操作
-
同样都是链式的,一个请求可以对应多个拦截器或者过滤器
不同点
- 过滤器是web项目中的 普遍的概念,而拦截器是类似struts、springMVC这些表现层框架提供的功能
- 实现不同,过滤器一般实现Filter接口,而拦截器一般实现Interceptor接口
- 拦截器可以访问Servlet API、ActionContext、值栈,而过滤器只能访问Servlet API。
- 过滤器一般配置于拦截器之前
- 过滤器依赖于servlet容器,拦截器则一般不依赖于servlet容器
- 过滤器在web.xml中必须要先于servlet进行声明
更多干货,微信关注“LiuXianSheng刘先生”
网友评论