(拦截器)学习SpringMVC的第三天

一 .拦截器简介

拦截器的几个处理阶段

二 . 拦截器快速入门

2.1 实现拦截器接口

java 复制代码
public class MyInterceptor1 implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("MyInterceptor1...preHandle");
        return true; //是否放行  true放行
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("MyInterceptor1...postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("MyInterceptor1...afterCompletion");
    }
}

2.2 在spring-mvc.xml里配置

XML 复制代码
<!--    配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
         <!--对哪些请求路径进行拦截            -->
           <mvc:mapping path="/**"/>
            <bean class="com.itheima.interceptors.MyInterceptor1"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

三. 拦截器的执行顺序

第一种情况

第二种情况

来解释一下 : 当任意一个preHandle不执行时 , Handle处理器(即@contrller)就不执行了 , 所以postHandle就不执行了 , (可以认为Handler与PostHandlder绑定)

后面只执行前面已经执行过的preHandle对应的afterCompletion .

相关推荐
2401_834517071 小时前
AD学习笔记-27 泪滴的添加和移除
笔记·学习
灰灰勇闯IT2 小时前
RN路由与状态管理:打造多页面应用
开发语言·学习·rn路由状态
思成不止于此3 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql
Nan_Shu_6144 小时前
学习:Vuex (1)
学习
GoogleDocs4 小时前
基于[api-football]数据学习示例
java·学习
李小星同志5 小时前
DPO,PPO,GRPO的学习
人工智能·深度学习·学习
weixin_409383126 小时前
简单四方向a*寻路学习记录7 实现了多个障碍绕行但是绕路
学习
林夕sama6 小时前
MySQL的学习笔记
笔记·学习·mysql
徐某人..6 小时前
网络编程学习--第一天
arm开发·单片机·学习·arm
TL滕6 小时前
从0开始学算法——第十一天(字符串基础算法)
笔记·学习·算法