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 解析视图并渲染,最后响应客户端,中间经过拦截器。

相关推荐
还是鼠鼠13 分钟前
AI掘金头条新闻系统 (Toutiao News)-缓存相关推荐新闻
后端·python·mysql·fastapi·web
KaifuZeng15 分钟前
通信与接口协议面试十一、网口
嵌入式硬件·面试·通信与接口协议
我命由我1234517 分钟前
方差(实例实操、与标准差的区别)
java·数据结构·算法·数据分析·java-ee·intellij-idea·idea
Java内核笔记17 分钟前
Spring Security 源码解析(八)方法安全授权与自定义扩展:@EnableMethodSecurity、AOP、SpEL 全链路
java·后端
自由的裙子18 分钟前
How-To: Using the N* Stack, part 4
java·jvm·oracle
逝水无殇26 分钟前
C# 枚举(Enum)详解
开发语言·后端·c#
什巳1 小时前
JAVA练习275-乘积最大子数组
java·开发语言·数据结构·算法
lang201509281 小时前
Apache POI Word(docx) 实战教程:从入门到精通表格合并、图片插入与文档合并
java·开发语言·word
小牛不牛的程序员1 小时前
利用Claude Code构建自动化需求挖掘工具:从原理到实践
java·算法·自动化
树獭叔叔1 小时前
从 Search 到 Extract:AI Agent 网页工具架构拆解
后端·agent·ai编程