概述
SpringMVC中的拦截器和servlet中的过滤器功能差不多,都是对用户的请求进行审查处理的
MVC拦截器使用步骤
- 创建拦截器类实现HandlerInterceptor接口
- 配置拦截器
- 测试拦截器的拦截效果
入门案例:
- 创建拦截器类实现HandlerInterceptor接口
实现HandlerInterceptor接口中的三个方法,需要我们手动写,因为这三个抽象方法是被default修饰的
- 配置拦截器:
- 测试拦截器的拦截效果:
拦截器中常用方法的使用
- 在preHandle方法中,我们一般判断用户访问的条件是否符合我们的要求,这里简单设置一个参数
假设,我们必须这个参数值为yes才可以放行对目标方法的访问
这里有一个小细节,
"yes".equals(param)
而不是param.equals("yes")
,如果是param.equals("yes")
,则用户不传参数,则程序会报错
- 在postHandle方法中,我们主要进行的是对模型视图对象进行修改
可以看到,这个方法中有一个对应的形参:
这里可以获得目标方法封装的模型视图对象
例子:
多个拦截器拦截同一个访问地址
这里主要看一下执行顺序
当在配置文件<mvc:interceptors>
中配置多个拦截器拦截同一个访问地址这个方法的执行顺序是按照
<mvc:interceptors>
中拦截器配置的顺序来访问的
这俩方法是按照
<mvc:interceptors>
中拦截器配置的相反顺序来访问的,即先进后出,后进先出