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

相关推荐
wno7045 小时前
Spring Security权限控制
java·python·spring
星栈5 小时前
用 Rust 写 Agent 服务 -- adk-rust 上手记
后端·agent
杨运交6 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow6 小时前
CountDownLatch in Java
java
LucianaiB6 小时前
我用豆包工作 Seed-2.1-pro,复刻了 QQ 时代爆红的魔术图片
后端
码事漫谈6 小时前
智谱 ZCode 静默上传 Git 历史:48 小时信任危机复盘
后端
SL_staff6 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品
掘金码甲哥7 小时前
当对话模型遇上向量模型,vllm production stack 又该如何应对?
后端
传奇开心果编程7 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff7 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