SpringMVC拦截器(慕课网)

时间:2023-03-08 22:13:41
SpringMVC拦截器(慕课网)

拦截器:通过统一拦截从浏览器发往服务器的请求来完成功能的增强

使用场景:解决请求的共性问题 如:乱码、权限验证

基本工作原理:拦截器和过滤器的工作原理相似

乱码问题:使用Spring过滤器(Filter) org.springframework.web.filter

在web.xml中配置filter

SpringMVC拦截器(慕课网)

拦截器的实现:

1、编写拦截器类实现HandlerInterceptor接口

2、将拦截器注册进SpringMVC框架中

3、配置拦截器的拦截规则

(1)在pom.xml中添加dependency

SpringMVC拦截器(慕课网)

(2)实现HandlerInterceptor接口

SpringMVC拦截器(慕课网)

(3)将拦截器注册进Springmvc框架中(需要添加mvc)

SpringMVC拦截器(慕课网)

运行的执行顺序

SpringMVC拦截器(慕课网)

所有的请求全部经过了拦截器

(4)配置拦截器的拦截规则 拦截所有viewAll的请求

SpringMVC拦截器(慕课网)

拦截器方法介绍:

SpringMVC拦截器(慕课网)

SpringMVC拦截器(慕课网)

SpringMVC拦截器(慕课网)

SpringMVC拦截器(慕课网)

从拦截器返回数据:

SpringMVC拦截器(慕课网)

afterCompletion方法一般用于关闭资源

多个拦截器的应用:

配置多个拦截器:

再创建一个拦截器TestInterceptor01

SpringMVC拦截器(慕课网)

拦截器的执行顺序:

SpringMVC拦截器(慕课网)

执行顺序:

SpringMVC拦截器(慕课网)

拦截器的其他实现方式:

(1)实现webRequestInterceptor接口

(2)向SpringMVC框架中注册的写法不变

(3)弊端:preHandle方法没有返回值 不能终止请求

拦截器的使用场景:处理所有请求的共性问题

(1)乱码

SpringMVC拦截器(慕课网)

(2)权限验证

SpringMVC拦截器(慕课网)

拦截器和过滤器的对比以及总结:

区别:

(1)过滤器Filter依赖于Servlet容器,基于回调函数,过滤范围大

(2)拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求

总结:

拦截器可以处理Web应用中请求的一些通用性问题

共性问题在拦截器中处理,可以减少重复代码,便于维护