旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

Spring中Filter和Interceptor有什么区别?【JAVA教程】,java

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:73评论:0


导读:本篇文章给人人带来的内容是关于Spring中Filter和Interceptor有什么区分?有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。Interce...
本篇文章给人人带来的内容是关于Spring中Filter和Interceptor有什么区分?有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

Interceptor

重要作用:阻拦用户要求,举行处置惩罚,比方推断用户登录状况、权限考证,只需针对Controller要求举行处置惩罚,是经由过程HandlerInterceptor。

Interceptor分两种状况,一种是对会话的阻拦,完成spring的HandlerInterceptor接口并注册到mvc的阻拦行列中,个中preHandle()要领在挪用Handler之前举行阻拦(上图步骤3),postHandle()要领在视图衬着之前挪用(上图步骤5),afterCompletion()要领在返回响应之前实行;另一种是对要领的阻拦,须要运用@Aspect注解,在每次挪用指定要领的前、后举行阻拦。

Filter

重要作用:过滤字符编码、做一些营业逻辑推断,重要用于对用户要求举行预处置惩罚,同时也可举行逻辑推断。

Filter在要求进入servlet容器实行service()要领之前就会经由filter过滤(上图步骤1),不像Intreceptor一样依赖于springmvc框架,只须要依赖于servlet。Filter启动是随WEB运用的启动而启动,只须要初始化一次,今后都能够举行阻拦。

Filter有以下几个品种:

用户受权Filter:搜检用户要求,依据要求过滤用户不法要求;

日记Filter:纪录某些特别的用户要求;

解码Filter:对非标准编码的要求解码。

Filter和Interceptor的区分

1、Filter是基于函数回调(doFilter()要领)的,而Interceptor则是基于Java反射的(AOP头脑)。

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

3、Filter对险些一切的要求起作用,而Interceptor只能对action要求起作用。

4、Interceptor能够接见Action的上下文,值栈里的对象,而Filter不能。

5、在action的生命周期里,Interceptor能够被屡次挪用,而Filter只能在容器初始化时挪用一次。

6、Filter在过滤是只能对request和response举行操纵,而interceptor能够对request、response、handler、modelAndView、exception举行操纵。

【相干引荐:Java视频教程】

以上就是Spring中Filter和Interceptor有什么区分?的细致内容,更多请关注ki4网别的相干文章!

标签:java


欢迎 发表评论: