SpringMVC执行流程

一、整体执行流程(文字版)

  1. 用户发起请求,请求到达前端控制器 DispatcherServlet

  2. DispatcherServlet 调用 HandlerMapping,根据 URL 找到对应的处理器 Handler(Controller)

  3. HandlerMapping 返回 处理器执行链(HandlerExecutionChain),包含 Handler 和拦截器

  4. DispatcherServlet 将 Handler 交给 HandlerAdapter,由适配器执行 Controller 方法

  5. 执行 拦截器前置方法(preHandle)

  6. 调用 Controller 业务方法,处理业务逻辑,返回 ModelAndView

  7. 执行 拦截器后置方法(postHandle)

  8. DispatcherServlet 将 ModelAndView 交给 ViewResolver 视图解析器,解析出具体视图

  9. 渲染视图,执行 拦截器完成方法(afterCompletion),最终响应给浏览器

    二、简化流程图(记忆版)

请求 → DispatcherServlet → HandlerMapping → Handler → HandlerAdapter → Controller → ModelAndView → ViewResolver → 视图渲染 → 响应

三、核心组件作用(面试必问)

  1. DispatcherServlet:前端控制器,整个流程的入口,总调度

  2. HandlerMapping:处理器映射器,根据 URL 找 Controller

  3. HandlerAdapter:处理器适配器,适配执行不同类型 Controller

  4. Controller:业务处理器,处理请求

  5. ModelAndView:封装数据和视图名

  6. ViewResolver:视图解析器,解析视图名称

  7. Interceptor:拦截器,在 Controller 前后做增强

    四、面试一句话精简版

请求先到 DispatcherServlet,由 HandlerMapping 找到 Controller,HandlerAdapter 执行 Controller,返回 ModelAndView,再由 ViewResolver 解析视图并渲染,最后响应客户端,中间经过拦截器。

相关推荐
JustHappy6 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
yaoxin5211236 小时前
434. Java 日期时间 API - Period 基于日期的时间段
java·开发语言·python
Hommy886 小时前
【剪映小助手】添加图片接口(Add Images)
后端·github·剪映小助手·视频剪辑自动化
GetcharZp6 小时前
别再盲目用 OpenCV 读图了,这才是 CV 预处理的终极杀手锏!
后端
kyriewen7 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
何极光7 小时前
IDEA集成Maven
java·maven·intellij-idea
程序员二叉7 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉7 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
老马识途2.07 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
青山木7 小时前
Hot 100 --- 轮转数组
java·数据结构·算法