过滤器和拦截器区别

2019-08-09  本文已影响0人  平面小狮子

过滤器

描述:

随web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。

作用:

过滤请求和响应,对传入的request,response提前过滤或设置一些信息或参数,然后再传入controller控制层进行业务逻辑处理。

使用:

比如过滤掉非法url(不是login.do的地址请求)没有登陆的用户都过滤掉,或者在传入controller控制层前统一设置字符集,或者去除掉一些非法字符等。

拦截器

描述:

拦截器在AOP中用于在某个方法或字段被访问之前进行拦截,然后在之前或之后加入某些操作。比如日志,安全等;

拦截器链,就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用;

一般拦截器方法都是通过动态代理的方式实现。

作用:

比如通过它来进行权限验证,或者判断用户是否登陆,或者是像12306 判断当前时间是否是购票时间。

区别:

拦截器基于动态代理,过滤器是基于函数回调。

拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器。

拦截器可以在方法前后,异常前后等调用,过滤器只能在请求前后各调用一次。

拦截器可以利用依赖注入,因此在Spring框架程序中,优先拦截器。

上一篇 下一篇

猜你喜欢

热点阅读