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网别的相干文章!