Spring MVC处理用户请求的完整流程

news2024/12/29 10:47:33

Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 技术、Velocity、Tiles、iText 和 POI。

Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP 技术,但教程中使用的视图是 JSP,本节主要介绍 Spring MVC 框架处理用户请求的完整流程和处理中包含的 4 个接口。

Spring MVC 工作流程

Spring MVC 框架主要由 DispatcherServlet、处理器映射、控制器、视图解析器、视图组成,其工作原理如图 1 所示。


图 1 Spring MVC 工作原理图

从图 1 可总结出 Spring MVC 的工作流程如下:

  1. 客户端请求提交到 DispatcherServlet。
  2. 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。
  3. DispatcherServlet 将请求提交到 Controller。
  4. Controller 调用业务逻辑处理后返回 ModelAndView。
  5. DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。
  6. 视图负责将结果显示到客户端。

Spring MVC接口

在图 1 中包含 4 个 Spring MVC 接口,即 DispatcherServlet、HandlerMapping、Controller 和 ViewResolver。

Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将请求分发给 Controller 之前需要借助 Spring MVC 提供的 HandlerMapping 定位到具体的 Controller。

HandlerMapping 接口负责完成客户请求到 Controller 映射。

Controller 接口将处理用户请求,这和 Java Servlet 扮演的角色是一致的。一旦 Controller 处理完用户请求,将返回 ModelAndView 对象给 DispatcherServlet 前端控制器,ModelAndView 中包含了模型(Model)和视图(View)。

从宏观角度考虑,DispatcherServlet 是整个 Web 应用的控制器;从微观考虑,Controller 是单个 Http 请求处理过程中的控制器,而 ModelAndView 是 Http 请求过程中返回的模型(Model)和视图(View)。

ViewResolver 接口(视图解析器)在 Web 应用中负责查找 View 对象,从而将相应结果渲染给客户。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猿如意 | 带你手把手安装 Visual Studio Code

目录 一、什么是猿如意 二、借助猿如意安装Visual Studio Code 1、安装猿如意 2、安装Visual Studio Code 三、总结 一、什么是猿如意 猿如意是CSDN推出来的一款面向开发者的工具,他能够帮助开发者,找到自己心仪的开发工具提高自己的开发效率。 目标…

华为云两台机器内网互联

文章目录1. 前言2. ping公网ip3. 不同账号需要在同一大区4. 创建虚拟私有云5. 更换服务器所属的VPC网段6. 创建对等连接7. 填写对端项目ID和对端VPC ID8. 配置对等连接9. 添加对等连接路由10. 测试是否联通11. 后记1. 前言 最近在华为云买了两台低配Linux机器,35一…

聚焦出海 长城汽车50多国家和地区经销商集团齐聚泰国车博会

11月30日,长城汽车携新能源豪华阵容登陆第39届泰国国际汽车博览会(简称“泰国车博会”)。以“GWM Light the Future”(长城汽车点亮未来)为参展主题,长城汽车旗下中大型商务豪华SUV坦克500 HEV量产版、欧拉…

[附源码]Python计算机毕业设计SSM留守儿童管理平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

英文Paper写作如何正确掌握质量情况?

在国外留学的学子们要想完成高质量高水平的作业(assignment与Paper),那么首先就要在心里想想这些基本必要的问题,等有了这些问题的轮廓之后,相信留学的朋友都能够写出满意自足的Paper或assignment。 1.Why …

TypeError: can only concatenate list (not “int“) to list

参考 TypeError: can only concatenate list (not "int") to list - 云社区 - 腾讯云 观察是否将列表和非列表的类型相连。 入队enqueue_op 5会报错,改成乘5就不会了。

Springboot整合策略模式概念->使用场景->优缺点->企业级实战

一、前言 策略模式可能是在工作中使用最多的,也是在面试中最常提到的,代码重构和优化的必备! 小编之前也是一直说,其实没有真正的实战;最近有了机会实战了一下,来分享一下使用心得和在企业级的使用&#x…

Mac装机清理工具CleanMyMac2022最新版功能介绍

