Java面试必问题38:SpringMVC执行流程(工作原理)(一般必问) SpringMVC的常用注解

news2025/2/7 12:58:15

MVC 是 Model — View — Controler 的简称,它是一种架构模式,它分离了表现与交互。它被分为三个核心部件:模型、视图、控制器。

    • Model(模型):是程序的主体部分,主要包含业务数据和业务逻辑。在模型层,还会涉及到用户发布的服务,在服务中会根据不同的业务需求,更新业务模型中的数据。
    • View(视图):是程序呈现给用户的部分,是用户和程序交互的接口,用户会根据具体的业务需求,在 View 视图层输入自己特定的业务数据,并通过界面的事件交互,将对应的输入参数提交给后台控制器进行处理。
    • Controller(控制器):Controller 是用来处理用户输入数据,以及更新业务模型的部分。控制器中接收了用户与界面交互时传递过来的数据,并根据数据业务逻辑来执行服务的调用和更新业务模型的数据和状态。
    • 1.客户端(浏览器)发送请求,直接请求到DispatcherServlet。
    • 2.DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。
    • 3.解析到对应的Handler(也就是我们平常说的Controller控制器)。
    • 4.HandlerAdapter会根据Handler来调用真正的处理器来处理请求和执行相对应的业务逻 辑。
    • 5.处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View 是逻辑上的View。
    • 6.ViewResolver会根据逻辑View去查找实际的View。
    • 7.DispatcherServlet把返回的Model传给View(视图渲染)。
    • 8.把View返回给请求者(浏览器)。
    • 最简回答:Spring MVC的工作原理是基于Servlet容器的前端控制器模式,首先DispatcherServlet接收并分发请求,然后根据HandlerMapping找到对应的Controller进行业务处理,最后通过ViewResolver渲染视图并返回响应给客户端

  • SpringMVC的常用注解

    • Controller:用于标识一个类为控制器。
    • RequestMapping:用于映射请求URL与处理方法。
    • GetMapping:用于映射GET请求的URL到处理方法。
    • PostMapping:用于映射POST请求的URL到处理方法。
    • PutMapping:用于映射PUT请求的URL到处理方法。
    • DeleteMapping:用于映射DELETE请求的URL到处理方法。
    • PathVariable:用于获取URL路径中的参数。
    • RequestParam:用于获取请求参数。

ResponseBody:用于直接返回数据给客户端

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

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

相关文章

Python 版分布式消息队列 Kafka 实现图片数据传输

1、Kafka 介绍 在使用 Kafka 之前,通常需要先安装和配置 ZooKeeper。ZooKeeper 是 Kafka 的依赖项之一,它用于协调和管理 Kafka 集群的状态。 ZooKeeper 是一个开源的分布式协调服务,它提供了可靠的数据存储和协调机制,用于协调…

libcurl 简单使用

LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等…

【计算机毕业设计】物流管理系统设计与实现——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

Python(11):网络编程

文章目录 一、一些基本概念二、软件的开发架构(c/s架构和b/s架构)三、OSI模型四、socket套接字编程1.socket编程过程2.python中的socket编程 一、一些基本概念 来了解一些网络的基本概念 名词解释IP(互联网协议地址)IP用来标识网…

归并排序详解(附代码)

归并排序 数据科学家每天都在处理算法。 然而,数据科学学科作为一个整体已经发展成为一个不涉及复杂算法实现的角色。 尽管如此,从业者仍然可以从建立对算法的理解和知识库中受益。 在本文中,对排序算法归并排序进行了介绍、解释、评估和实…

hds更换电源操作

HDS更换电源 1、 查看损坏的电源 2.选中电源 3、 如下图所示,选择Execute 4、选择ok,表示为防止静电引起的严重故障,请务必在手腕上佩戴腕带,并将腕带的另一侧的接地夹连接到机柜架上。 5、 选择YES,提示你的手…

Linux安装docker(含Centos系统和Ubuntu系统)

一、Centos系统 1. 卸载旧版本依赖 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 2. 设置仓库 安装所需的软件包。yum-utils 提供了 yum-config-manager &…

高负压采样器

你的未来是你自己创造的,你的路是你自己选择的。走向成功,需要你的勇气和决心,成功不是得到多少,而是付出了多少。当你还在努力时,不要忘记身边的风景——鹤壁永成在你身边 一、高负压瓦斯采取器的用途: 高…

