@RequestMapping详解:请求映射规则
目录
请求-相应模式:
设置请求映射规则@RequestMapping
POST 请求:
GET 请求
请求-相应模式:
前端作为客户端向后端发送请求(请求可以分为请求头和请求体两部分,请求头包含了一些元数据信息,如请求方式、请求路径、请求参数等;而请求体则包含了请求的具体内容,比如表单数据、JSON数据等)。后端接收到请求后可以使用相关的注解去提取数据,并根据业务逻辑进行处理。
处理完成后,后端会将处理结果封装在响应体(ResponseBody)中,并将其返回给前端作为响应(Response)。
这种模式下,前端和后端之间通过请求和响应进行数据交互,实现了前后端的解耦。前端负责展示数据和发送请求,后端负责处理请求并生成响应数据,通过网络进行通信。这种模式可以灵活地适应各种场景和需求,使前后端开发更加高效和可维护。
而 @RequestMapping注解与请求-响应模式的关系在于它定义了请求的URL路径和请求方法,从而将前端的请求与后端的处理方法建立起映射关系。通过使用@RequestMapping注解,后端可以接收前端的请求并处理,可以将处理结果封装在Java对象中,然后通过@ResponseBody注解将其转换为前端需要的格式,并返回给前端作为响应。实现了请求-响应模式的具体逻辑。
设置请求映射规则@RequestMapping
该注解可以加到方法上或者是类上。
在这个注解内填上请求路径,请求方式。当符合了要求,请求就会被加了这个注解的方法或类调用。
-
指定请求路径和指定请求方式:
path或者value属性都可以用来指定请求路径。
method属性可以用来指定可处理的请求方式。
例如:
请求的资源路径为/test/test1的请求能够被test1的post方法处理:
@RestController
@RequestMapping("/test")
public class TestController {@RequestMapping(value = "/test1",method = RequestMethod.POST)public String test1(){return "test1";}
}
不过一般写在接口类的上面,然后下面的每一个方法添加其他注解即可不用写请求方式和更加规范。如下:
-
@PostMapping 等价于 @RequestMapping(method = RequestMethod.POST)
-
@GetMapping 等价于 @RequestMapping(method = RequestMethod.GET)
-
@PutMapping 等价于 @RequestMapping(method = RequestMethod.PUT)
-
@DeleteMapping 等价于 @RequestMapping(method = RequestMethod.DELETE)
一般写都是这样:
@RestController @RequestMapping("/test") public class TestController {@PostMapping("/test1")public String test1(){return "test1";} } -
常见的 HTTP 请求方式有四种:
-
POST(添加) -
GET(查询) -
DELETE(删除) -
PUT(修改)
-
POST 请求:
POST 请求用于向指定资源提交数据,通常会导致服务器端的状态发生变化。
主要用于向服务器上传一些数据和文件。 常见就是添加用户信息,登录功能。
使用 POST 请求方式提交的数据会被包含在请求体中,而不像 GET 请求方式那样包含在 URL 中。
POST 请求可以提交比 GET 更大的数据量,并且相对更安全。
@PostMapping("/login")public ResponseResult login(@RequestBody User user) {System.out.println(user.getUsername());return loginService.login(user);}
@PostMapping 注解用于在后端接收前端发送的数据。
通过使用 @PostMapping 注解,可以将前端发送的数据绑定到相应的方法参数中,登录用户数据会被绑定到 User 对象的实例 user 中,从而可以在方法中进行相关的业务逻辑处理
GET 请求
GET 请求用于向指定资源发出请求,请求中包含了资源的 URL 和请求参数。服务器端通过解析请求参数来返回相应的资源,不会修改服务器端的状态。
使用 GET 请求方式提交的数据会被包含在 URL 中,因此易于被缓存和浏览器保存,但也因此不适合用于提交敏感数据。
通过 @GetMapping 注解标记的方法通常被用于响应传入的 URL 请求,并返回相应的资源或数据给前端。
@GetMapping("/user")
public User getUser(@RequestParam("id") int id) {// 根据 id 查询并返回用户信息return userService.getUser(id);
}
前端可以发送一个 GET 请求到 /user?id=123 来获取 id 为 123 的用户信息。注解中的 @RequestParam("id") 表示获取 URL 查询参数中名为 "id" 的值,并将其赋值给方法参数 id。
——————————————————————————————————————————
其他Controller类常用的注解可以这个文章的汇总:Web开发Controller类详解-CSDN博客
相关文章:
@RequestMapping详解:请求映射规则
目录 请求-相应模式: 设置请求映射规则RequestMapping POST 请求: GET 请求 请求-相应模式: 前端作为客户端向后端发送请求(请求可以分为请求头和请求体两部分,请求头包含了一些元数据信息,如请求方式、…...
C#中密封类和密封方法
目录 一、定义与特性 1.何时使用密封类 2.定义 3.特性 二、示例 如果所有的类都可以被继承,很容易导致类的层次结构变得十分复杂。使对类的理解和使用变得十分困难。为了避免滥用继承,C#中提出了密封类的概念。 一、定义与特性 密封类可以用来限制…...
Pytorch中的Net.train()和 Net.eval()函数讲解
目录 前言1. Net.train()2. Net.eval()3. 总结 前言 这两个方法通常用于训练和测试阶段 1. Net.train() 该代码用在训练模式中 主要作用: 模型启用了训练时特定的功能(Batch Normalization 和 Dropout)。 在这种模式下,模型会根…...
氪了几百亿,字节游戏停止了“跳动”
目录 一、氪了几百亿,字节游戏停止了“跳动” 二微软推出跨平台框架 ML.NET 3.0 版:强化深度学习、加强AI效率 一、氪了几百亿,字节游戏停止了“跳动” 朝夕光年,扑了 11月26日,脉脉社区的一个截图内容引起大众热议…...
进入docker容器
学习如何进入一个正在运行的容器的内部,要求学习者参照示例,进入一个名为container2的容器内部,并在容器内部创建一个1.txt文件。 相关知识 使容器在后台运行 因为本关要使用docker run -d命令,所以在本关的开始,将…...
C陷阱与缺陷——第5章库函数
1. 返回整数的getchar函数 #include <stdio.h>main() {char c;while((c getchar()) ! EOF){putchar(c);} } 上述函数是错误的,原因在于程序中的变量c被声明为char类型,而不是int类型,这意味着c无法容下所有可能的字符,特…...
【C++上层应用】6. 信号 / 中断
文章目录 【 1. signal 函数 】【 2. raise函数 】 信号是由操作系统传给进程的 中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕…...
树与二叉树堆:堆的意义
目录 堆的意义: 第一是堆的排序,第二是堆的top k 排行问题 堆的 top k 排行问题: 面对大量数据的top k 问题: 堆排序的实现:——以升序为例 方法一 交换首尾: 建立大堆: 根结点尾结点的…...
什么时候适合做ui自动化测试?什么时候做接口自动化测试
UI自动化测试和接口自动化测试都是软件测试中非常重要的部分,它们各自有适合的应用场景。 适合做UI自动化测试的场景包括: 用户界面(UI)变化频繁的应用程序。需要测试用户交互和流程的应用程序。需要验证页面布局、样式和交互的…...
[ABC261E] Many Operations(dp,位运算,打表)
[ABC261E] Many Operations - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) Problem Statement We have a variable X and N kinds of operations that change the value of X. Operation i is represented as a pair of integers (Ti,Ai), and is the following operati…...
一、爬虫-爬取豆瓣电影案例
1、环境配置 你需要一个pycharm和requests第三方库,在安装完成之后即可继续浏览。 2、操作流程 (1)打开豆瓣电影网站,点击排行榜,点击喜剧,检查 (2)可以看到鼠标每次下移࿰…...
4G5G防爆执法记录仪、防爆智能安全帽赋能智慧燃气,可视化巡检巡线,安全生产管控
随着燃气使用的普及,燃气安全问题日益突出。传统应急安全问题处理方式暴露出以下问题: 应急预案不完善:目前一些燃气企业的应急预案存在实用性不高、流程不清晰等问题,导致在紧急情况下难以迅速启动和有效执行。 部门协同不流畅…...
武汉数字孪生赋能工业制造,加速推进制造业数字化转型
随着数字孪生技术的不断推进,互联网、物联网、智能传感技术开始应用到数控机床的远程服务,状态监控,故障诊断,维护管理等方面。武汉数字孪生是在虚拟空间中创建物理对象的高保真虚拟模型,以模拟其在现实世界中的行为提…...
安卓密码框、EditText
目录 1. 基础使用 2. 密码的展示与隐藏 (1) 使用setTransformationMethod方法 (2) 使用setInputType方法 3. imeOptions属性 4. 单行设置 在安卓中使用密码框普遍采用EditText设置inputType"textPassword"的方式。 1. 基础使用 <EditTextandroid:id"…...
ROS命令行工具
1、roscore 在使用ROS之前,首先要启动roscore进程。当我们在终端中运行这个命令时,系统就会启动ROS Master、参数服务器和日志节点。在这之后,就可以运行任何其他的ROS程序/节点了。所以可以在一个终端窗口运行roscore指令&#…...
深入浅出 Golang 中的直接依赖和间接依赖管理
目录 引言 直接依赖 间接依赖 为什么需要间接依赖? 如何管理间接依赖? 小结 引言 Golang 中的依赖管理是使用 go mod 进行管理的。go mod 是 Golang 官方推出的依赖管理工具,可以帮助开发者管理项目的依赖关系,确保项目代码…...
深入Python元编程:了解声明与初始化定制元类
更多资料获取 📚 个人网站:ipengtao.com 简介 在Python中,元编程是指在运行时创建或定制类的编程。元类是Python中最强大的元编程工具之一,允许您控制类的创建过程。元类是类的类,它控制类的实例化,允许您…...
[传智杯初赛] 期末考试成绩
传智专修学院的 Java 程序设计课程的评价体系是这样的: 首先,所有学生会有一个卷面得分,这个得分一定是一个 [0,100][0,100] 之间的整数。 如果卷面得分在 9090 分及以上,那么他的 GPA(加权平均成绩) 就是…...
Linux 常用基本命令
文章目录 7.1 帮助命令7.1.1 man 获得帮助信息7.1.2 help 获得shell内置命令的帮助信息7.1.3 常用快捷键 7.2 文件目录类7.2.1 pwd 显示当前工作目录的绝对路径7.2.2 ls 列出目录的内容7.2.3 cd 切换目录7.2.4 mkdir 创建一个新的目录7.2.5 rmdir 删除一个空的目录7.2.6 touch …...
阿里云语雀频繁崩溃,有什么文档管理工具是比较稳定的?
10月23 日14:00左右,蚂蚁集团旗下的在线文档编辑与协同工具语雀发生服务器故障,在线文档和官网都无法打开。直到当天晚上22:24,语雀服务才全部恢复正常。从故障发生到完全恢复正常,语雀整个宕机时间将近 8 小时,如此长…...
保姆级教程:用iSYSTEM winIDEA和iC5000给S32K148烧录程序,附完整配置流程
从零掌握iSYSTEM工具链:S32K148开发板烧录与调试全流程实战第一次接触iSYSTEM的winIDEA和iC5000仿真器时,很多嵌入式开发者都会感到无从下手。不同于常见的开源工具链,这套专业级开发环境在汽车电子和工业控制领域有着广泛应用,尤…...
用数字逻辑门复刻柏林钟:从二进制编码到硬件实现
1. 项目概述:用数字电路复刻“柏林钟”作为一个在柏林长大的孩子,我从小就对库达姆大街上的那座“柏林钟”着迷。它不像传统时钟那样用指针或数字告诉你时间,而是通过几排不同颜色的发光方块,以一种近乎艺术的方式呈现时间。这种独…...
CANN-昇腾NPU-RAG推理-检索增强生成怎么部署
RAG(Retrieval-Augmented Generation)是 LLM 知识库的组合:先检索相关文档,再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件:Embedding 模型(做向量检索)和 LLM(做生成&am…...
别只拿PotPlayer看片了!挖掘它的采集录制功能,做Switch游戏存档大师
别把PotPlayer当普通播放器!解锁它的Switch游戏录制黑科技 你是否已经厌倦了在OBS、Bandicam等专业录制软件中反复调试参数的繁琐?是否想过那个每天用来看视频的PotPlayer,其实隐藏着令人惊喜的游戏录制能力?今天,我们…...
Claude端到端测试设计:从零搭建可审计、可回放、可量化的AI服务测试流水线(含开源Schema校验工具)
更多请点击: https://codechina.net 第一章:Claude端到端测试设计 端到端测试是验证Claude模型在真实用户交互链路中行为一致性的关键手段。它覆盖从原始提示输入、上下文管理、流式响应生成,到输出解析与业务校验的全路径,确保模…...
从单体到事件驱动的生死跃迁:DeepSeek架构委员会认证的6阶段迁移路线图(含风险热力图与回滚触发阈值表)
更多请点击: https://codechina.net 第一章:从单体到事件驱动的生死跃迁:DeepSeek架构委员会认证的6阶段迁移路线图(含风险热力图与回滚触发阈值表) 向事件驱动架构(EDA)演进不是功能迭代&…...
AI 如何改变软件工程:Martin Fowler 视角 + 实战洞见
AI 如何改变软件工程:Martin Fowler 视角 实战洞见 AI(尤其是 LLM)是软件工程自高级语言(从汇编到 C/Fortran)以来最大的转变。它引入了非确定性(Non-deterministic)编程,改变了从编…...
音乐解锁工具终极指南:3分钟掌握加密音乐解密技巧
音乐解锁工具终极指南:3分钟掌握加密音乐解密技巧 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://g…...
Windows多显示器DPI缩放终极解决方案:告别模糊显示,享受清晰视觉体验
Windows多显示器DPI缩放终极解决方案:告别模糊显示,享受清晰视觉体验 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 你是不是曾经遇到过这样的困扰?连接多个显示器时,文字和图标大小不一&…...
推理服务为什么一上张量并行就开始通信拖慢首 Token:从 All-Reduce 瓶颈到通信计算重叠的工程实战
一、问题的引入 部署 70B 以上大模型时,单卡显存往往捉襟见肘。张量并行(TP)把单层权重沿隐藏维度切分到多张 GPU,每张卡只存一部分。🎯 不少团队上线 TP 后遇到诡异现象:吞吐提升,首 Token 时间…...
