拦截器

SpingMVC提供了拦截器级制;允许运行目标方法之前进行一些拦截工作,或者目标方法运行之后进行其他处理;
Filter是javaWeb定义的,HandlerInterceptor是SpingMVC提供的
在这里插入图片描述

  1. preHandle:在目标方法运行之前调用,返回boolean,return true (chain.doFilter())放行,return false 不放行
  2. postHandle:在目标方法运行之后调用,
  3. afterCompletion():在请求整个完成之后,就是来到目标页面之后,chain.doFilter()放行之后,资源响应之后
    1) 拦截器是一个接口,实现了HandlerInterceptor接口
    2)SpringMVC中配置拦截器
    4)拦截器的正常运行流程
    拦截器的perHandle–>目标方法–>拦截器的postHandle–>页面–>afterCompletion
    在这里插入图片描述
    在这里插入图片描述
    5) 其他流程:
    1》只要perHandle不放行就没有以后的流程
    2》只要放行了,afterCompletion一定执行
    在这里插入图片描述
    6)多个拦截器
    在Springmvc匹配中,哪个在前面哪个先运行
    正常流程
    在这里插入图片描述
    异常流程
    1.不放行,一条线上哪一环上不放行之后的都没有了,但是如果第二个不放行,第一个放行了,之前的afterCompletion都会执行
    在这里插入图片描述
    拦截器的perHandle按照顺序执行,拦截器的postHandle是逆序执行,afterCompletion也是逆序执行,
    在这里插入图片描述
    什么时候用Filter什么时候用拦截器?
    如果某些功能需要其他组件配合完成,我们就使用拦截器;
    拦截器脱离了SpringMVC就无法使用,Filter只要是java中就可以;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值