SpringBoot中Get请求和POST请求接收参数详解
1、Get请求
1.1 方法形参接收参数
-
这种方式一般适用参数比较少的情况,并且前后端参数名称必须保持一致
@RestController
@RequestMapping(“/user”)
@Slf4j
public class DemoController {@GetMapping("/query") public void getStudent(String name,String age) {log.info("name:{}",name);log.info("age:{}",age); }}
-
参数用 @RequestParam 标注,使用value属性指定参数名,required属性表示这个参数是否必传
@RestController
@RequestMapping(“/user”)
@Slf4j
public class DemoController {@GetMapping("/query") public void getStudent(@RequestParam(value = "name", required = false) String name,@RequestParam(value = "age", required = false) String age) {log.info("name:{}",name);log.info("age:{}",age); }}
1.2 实体类接收参数
注意:Get 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@GetMapping("/query")public void getStudent(Student student) {log.info("name:{}",student.getName());log.info("age:{}",student.getAge());}
}@Data
class Student{private String name;private Integer age;
}
1.3 通过HttpServletRequest接收参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@GetMapping("/query")public void getStudent(HttpServletRequest request) {String name = request.getParameter("name");String phone = request.getParameter("age");log.info("name:{}",name);log.info("age:{}",age);}
}
1.4 通过@PathVariable接收参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@GetMapping("/query/{name}/{age}")public void getStudent(@PathVariable String name, @PathVariable String age) {log.info("name:{}",name);log.info("age:{}",age);}
}
1.5 接收数组参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@GetMapping("/query")public void getStudent(String[] names) {Arrays.stream(names).forEach(System.out::println);}
}
1.6 接受集合参数
注意:SpringBoot 接收集合参数,必须用 @RequestParam 注解声明!
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@GetMapping("/query")public void getStudent(@RequestParam List<String> names) {names.forEach(System.out::println);}
}
2、POST请求
2.1 方法形参接收参数
-
前后端参数名称必须保持一致
@RestController
@RequestMapping(“/user”)
@Slf4j
public class DemoController {@PostMapping("/save") public void saveStudent(String name,String age) {log.info("name:{}",name);log.info("age:{}",age); }}
-
参数用 @RequestParam 标注,使用value属性指定参数名,required属性表示这个参数是否必传
@RestController
@RequestMapping(“/user”)
@Slf4j
public class DemoController {@PostMapping("/save") public void saveStudent(@RequestParam(value = "name", required = false) String name,@RequestParam(value = "age", required = false) String age) {log.info("name:{}",name);log.info("age:{}",age); }}
2.2 通过HttpServletRequest接收参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@PostMapping("/save")public void saveStudent(HttpServletRequest request) {String name = request.getParameter("name");String phone = request.getParameter("age");log.info("name:{}",name);log.info("age:{}",age);}
}
2.3 通过@PathVariable接收参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@PostMapping("/save/{name}/{age}")public void saveStudent(@PathVariable String name, @PathVariable String age) {log.info("name:{}",name);log.info("age:{}",age);}
}
2.4 通过param方式提交参数,以实体类接收参数
直接以实体类可以接收param、form-data、 x-www-form-urlencoded 提交的参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@PostMapping("/save")public void saveStudent(Student student) {log.info("name:{}",student.getName());log.info("age:{}",student.getAge());}
}@Data
class Student{private String name;private Integer age;
}
2.5 请求体以JSON格式提交参数,通过 @RequestBody 注解接收参数
-
接受实体类JSON参数
@RestController
@RequestMapping(“/demo”)
@Slf4j
public class DemoController {@PostMapping("/save") public void saveStudent(@RequestBody Student student) {log.info("name:{}",student.getName());log.info("age:{}",student.getAge()); }}
@Data
class Student{
private String name;
private Integer age;
} -
接收数组或者集合类JSON参数
@RestController
@RequestMapping(“/demo”)
@Slf4j
public class DemoController {@PostMapping("/save") public void saveStudent(@RequestBody String[] names) {Arrays.stream(names).forEach(System.out::println); }@PostMapping("/save") public void saveStudent(@RequestBody List<String> names) {names.forEach(System.out::println); }}
2.6 通过 Map 接收参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@PostMapping("/save")public void saveStudent(@RequestParam Map<String,Object> map) {log.info("name:{}",map.get("name"));log.info("age:{}",map.get("age"));}
}
2.7 通过@RequestBody 接收一个参数
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {@PostMapping("/save")public void saveStudent(@RequestBody String name) {log.info("name:{}",name);}
}
相关文章:
SpringBoot中Get请求和POST请求接收参数详解
1、Get请求 1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须保持一致 RestController RequestMapping(“/user”) Slf4j public class DemoController { GetMapping("/query") public void getStudent(String name,Strin…...
分布式日志和责任链路
目录 日志问题 责任链问题 分布式日志 GrayLog简介 部署安装 收集日志 配置Inputs 集成微服务 日志回收策略 搜索语法 搜索语法 自定义展示字段 日志统计仪表盘 创建仪表盘 链路追踪 APM 什么是APM 原理 技术选型 Skywalking简介 部署安装 微服务探针 整合…...
h5 IOS端渐变的兼容问题 渐变实现弧形效果
IOS端使用渐变的时候有兼容问题 以下是问题效果,图中黑色部分期望的效果应该是白色的。但是ios端是下面的样子…… 安卓pc 支持: background-image: radial-gradient(circle 40rpx at 100% 0, #f3630c 40rpx, rgb(255, 255, 255) 50%);安卓pc ios支持…...
哈希算法--猜数字游戏
1.题目要求 输入两个位数相同的数,判断对应位置的数字是否相等,返回两个数。第一个数是数字和位置完全猜对的数字个数,第二个数是数字大小猜对但位置不对的数字个数 2.逐步编程 2.1 定义函数 def g(secret,guess):sec_dic{}gue_dic{}# 定义…...
idea生成自定义Maven原型(archetype)项目工程模板
一、什么是Maven原型(Maven archetype) 引自官网的介绍如下: Maven原型插件官网地址 这里采用DeepSeek助手翻译如下: Maven 原型 什么是原型? 简而言之,原型是一个 Maven 项目模板工具包。原型被定义为一…...
Redis面试常见问题——使用场景问题
目录 Redis面试常见问题 如果发生了缓存穿透、击穿、雪崩,该如何解决? 缓存穿透 什么是布隆过滤器? 缓存击穿 缓存雪崩 双写一致性(redis做为缓存,mysql的数据如何与redis进行同步呢?) …...
样式和ui(待更新)
element-plus 先在项目下执行安装语句执行按需导入的命令按照官方文档修改vitest.json sass样式定制 npm -i sass -D在项目下准备定制的样式文件 styles/element/index.scss(!注意这里是.scss文件在vitest.json 修改配置文件 Components({resolvers: [ElementPlusResolver(…...
大摩闭门会:250228 学习总结报告
如果图片分辨率不足,可右键图片在新标签打开图片或者下载末尾源文件进行查看 本文只是针对视频做相应学术记录,进行学习讨论使用...
线程(Thread)
一、概念 线程:线程是一个轻量级的进程 二、线程的创建 1、线程的空间 (1)进程的空间包括:系统数据段、数据段、文本段 (2) 线程位于进程空间内部 (3) 栈区独享、与进程共享文本段、…...
AI军备竞赛2025:GPT-4.5的“情商革命”、文心4.5的开源突围与Trae的代码革命
AI军备竞赛2025:GPT-4.5的“情商革命”、文心4.5的开源突围与Trae的代码革命 ——一场重塑人类认知边界的技术战争 一、OpenAI的“感性觉醒”:GPT-4.5的颠覆与争议 1.1 从“冷面学霸”到“温柔导师”:AI的情商跃迁 当用户输入“朋友放鸽子&…...
DeepSeek + 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP
DeepSeek 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP 商业定位1. 商业定位分析提示词2. 私域引流策略提示词3. 变现模型计算器提示词4. 对标账号分析提示词5. 商业IP人设打造提示词6. 内容选题策略提示词7. 用户人群链分析提示词8. 内容布局与转化路径设计提…...
Java进阶——常用工具类
日常开发中,Arrays、Collections 和 Objects 是非常实用的工具类,提供了丰富的功能,从而可以更高效地处理数组、集合和对象。本文将详细介绍这三个工具类的重要知识细节。 本文目录 一、 Arrays数组转集合并行排序优化Stream 支持 二、 Colle…...
【考试大纲】高级系统架构设计师考试大纲
目录 引言一、 考试说明1.考试目标2.考试要求3.考试科目设置二、 考试范围考试科目1:系统架构设计综合知识考试科目2:系统架构设计案例分析考试科目3:系统架构设计论文引言 最新的系统架构设计师考试大纲出版于 2022 年 11 月,本考试大纲基于此版本整理。 一、 考试说明…...
上位机知识篇---四种CPU架构交叉编译
文章目录 前言一、四种 CPU 架构1. x86/x86_64指令集位宽:应用场景编译工具 2. ARM指令集位宽:应用场景编译工具 3. MIPS指令集位宽应用场景编译工具 4. RISC-V指令集位宽应用场景编译工具 二、交叉编译1. 什么是交叉编译?定义应用场景 2. 交…...
隐式转换为什么导致索引失效
SELECT * FROM users WHERE id 123;这条语句失效的原因就是id是int类型的主键,比较的时候把id从int转化为字符串来比较了,而字符串的比较规则和int的比较规则明显不同,字符串是字典序比较的,还涉及到数据的长度,那为什…...
【含文档+PPT+源码】基于过滤协同算法的旅游推荐管理系统设计与实现
项目介绍 本课程演示的是一款基于过滤协同算法的旅游推荐管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…...
SpringBoot @Value 注解使用
Value 注解用于将配置文件中的属性值注入到Spring管理的Bean中。 1. 基本用法 Value 可以直接注入配置文件中的属性值。 配置文件 (application.properties 或 application.yml) 配置文件定义需要注入的数据。 consumer:username: lisiage: 23hobby: sing,read,sleepsubje…...
Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言安装JDK 17创建Spring Boot 项目 方式1:网页在线生成方式2&#…...
高频 SQL 50 题(基础版)_1667. 修复表中的名字
高频 SQL 50 题(基础版)_1667. 修复表中的名字 select user_id ,concat(upper(substring(name,1,1)),lower(substring(name,2))) as name from Users order by user_id...
Windwos10 系统没有微软商店(Microsoft Store)怎么办?
操作方法 管理员身份打开power shell , 输入 Get-AppxPackage -AllUsers Microsoft.WindowsStore* | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “ ( ( (_.InstallLocation)\AppXManifest.xml”} 按下enter按键,就OK了...
C 语言自定义类型:结构体、位段、联合体、枚举
struct:成员并排,空间叠加位段:struct 里按 bit 分配,极致省空间union:成员重叠,空间共享enum:有限常量,替代宏,更安全一、结构体 struct:成员并排࿰…...
大模型写论文,“文献”全是瞎编的?为什么大模型爱编参考文献?如何确保文献的真实性
一、引言:当AI开始“编文献” 随着大语言模型(如 GPT-4、DeepSeek、Claude 等)在学术写作、文献综述、技术调研中的普及,一个隐蔽但危险的问题逐渐暴露出来——文献幻觉(Citation Hallucination)。 你可能…...
lin诊断功能寻址和静态电流测试方法
lin诊断功能寻址是不会回响应的,不管正响应还是负响应,而且进入会话必须是10 83这种(不知道是不是项目规定)****************************************************************************************************这个数字电流…...
Java读取Word图片坐标位置的方法
Word文档中图片坐标怎么获取于实际开发期间,我们时常得去处理Word文档里的图片,像是把图片提取出来,对排版予以调整,亦或是进行自动化校验。然而,好多人在获取图片的坐标位置之际卡住了,这事是由于Word的图…...
peerstream像素流多服务器部署(多流实现原理)
想要实现无限路并发,单个服务器显卡槽数是有限的不能仅通过增加显卡来增大并发路数,所以我们要学会如何多服务器部署才能实现无限制流送并发。 准备工作:最少两台服务器,其中一台作为主服务器,其他作为副服务器 相关重…...
边缘计算与持续学习在机器人导航中的应用与优化
1. 边缘计算与持续学习在机器人导航中的核心价值 机器人导航系统正面临两大核心挑战:实时性要求和环境动态变化。传统云端处理模式由于网络延迟难以满足毫秒级响应需求,而静态训练模型无法适应不断变化的物理环境。边缘计算与持续学习技术的结合为这些问…...
贵州方言语音AI落地难?从数据采集、音素映射到MOS评分提升至4.1的5步攻坚法
更多请点击: https://codechina.net 第一章:贵州方言语音AI落地难?从数据采集、音素映射到MOS评分提升至4.1的5步攻坚法 贵州方言语音AI落地长期受限于语料稀疏、音系复杂、声调连续变调频繁等现实瓶颈。我们联合黔东南州苗族侗族自治州语言…...
终结拟合式智能:记忆博弈心智架构重塑硅基生命进化逻辑
当前全球AGI研发赛道,正陷入一场难以破局的同质化内卷。无论是头部科技企业的超大参数模型,还是轻量化垂直AI产品,核心底层始终沿用Transformer概率拟合逻辑。这套技术体系虽然实现了人工智能的规模化落地,却从根源上锁死了AI的智…...
终极指南:如何用ESP32-A2DP库快速构建蓝牙音频设备
终极指南:如何用ESP32-A2DP库快速构建蓝牙音频设备 【免费下载链接】ESP32-A2DP A Simple ESP32 Bluetooth A2DP Library (to implement a Music Receiver or Sender) that supports Arduino, PlatformIO and Espressif IDF 项目地址: https://gitcode.com/gh_mir…...
神州细胞递表港交所 创新生物制药领军者构筑A+H双平台全球化版图
5月22日,北京神州细胞生物技术集团股份公司(证券代码:688520,证券简称:神州细胞)正式向香港联合交易所有限公司递交上市申请,迈出“AH”双资本平台布局的关键一步。公司以科创板上市为根基&…...
