过滤器和拦截器的区别

Posted haiqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器和拦截器的区别相关的知识,希望对你有一定的参考价值。

拦截器:防止重复提交  日志

过滤器  单点登录,权限控制,sql注入,
    

拦截器和过滤器的区别:


过滤器:

依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。

在请求进入容器之后,还未进入Servlet之前进行预处理;在请求结束返回给前端之前进行后期处理。处理完成后,它会交给下一个过滤器处理,直到请求发送到目标为止。

SQL注入、权限配置、单点登录,过滤非法字符


--------------------

拦截器:

在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。比如日志,安全等。
  
拦截器链,就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。
一般拦截器方法都是通过动态代理的方式实现。

-------------------

区别:

①拦截器是基于动态代理的,而过滤器是基于函数回调。
②拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器。
③拦截器可以在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调用一次。
④拦截器可以利用依赖注入,因此在Spring框架程序中,优先拦截器。

----------------------

个人理解是:拦截器是方法级别的,过滤器是应用级别的

-------------------


参考:
https://www.cnblogs.com/xzwblog/p/6832509.html











































以上是关于过滤器和拦截器的区别的主要内容,如果未能解决你的问题,请参考以下文章

java web 过滤器跟拦截器的区别和使用

java web 过滤器跟拦截器的区别和使用

Java 过滤器和拦截器的区别

拦截器和过滤器的区别

拦截器和过滤器的区别

拦截器和过滤器的区别