SpringMVC执行流程

ops/2024/9/25 21:25:37/

 SpringMVC的执行流程(介绍核心组件)


SpringMVC是一个基于Java的开源Web应用程序开发框架,它遵循了MVC(Model-View-Controller)架构模式。MVC模式是一种将应用程序分为三个主要部分的设计模式,分别是模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据,视图负责展示数据,控制器负责协调模型和视图之间的交互。

935a6622eb2f4af1b61135b4c8a84617.png

SpringMVC核心组件的功能:

  1. DispatcherServlet:前端控制器 (调度中心),用于接收HTTP请求并将其分派给相应的处理器。DispatcherServlet是整个请求处理的流程控制中心,它降低了组件之间的耦合性。
  2. HandlerMapping:用于确定HTTP请求需要被哪个处理器处理。HandlerMapping根据请求URL查找相应的处理器(就是Controller层对应路径的方法)。aba50efc9c5640eb8d57997188cb0e9b.png这个save方法就是一个处理器。
  3. HandlerAdapter:1.用于调用处理器(Handler比如说这里的save方法)并处理HTTP请求。2.处理Handler中的参数和返回值。HandlerAdapter会调用处理器,并返回一个ModelAndView对象,其中model是一个Map结构,存放了返回的所有数据,view是逻辑视图名,即ViewName。
  4. ViewResolver:用于确定响应结果的视图。ViewResolver根据ModelAndView对象中的逻辑视图名解析出具体的视图文件,再生成对应的View视图对象。

如果是基于接口开发,很多返回值是json格式,并没有ModelAndView对象。

1dd3525ff080442eb31bf1c2782962f2.png

处理器中某个方法添加了@ResponseBody注解,这个注解会把当前方法的返回值转化为json格式并响应给前端。

9d2278081f244b349b958db315b63369.png

95a9f0c6b87c45488a83ce0eb782fdbd.png


http://www.ppmy.cn/ops/27524.html

相关文章

无人机+低空经济:释放中国低空经济动力的必要条件

无人机与低空经济的结合,对于释放中国低空经济动力具有重要的意义。无人机作为低空经济的重要组成部分,可以为低空经济提供新的动力和发展方向。以下是无人机与低空经济结合释放中国低空经济动力的必要条件: 1. 无人机技术的不断发展和创新&a…

Qt中常用对话框

Qt中的对话框(QDialog)是用户交互的重要组件,用于向用户提供特定的信息、请求输入、或进行决策。Qt提供了多种标准对话框以及用于自定义对话框的类。以下将详细介绍几种常用对话框的基本使用、使用技巧以及注意事项,并附带C示例代…

6.C++模板(超全)

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.2 函数模板的原理 2.3 函数模板的实例化 2.4 模板参数的匹配原则 3. 类模板 1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left;…

分享一个由systemd管理tomcat的tomcat.service文件的编写

如果你有一个tomcat的二进制包你就可以使用以下.service文件直接套用,前提是你必须先停止现有的tomcat cat tomcat.service[Unit] Descriptiontomcat server daemon # 描述 Aftersyslog.target network.target remote-fs.target nss-lookup.target # 在那些服务之…

MySQL/MariaDB 如何查看当前的用户

MySQL 的所有数据库用户信息是存储在 user 数据表中的。 可以在登录成功数据后运行 SQL: MariaDB [(none)]> select user,host from user;就可以查看到数据中的所有用户信息。 MariaDB [(none)]> select user,host from user; ERROR 1046 (3D000): No databa…

【redis】Redis数据类型(二)Hash类型

目录 Hash类型介绍特性hash 的内部编码方式/底层结构hashtableziplistlistpack 适用场景举例 常用命令hset示例 hsetnx示例: hmset示例 hget示例 hmget示例 hgetall示例 hdel示例 hlen示例 hexists示例 hincrby示例 hincrbyfloat示例 hkeys示例 hvals示例 Hash类型介…

Java毕业设计 基于SpringBoot vue养老院管理系统 微信小程序

Java毕业设计 基于SpringBoot vue养老院管理系统 微信小程序 SpringBoot 养老院管理系统 功能介绍 小程序 护工登录注册 忘记密码 护工信息维护 首页 图片轮播 床位调动申请 床位展示 床位详情 床位分配 房间展示 公告信息 公告详情 健康信息 请假申请 离职申请 后台管理 登…

虚拟机软件:VMware VirtualBox Hyper-v

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 虚拟机软件是程序员必备的开发…