疯子姓张

一定要站在巨人的肩膀上去学习。

导航

过滤器和拦截器的区别

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

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

拦截器和过滤器的区别:


过滤器:

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

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

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


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

拦截器:

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

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

区别:

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

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

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

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


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

posted on 2018-06-19 21:45  菠萝奶油饭  阅读(190)  评论(0编辑  收藏  举报