1.过滤器:
依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据.
比如:在过滤器中修改字符编码;在过滤器中修改 HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等
关于过滤器的一些用法可以参考我写过的这些文章:
继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数:https://www.zifangsky.cn/677.html
在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符:https://www.zifangsky.cn/683.html
2.拦截器:
依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用.
因此可以使用spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理。
关于拦截器的一些用法可以参考我写过的这些文章:
[size=medium][color=red][b]SpringMVC中使用拦截器(interceptor)拦截CSRF攻击[/b][/color][/size](修):
[url]https://www.zifangsky.cn/671.html[/url]
[size=medium][color=red][b]SpringMVC中使用Interceptor+cookie实现在一定天数之内自动登录[/b][/color][/size]:
[url]https://www.zifangsky.cn/700.html[/url]
3.执行顺序
过滤器的运行是依赖于servlet容器的,跟springmvc等框架并没有关系。并且多个过滤器的执行顺序跟web.xml文件中定义的先后关系有关。
拦截器的执行顺序跟在SpringMVC的配置文件中定义的先后顺序有关。
[url]http://www.cnblogs.com/michaelShao/p/6693661.html[/url]
上传附件,限制了10M,所以把原有的mybatis-3.3.1.jar从lib里删除了,在运行时,需要把mybatis-3.3.1.jar再添加进去
[size=large][color=red][b]SpringMVC拦截器[/b][/color][/size]
[url]https://www.cnblogs.com/Leo_wl/p/3779547.html[/url]
[size=large][color=red][b]处理器拦截器(HandlerInterceptor)详解[/b][/color][/size]
[url]http://www.jianshu.com/p/1e8d088c2be9[/url]
[size=large][color=red][b]springMVC:HandlerInterceptor拦截器的使用[/b][/color][/size]
[url]https://www.cnblogs.com/sunp823/p/5601396.html[/url]
[url]http://blog.youkuaiyun.com/qwe6112071/article/details/51099437[/url]
依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据.
比如:在过滤器中修改字符编码;在过滤器中修改 HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等
关于过滤器的一些用法可以参考我写过的这些文章:
继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数:https://www.zifangsky.cn/677.html
在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符:https://www.zifangsky.cn/683.html
2.拦截器:
依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用.
因此可以使用spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理。
关于拦截器的一些用法可以参考我写过的这些文章:
[size=medium][color=red][b]SpringMVC中使用拦截器(interceptor)拦截CSRF攻击[/b][/color][/size](修):
[url]https://www.zifangsky.cn/671.html[/url]
[size=medium][color=red][b]SpringMVC中使用Interceptor+cookie实现在一定天数之内自动登录[/b][/color][/size]:
[url]https://www.zifangsky.cn/700.html[/url]
3.执行顺序
过滤器的运行是依赖于servlet容器的,跟springmvc等框架并没有关系。并且多个过滤器的执行顺序跟web.xml文件中定义的先后关系有关。
拦截器的执行顺序跟在SpringMVC的配置文件中定义的先后顺序有关。
[url]http://www.cnblogs.com/michaelShao/p/6693661.html[/url]
上传附件,限制了10M,所以把原有的mybatis-3.3.1.jar从lib里删除了,在运行时,需要把mybatis-3.3.1.jar再添加进去
[size=large][color=red][b]SpringMVC拦截器[/b][/color][/size]
[url]https://www.cnblogs.com/Leo_wl/p/3779547.html[/url]
[size=large][color=red][b]处理器拦截器(HandlerInterceptor)详解[/b][/color][/size]
[url]http://www.jianshu.com/p/1e8d088c2be9[/url]
[size=large][color=red][b]springMVC:HandlerInterceptor拦截器的使用[/b][/color][/size]
[url]https://www.cnblogs.com/sunp823/p/5601396.html[/url]
[url]http://blog.youkuaiyun.com/qwe6112071/article/details/51099437[/url]
本文详细阐述了Servlet过滤器(Filter)与SpringMVC拦截器(Interceptor)的区别及应用场景。过滤器依赖于servlet容器,适用于几乎所有HTTP请求的预处理工作,如字符编码设置和非法字符过滤等。而拦截器则依赖于SpringMVC框架,主要用于controller请求的拦截,适用于更具体的业务逻辑处理。
9495

被折叠的 条评论
为什么被折叠?



