过滤器filter和拦截器interceptor的区别
程序员文章站
2022-05-10 13:57:42
...
1、filter是servlet,jsp里面的东西,应该说是属于规范了,而拦截器是struts的东西,不通用。
2、一个请求,get,post等方式,到后台,必须先经过filter,然后经过Interceptor,最后在通过在filter或者Interceptor里面的跳转,跳到指定的页面或者action或者servlet中。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4、filter是链式处理的,也就是一个filter过滤完后,如果还有过滤,那就得继续。顺序根据web.xml里面的顺序来。
5、filter是servlet包里面的一个接口,写一个filter,只要实现它,然后实现它的几个方法就算一个filter了,别忘记还得再web.xml里面配置。
6、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
7、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
8、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
2、一个请求,get,post等方式,到后台,必须先经过filter,然后经过Interceptor,最后在通过在filter或者Interceptor里面的跳转,跳到指定的页面或者action或者servlet中。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4、filter是链式处理的,也就是一个filter过滤完后,如果还有过滤,那就得继续。顺序根据web.xml里面的顺序来。
5、filter是servlet包里面的一个接口,写一个filter,只要实现它,然后实现它的几个方法就算一个filter了,别忘记还得再web.xml里面配置。
6、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
7、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
8、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
推荐阅读
-
布隆过滤器(bloom filter)及php和redis实现布隆过滤器的方法
-
JavaScript 数组some()和filter()的用法及区别
-
浅析JAVA中过滤器、监听器、拦截器的区别
-
过滤器 和 拦截器的 6个区别(别再傻傻分不清了)
-
通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
-
Java拦截器和过滤器的区别分析
-
聊聊java 过滤器、监听器、拦截器的区别(终结篇)
-
JavaScript 数组some()和filter()的用法及区别
-
springboot的拦截器和过滤器实现
-
利用过滤器Filter和特性Attribute实现对Web API返回结果的封装和统一异常处理