当前位置:   article > 正文

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

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的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/342133
推荐阅读
相关标签
  

闽ICP备14008679号