Spring复习笔记: Spring MVC 拦截器

拦截器

  • Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter)
  • 可以进行权限验证,记录请求信息的日志,判断用户是否登录

拦截器的定义(俩种)

  1. 通过实现HandleInterceptor接口,或继承HandleInterceptor接口的实现类来定义
  2. 通过实现WebRequestInterceptor接口,或继承WebRequstInterceptor接口的实现类来定义
实现HandleInterceptor接口(重点)
  • preHandle方法:该方法会控制器方法前执行,其返回值表示是否继续后续操作,其返回值为true时,表示继续往下执行;当其返回值为false时,会中断后续的所有操作.
  • postHandle方法:该方法会在控制器调用之后,且解析视图之前执行.可以通过该方法对请求域中的模型和视图做进一步的修改
  • afterCompletion方法:该方法会在整个请求完成,即视图渲染结束之后执行.可以通过此方法实现一些资源清理,记录日志信息等工作.

拦截器的配置

在这里插入图片描述

拦截器的执行流程

单个拦截器的执行流程
  1. 程序先执行preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行
  2. 在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,然后会通过DispatcherServlet向客户端返回相应
  3. 在DispatcherServlet处理完请求后,才会执行afterCompletion()方法
多个拦截器的执行流程
  • 当有多个拦截器同时工作时,它们的preHandle()方法会按照配置文件中拦截器的配置顺序执行,而它们的postHandle()方法和afterCompletion()方法则会按照配置顺序的反序执行.
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值