栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Filter(过滤器)和Interceptor(拦截器)的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Filter(过滤器)和Interceptor(拦截器)的区别

两者的作用:

  • 过滤器:

    • 是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符.。

  • 拦截器 :

    • 是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

两者的区别:

  • Filter是基于函数回调的,而Interceptor则是基于Java反射的。

  • Filter依赖于Servlet容器,而Interceptor不依赖于Servlet容器。

  • Filter对几乎所有的请求起作用,而Interceptor只能对action请求起作用。

  • Interceptor可以访问Action的上下文,值栈里的对象,而Filter不能。

  • 在action的生命周期里,Interceptor可以被多次调用,而Filter只能在容器初始化时调用一次。

  • 过滤器是servlet的,过滤器是servlet的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号