标签:拦截器 定义 SpringMVC 视图 过滤器 执行 请求
Spring MVC的拦截器(Interceptor) 与Java Servlet的过滤器(Filter) 类似,它主要用于拦截用户的请
求并做相应的处理。通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。
拦截器与过滤器区别:
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调。
2.拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4.拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5.在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
6.拦截器可以获取IOC容器中的各个bean,而过滤器就不行,拦截器里可以注入一个service,可
以调用业务逻辑。
拦截器的定义:在Spring MVC框架中,定义一个拦截器,需要对拦截器进行定义和配置。定义一
个拦截器可以通过两种方式:一种是通过实现HandlerInterceptor接口或继承HandlerInterceptor
拦截器拦截的都是请求,访问不到页面接口的实现类来定义;另- -种是通过实现
WebRequestinterceptor接口或继承WebRequestInterceptor接口的实现类来定义。
HandlerInterceptor接口中有三个方法
perHandle 在执行请求的业务逻辑之前调用
poatHandle 业务执行完后,进入视图解析器,在解析视图之前执行该方法
afterCompletion 视图渲染(当前页面响应给用户)结束之后执行
单个拦截器的执行流程:
在配置文件中,如果只定义了一-个拦截器,程序首先将执行拦截器类中的preHandle()方法,如果
该方法返回true,程序将继续执行控制器中处理请求的方法,否则中断执行。如果preHandle()方法
返回true,并且控制器中处理请求的方法执行后返回视图前,将执行postHandle()方法。返回视图
后,才执行afterCompletion(方法。
标签:拦截器,定义,SpringMVC,视图,过滤器,执行,请求 来源: https://blog.csdn.net/m0_64895976/article/details/123190620
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。