从最初开始下载CleanMyMac开始,CMM一直在提供智能的清理,从颇受小白用户喜爱的自动清理特性开始,仅需一键即可快速而安全地清理系统各角落垃圾,释放宝贵硬盘空间,CMM或许可以说是是 Mac上最知名的系统清理工具了。 Cl…

java EE初阶 —— 线程的安全问题

文章目录1.线程安全1.1 代码体现线程的不安全1.2 线程安全问题分析1.3 产生线程安全问题的原因1.4 线程安全问题的解决办法1.5 synchronized 的使用方法1.线程安全 多线程的抢占式执行,带来的随机性是线程安全问题的罪魁祸首,万恶之源。 如果没有多线程…

国内表格软件-FineReport Count函数

1. 概述 1.1 函数作用 计算数组或数据区域中所含项的个数,例如统计「地区数」和「销售员个数」,如下图所示: 也可与其他函数嵌套使用,例如进行「条件计数」,计算除孙林以外的销售员个数,如下图所示&#x…

Lactoferrin-PEG-alginate 乳铁蛋白-聚乙二醇-海藻酸钠

产品名称:乳铁蛋白-聚乙二醇-海藻酸钠 英文名称:Lactoferrin-PEG-alginate 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体,取决于分子量 PEG分子量可选:350、550、750、1k、…

VBA驱动SAP GUI自动化:查找页面元素FindAllByName

我们在VBA中嵌入SAP原生的【脚本录制与回放】功能生成的VBS脚本,可以实现很多自动化操作。但只有我们对SAP做了一系列动作,才会得到这些动作的脚本。然而,一旦我们需要用代码提前做一些判断,然后再决定后续的动作时,这…

MBR主引导记录

主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区&…

基于ARM的环境参数检测系统设计(Labview+STM32+ZigBee)

目 录 1 绪论 1 1.1 研究背景和意义 1 1.2 研究现状 2 1.3 研究内容 3 2 系统概述和相关原理 4 2.1 系统的功能分析与设计 4 2.2 LabVIEW介绍 5 2.3 ZigBee技术 5 2.3.1 ZigBee技术概述 5 2.3.2 ZigBee网络协议 6 2.3.3 ZigBee网络拓扑结构 7 2.4 GSM技术 8 2.5 本章小结 8 3 …

【研发工具】Centos下搭建轻量级内网FTP服务器

1 前言 vsftpd是一款非常小巧、高性能、稳定性好、安全易用的Linuxt环境下的的FTP服务器软件。 vsftpd 名称是取自 very secure FTP daemon 的缩写,可以在类UNIX类操作系统上运行。 2 部署 通常情况下可以在线安装, # centos / Redhat 操作系统下 $ yum -y ins…

【历史上的今天】12 月 1 日:新浪网成立;钉钉上线;古登堡计划发布

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 12 月 1 日,在 1948 年的今天,中国人民银行成立,并发行了第一套人民币;第一套人民币共印制发行了 12 种面额、6…

推荐系统:架构设计

架构设计概述 架构设计是一个很大的话题,这里只讨论和推荐系统相关的部分。更具体地说,我们主要关注的是算法以及其他相关逻辑在时间和空间上的关系——这样一种逻辑上的架构关系。 在前面的章节中我们讲到了很多种算法,每种算法都是用来解决…

[附源码]JAVA毕业设计个人交友网站(系统+LW)

[附源码]JAVA毕业设计个人交友网站(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

【JavaWeb】Servlet系列 --- 关于一个web站点的欢迎页面

web站点的欢迎页面1. 什么是一个web站点的欢迎页面?2. 怎么访问欢迎页面?静态资源进行变换动态资源3. (易错)关于WEB-INF目录1. 什么是一个web站点的欢迎页面? 对于一个webapp来说,我们是可以设置它的欢迎…

Java的I/O框架

目录 一、流的概念 二、流的分类 1.按方向 2.按单位: 3.按功能: 三、字节流 1、文件字节流 (1) FileInputStream: (2)FileOutputStream: (3)完成复…