@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 小时,如此长…...
实测GLM-4v-9b:单卡24G显存,高清图片识别与问答实战体验
实测GLM-4v-9b:单卡24G显存,高清图片识别与问答实战体验 1. 模型概述与核心优势 GLM-4v-9b是智谱AI于2024年开源的多模态视觉-语言模型,基于90亿参数的GLM-4-9B语言模型架构,通过端到端训练整合了视觉编码器。该模型在11201120高…...
SecGPT-14B作品分享:5类典型安全任务(漏洞/日志/异常/攻防/命令)全覆盖输出
SecGPT-14B作品分享:5类典型安全任务全覆盖输出 1. SecGPT-14B简介 SecGPT是由云起无垠团队于2023年推出的开源大语言模型,专门针对网络安全领域设计开发。该模型基于先进的自然语言处理技术,融合了安全专业知识库,能够高效处理…...
5分钟学会lychee-rerank-mm:图文混合内容排序不再难
5分钟学会lychee-rerank-mm:图文混合内容排序不再难 1. 为什么需要多模态重排序 在日常工作和生活中,我们经常遇到需要从大量图文内容中找出最相关结果的情况。比如: 电商平台需要为用户搜索"猫咪玩具"展示最匹配的商品图片和描…...
树莓派5硬件PWM驱动舵机实战:从设备树编译到精准角度控制
树莓派5硬件PWM驱动舵机实战:从设备树编译到精准角度控制 树莓派5作为一款高性能的单板计算机,其硬件PWM功能在机器人、机械臂和模型制作等领域具有广泛的应用前景。与软件PWM相比,硬件PWM能够提供更稳定、更精确的控制信号,特别是…...
MGC3130电场式三维手势控制器原理与工程实践
1. MGC3130:全球首款电场式三维手势与轨迹追踪控制器深度解析1.1 技术定位与工程价值MGC3130 是由Microchip(原Atmel)推出的全球首款基于电场(E-field)传感原理的三维空间轨迹追踪与手势识别专用控制器。其核心突破在于…...
基于dlib+OpenCV的人脸疲劳检测 + 年龄性别识别实战
一、前言在计算机视觉领域,人脸相关技术一直是热门方向,从人脸检测、关键点定位到疲劳检测、年龄性别识别,都有着广泛的应用场景,比如驾驶员疲劳监测、智能门禁、人机交互等。本文将基于dlib和OpenCV,从零实现两个经典…...
从.nii文件到发表级配图:一份超详细的fMRI脑区(ROI)可视化避坑与调参指南
从.nii文件到发表级配图:一份超详细的fMRI脑区(ROI)可视化避坑与调参指南 当你终于跑完最后一组统计分析,看着屏幕上那些代表显著脑区的彩色斑点时,可能已经迫不及待想把它们放进论文插图。但现实往往是——直接导出的…...
Tickers:嵌入式无阻塞软件定时器库
1. 项目概述Tickers是一个轻量级、无阻塞的定时回调库,专为资源受限的嵌入式系统设计。其核心目标是彻底替代delay()函数,在不牺牲实时性、不引入线程调度开销的前提下,实现高精度、可重入、多实例的周期性函数调用。该库不依赖操作系统内核&…...
基于Matlab/Simulink的直流调速系统PI控制器设计与抗扰性能仿真分析
1. 直流调速系统与PI控制基础 直流电机调速系统在工业自动化领域应用广泛,从机床主轴控制到电动汽车驱动都离不开它。我第一次接触这个课题是在研究生实验室,当时用老旧的直流电机做实验,手忙脚乱调参数的样子至今记忆犹新。传统调速系统最让…...
4道高频面试题,吃透时间复杂度(递归_堆_贪心_快排)
4道高频面试题,吃透时间复杂度(递归/堆/贪心/快排) 前言:时间复杂度是算法面试的“必考题”,也是区分初级与中级开发者的核心考点。很多开发者能写出正确的算法代码,却无法清晰、严谨地分析其时间复杂度&am…...
