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

相关推荐
Peregrine95 小时前
C++ - > 类和对象
java·c++·算法
一条泥憨鱼5 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
2501_933923255 小时前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
Wang's Blog5 小时前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 消息转换器
java·中间件·java-rabbitmq
leikooo5 小时前
ARTS 1011: 双堆动态对顶求中位数、IPC 注入与空密码串联接管账户与程序从不做决策
后端
合尘猫6 小时前
AI 项目上线就停:一次事件循环阻塞的完整排查过程
人工智能·后端·python
Re_zero6 小时前
一次 SSE 断流排查:PrintWriter 吞掉了我的 IOException
java·后端
1m555555556 小时前
RAG 工程实战(四):明明召回了正确知识,为什么最终 Top-K 还是漏了?
后端
我是人✓6 小时前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
newerp6 小时前
GC Pacer 调优算法:GOGC、GOMEMLIMIT 与容器 OOM 防御
后端·程序员·go