OpenHarmony实战开发-如何使用AKI轻松实现跨语言调用。

介绍 针对JS与C/C跨语言访问场景,NAPI使用比较繁琐。而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C的无障碍跨语言互调,使用方便。本示例将介绍使用AKI编写C跨线程调用JS函数场景。通过调用C全局函数,创建子线程来调用JS函…

C++入门之类和对象

C入门之类和对象 文章目录 C入门之类和对象1. 类的6个默认对象2. 构造函数2.1 概念2.2 特性2.3 补丁 3. 析构函数3.1 概念3.2 特性3.3 总结 4. 拷贝构造函数4.1 概念4.2 特性4.3 总结 1. 类的6个默认对象 如果一个类中什么都没有,那么这个类就是一个空类。但是&…

UE5 C++ TimeLine 时间轴练习

一. Actor引入头文件 #include "Components/TimelineComponent.h" 声明CurveFloat 和 TimelineComponent UPROPERTY(EditAnywhere,BlueprintReadWrite,Category "MyCurve")UCurveFloat* MyCurveFloat;UPROPERTY(EditAnywhere, BlueprintReadWrite, Cate…

科技助力上亿用户隐私安全保护,合合信息两款产品再获CCIA PIA星级标识

随着互联网技术的飞速发展,个人信息的收集、存储、使用和传输变得日益频繁,其泄露和滥用的风险也随之增加,个人信息保护已成为社会共同关注的热点议题。近期,“中国网络安全产业联盟(CCIA)数据安全工作委员…

密码学 | 椭圆曲线数字签名方法 ECDSA(上)

目录 1 ECDSA 是什么? 2 理解基础知识 3 为什么使用 ECDSA? 4 基础数学和二进制 5 哈希 6 ECDSA 方程 7 点加法 8 点乘法 9 陷阱门函数! ⚠️ 原文:Understanding How ECDSA Protects Your Data. ⚠️ 写在前面…

OpenHarmony轻量系统开发【9】WiFi之STA模式连接热点

9.1AT指令操作WiFi 我们可以使用AT指令进行Hi3861 WiFi操作,连接热点、ping服务器等。 但是很多时候,我们需要实现开机后自动连接到某个热点,光靠AT指令不行。 Hi3861 为我们提供了WiFi操作的相关API,方便我们编写代码&#xff0…

GitLab 安全漏洞 CVE-2022-1162 如何解决?

本文来自极狐GitLab 官方公众号【极狐GitLab】,原文链接:https://mp.weixin.qq.com/s/JVpA14HHWgt58s3vM5TRcA。 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https…

文字转语音工具:GPT-SoVITS

诸神缄默不语-个人CSDN博文目录 OpenAI官方的TTS模型我在这篇博文中给出了使用教程:ChatGPT 3.5 API的调用不全指南(持续更新ing…) - 知乎 但是OpenAI的TTS对中文支持不好,有一种老外说中文的美,所以本文介绍另一个…

2024软考中项考哪个版本?应该该如何备考?

2024年1月,备受瞩目的软考中级系统集成项目管理工程师官方教程终于迎来了久违的大改版。为确保广大考生能够有充足的准备时间,软考中项的考试时间被顺延至同年11月,届时,这也将成为软考中项首次依据第3版考纲进行的考试。 新教材核…

数图智慧零售解决方案,赋能零售行业空间资源价值最大化

数图智慧零售解决方案 赋能零售行业空间资源价值最大 在激烈的市场竞争中,如何更好地提升空间资源价值,提高销售额,成为行业关注的焦点。近日,NIQ发布的《2024年中国饮料行业趋势与展望》称,“在传统零售业态店内&…

CSS特效---跳动的文字

1、演示 2、一切尽在代码中 <!--* Author: your name* Date: 2023-10-03 14:42:44* LastEditTime: 2023-10-03 14:56:26* LastEditors: DESKTOP-536UVPC* Description: In User Settings Edit* FilePath: \css-special-effects\跳动的文字.html --> <!DOCTYPE html>…

ARM看门狗定时器

作用 在S3C2440A中&#xff0c;看门狗定时器的作用是当由于噪声和系统错误引起的故障干扰时恢复控制器的工作。 也就是说&#xff0c;系统内部的看门狗定时器需要在指定时间内向一个特殊的寄存器内写入一个数值&#xff0c;俗称喂狗。 如果喂狗的时间过了&#xff0c;那么看门…