前端请求到 SpringMVC 的处理流程

1. 发起请求

客户端通过 HTTP 协议向服务器发起请求。

2. 前端控制器(DispatcherServlet)

这个请求会先到前端控制器 DispatcherServlet ,它是整个流程的入口点 ,负责接收请求并将其分发给相应的处理器

3. 处理器映射(HandlerMapping)

DispatcherServlet 调用 HandlerMapping 来确定哪个 Controller 应该处理这个请求。通常会根据请求的 URL 来确定

4. 处理器适配器(HandlerAdapter)

一旦找到目标 Controller,DispatcherServlet 会使用 HandlerAdapter 来调用 Controller 的处理方法

5. 执行处理器(Controller)

Controller 处理请求,处理完后返回一个 ModelAndView 对象,其中包含模型数据和逻辑视图名

6. 视图解析器(ViewResolver)

DispatcherServlet 接收到 ModelAndView 后,会使用 ViewResolver 来解析视图名称,找到具体的视图页面

7. 渲染视图

视图使用模型数据渲染页面,生成最终的页面内容

8. 响应结果

DispatcherServlet 将视图结果返回给客户端


在前后端分离的情况下,步骤 ⑥、⑦、⑧ 会略有不同,后端通常只需要处理数据,并将 JSON 格式的数据返回给前端就可以了,而不是返回完整的视图页面。


👨‍🏫 参考地址

相关推荐
Demon1_Coder几秒前
智能体的自定义工具
java·linux·前端
老王以为3 分钟前
单仓库下的四十模块 —— React Monorepo 工程架构拆解
前端·react native·react.js
lichenyang4537 分钟前
鸿蒙路由研读:为什么公司项目用 HMRouterMgr 而不用原生 Navigation
前端
gf13211119 分钟前
【精确查找python脚本是否在运行】
linux·前端·python
mCell17 分钟前
别急着骂运营商,你家路由器里可能藏着一台 PCDN 盒子
前端·http·cdn
PILIPALAPENG18 分钟前
Skills篇-findskills:告别手动迁移Skill!跨AI工具通用能力,才是真高效
前端·人工智能·后端
假如让我当三天老蒯20 分钟前
Composables和Utils的区别(自学用)
前端
kungggyoyoyo23 分钟前
从0开发一套geo优化软件:系统定位与整体架构
前端
用户7138742290024 分钟前
PKCE 的 S256 算法深度剖析:从协议设计到密码学原理
前端
闪闪发光得欧24 分钟前
StreamTokenizer的源码分析和使用方法详细分析
前端