当前位置: 首页 > article >正文

SpringMVC——原理简介

狂神SSM笔记

DispatcherServlet——SpringMVC 的核心

SpringMVC 围绕DispatcherServlet设计。 DispatcherServlet的作用是将请求分发到不同的处理器(即不同的Servlet)。根据请求的url,分配到对应的Servlet接口。
在这里插入图片描述
当发起请求时被==前置的控制器(DispatcherServlet)==拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。

执行原理

简单说:前置控制器调用处理器映射器找到要调用的controller层接口,再调用处理器适配器调用接口,处理接口将结果返回前端控制器,再调用视图解析器渲染视图并最终返回给用户(前台)。
在这里插入图片描述
图为SpringMVC的一个较完整的流程图,实线表示SpringMVC框架提供的技术,不需要开发者实现,虚线表示需要开发者实现。

  1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。
    我们假设请求的url为 😗* http://localhost:8080/SpringMVC/hello**
    http://localhost:8080服务器域名
    SpringMVC部署在服务器上的web站点
    hello表示控制器
    通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。

  2. HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。

  3. HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。

  4. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

  5. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。

  6. Handler让具体的Controller执行。

  7. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。

  8. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。

  9. DispatcherServlet调用 视图解析器(ViewResolver) 来解析HandlerAdapter传递的逻辑视图名。

  10. 视图解析器将解析的逻辑视图名传给DispatcherServlet。

  11. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。

  12. 最终视图呈现给用户。


http://www.kler.cn/a/509750.html

相关文章:

  • 迅为瑞芯微RK3562开发板/核心板应用于人脸跟踪、身体跟踪、视频监控、自动语音识别(ASR)、图像分类驾驶员辅助系统(ADAS)...
  • HackMyVM-Klim靶机的测试报告
  • 深入内核讲明白Android Binder【二】
  • LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)
  • PHP智慧小区物业管理小程序
  • 从零创建一个 Django 项目
  • openharmony标准系统芯片移植指导
  • 360AI平台资源可视化建设
  • Java开发提效秘籍:巧用Apache Commons IO工具库
  • 【力扣Hot 100】子串
  • 力扣动态规划-3【算法学习day.97】
  • React 中hooks之useLayoutEffect 用法总结以及与useEffect的区别
  • 多种vue前端框架介绍
  • 【项目推荐】CakeMu-RV:一个开放的 RISC-V 处理器模拟器学习项目
  • 服务器卡顿是否等同于遭受CC攻击?
  • Windows 下 Postgres 安装 TimescaleDB 插件
  • (RAG系列) FastGPT通过API调用工作流问答
  • ESP8266-01S的TCP/IP相关的AT指令
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(29):TLS/SSL协议
  • 新星杯-ESP32智能硬件开发--ESP32开发环境
  • R语言的并发编程
  • 【华为OD-E卷 - 字符串加密 100分(python、java、c++、js、c)】
  • python初学者需要注意的几个基础点
  • 弱口令漏洞+文件上传漏洞
  • 【深度学习】1.深度学习解决问题与应用领域
  • MuJoCo仿真中的两轮平衡小车项目【问题集合】