SpringBoot开发(五)SpringBoot接收请求参数
1. SpringBoot接收请求参数
1.1. 获取参数的方式
(1)通过request对象获取参数
(2)@RequestParam(针对请求头方式为x-www-form-ur lencoded)
(3)@RequestBody(针对请求头方式为application/json)
(4)@PathVariable(接收url路径参数)
1.2. 学员案例
1.2.1. 方式一
(1)在model文件夹下创建Student实体类

package com.zzs.szyj.model;
public class Student {private String name;private Integer sex;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getSex() {return sex;}public void setSex(Integer sex) {this.sex = sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}
(2)在controller文件夹下创建StudentController类

package com.zzs.szyj.controller;
import com.zzs.szyj.model.Student;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/student")
@RestController
public class StudentController {@PostMapping("save")public Student save(Student student) {return student;}
}
(3)运行,使用postman验证

1.2.2. 方式二@RequestBody
1.2.2.1. post请求
(1)StudentController实体类添加方法

package com.zzs.szyj.controller;
import com.zzs.szyj.model.Student;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/student")
@RestController
public class StudentController {/*** 获取参数方式一request** @param student* @return*/@PostMapping("save")public Student save(Student student) {return student;}/*** 获取参数方式二@RequestParam** @param student* @return*/@PostMapping("/save/json")public Student saveByJson(@RequestBody Student student) {return student;}
}
(2)运行,使用postman验证


1.2.2.2. get请求
(1)StudentController实体类添加方法

/*** @param student* @return* @desc 获取参数方式二@RequestParam-get请求*/@GetMapping("/get")public Student getByNameAndAge(Student student) {return student;}
(2)运行,使用postman验证

1.2.3. 方式三@PathVariable
(1)StudentController实体类添加方法

package com.zzs.szyj.controller;
import com.zzs.szyj.model.Student;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/student")
@RestController
public class StudentController {/*** @param student* @return* @desc 获取参数方式一request*/@PostMapping("save")public Student save(Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-post请求*/@PostMapping("/save/json")public Student saveByJson(@RequestBody Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-get请求*/@GetMapping("/get")public Student getByNameAndAge(Student student) {return student;}/*** @param age* @return* @desc 获取参数方式三@PathVariable-get请求*/@GetMapping("/get/{age}")//@GetMapping("/get/{age1}")public Student getByUrlParam(@PathVariable Integer age) {//public Student getByUrlParam(@PathVariable("age1") Integer age) {Student student = new Student();student.setAge(age);return student;}
}
(2)运行,使用postman验证

1.2.4. 方式四@RequestParam
(1)StudentController实体类添加方法

package com.zzs.szyj.controller;import com.zzs.szyj.model.Student;
import org.springframework.web.bind.annotation.*;@RequestMapping("/student")
@RestController
public class StudentController {/*** @param student* @return* @desc 获取参数方式一request*/@PostMapping("save")public Student save(Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-post请求*/@PostMapping("/save/json")public Student saveByJson(@RequestBody Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-get请求*/@GetMapping("/get")public Student getByNameAndAge(Student student) {return student;}/*** @param age* @return* @desc 获取参数方式三@PathVariable-get请求*/@GetMapping("/get/{age}")//@GetMapping("/get/{age1}")public Student getByUrlParam(@PathVariable Integer age) {//public Student getByUrlParam(@PathVariable("age1") Integer age) {Student student = new Student();student.setAge(age);return student;}/*** @param age* @return* @desc 获取参数方式四@RequestParam-get请求*/@GetMapping(("/getParam"))public Student getByRequestParam(@RequestParam("name1") String name,@RequestParam("age1") Integer age) {
// public Student getByRequestParam(
// String name, Integer age) {Student student = new Student();student.setAge(age);student.setName(name);return student;}
}
(2)运行,使用postman验证

1.2.5. 方式五request
(1)StudentController实体类添加方法
package com.zzs.szyj.controller;import com.zzs.szyj.model.Student;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;import java.util.Date;@RequestMapping("/student")
@RestController
public class StudentController {/*** @param student* @return* @desc 获取参数方式一*/@PostMapping("save")public Student save(Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-post请求*/@PostMapping("/save/json")public Student saveByJson(@RequestBody Student student) {return student;}/*** @param student* @return* @desc 获取参数方式二@RequestParam-get请求*/@GetMapping("/get")public Student getByNameAndAge(Student student) {return student;}/*** @param age* @return* @desc 获取参数方式三@PathVariable-get请求*/@GetMapping("/get/{age}")//@GetMapping("/get/{age1}")public Student getByUrlParam(@PathVariable Integer age) {//public Student getByUrlParam(@PathVariable("age1") Integer age) {Student student = new Student();student.setAge(age);return student;}/*** @param age* @return* @desc 获取参数方式四@RequestParam-get请求*/@GetMapping(("/getParam"))public Student getByRequestParam(@RequestParam("name1") String name,@RequestParam("age1") Integer age) {
// public Student getByRequestParam(
// String name, Integer age) {Student student = new Student();student.setAge(age);student.setName(name);return student;}@Resourceprivate HttpServletRequest request;/*** @return* @desc 获取参数方式五-request*/@GetMapping("/getByRequest")public Student getByRequest() {String name = request.getParameter("name1");Integer age = Integer.valueOf(request.getParameter("age1"));Student student = new Student();student.setAge(age);student.setName(name);return student;}
}
(2)运行,使用postman验证

2. SpringBoot接收请求参数报错
postman踩过的坑: “status“: 415, “error“: “Unsupported Media Type“
2.1. 问题概况
使用postman调接口的时候,status返回415,error提示Unsupported Media Type(不支持的媒体类型)。

2.2. 解决方案
Headers中添加类型
(1)点击Headers,添加KEY值:Content-Type,VALUE值:application/json,如果传递的不是json则改成对应值。

(2)检查body传参类型
点击Body,传json格式数据时,选择JSON,如果传递的不是json类型,则改成对应值。

相关文章:
SpringBoot开发(五)SpringBoot接收请求参数
1. SpringBoot接收请求参数 1.1. 获取参数的方式 (1)通过request对象获取参数 (2)RequestParam(针对请求头方式为x-www-form-ur lencoded) (3)RequestBody(针对请求头方式为application/json) …...
文件基础IO
理解"文件" 1-1 狭义理解 文件在磁盘里磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的磁盘是外设(即是输出设备也是输入设备)磁盘上的文件 本质是对文件的所有操作,都是对外设的输入和输出简称IO 1-2 广义理…...
05vue3实战-----配置项目代码规范
05vue3实战-----配置项目代码规范 1.集成editorconfig配置2.使用prettier工具2.1安装prettier2.2配置.prettierrc文件:2.3创建.prettierignore忽略文件2.4VSCode需要安装prettier的插件2.5VSCod中的配置2.6测试prettier是否生效 3.使用ESLint检测3.1VSCode需要安装E…...
八大排序算法细讲
目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想: 步骤(排升序): 代码部分: 时间复杂度: 希尔排序 思路 步骤 gap的取法 代码部分: 时间复杂度: 选择排序 直接选…...
网络爬虫学习:借助DeepSeek完善爬虫软件,增加停止任务功能
一、引言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,终于完成了开发一款网络爬虫软件的学习目标。这几天对本次学习及应用开发进行一下回顾总结。前面已经发布了两篇日志: 网络爬虫学习:应用selenium从搜*狐搜…...
docker安装es及分词器ik
系统是macos,docker是docker-desktop 拉取镜像 docker pull bitnami/elasticsearch 启动docker镜像 docker create -e "discovery.typesingle-node" \ --name elasticsearch1 -p 9200:9200 -p 9300:9300 \ bitnami/elasticsearch:8.17.1 测试是否好…...
【论文阅读】On the Security of “VOSA“
On the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的攻击 论文…...
Docker 国内最新可用镜像源20250205
2年没用dockerhub了结果今天发现镜像无法拉取了,找了很多镜像都无效,连阿里云镜像都不行了,最后找到下面可以用的。 Docker镜像仓库备注hub.urlsa.us.kg可用http://hub.haod.eu.org可用http://hub.chxza.eu.org可用http://ccoc.eu.org部分地…...
(2025|ICLR,音频 LLM,蒸馏/ALLD,跨模态学习,语音质量评估,MOS)音频 LLM 可作为描述性语音质量评估器
Audio Large Language Models Can Be Descriptive Speech Quality Evaluators 目录 1. 概述 2. 研究背景与动机 3. 方法 3.1 语音质量评估数据集 3.2 ALLD 对齐策略 4. 实验结果分析 4.1 MOS 评分预测(数值评估) 4.2 迁移能力(在不同…...
使用 CSS 实现透明效果
在 CSS 中,实现透明效果有几种方法,具体使用哪种方法取决于具体需求。以下是一些常见的方法: 使用 opacity 属性: opacity 属性可以设置整个元素的透明度,包括其所有的子元素。 .transparent { opacity: 0.5; /* 0 表…...
4G核心网的演变与创新:从传统到虚拟化的跨越
4G核心网 随着移动通信技术的不断发展,4G核心网已经经历了从传统的硬件密集型架构到现代化、虚拟化网络架构的重大转型。这一演变不仅提升了网络的灵活性和可扩展性,也为未来的5G、物联网(LOT)和边缘计算等技术的发展奠定了基础。…...
数据库系统概论的第六版与第五版的区别,附pdf
我用夸克网盘分享了「数据库系统概论第五六版资源」,点击链接即可保存。 链接:https://pan.quark.cn/s/21a278378dee 第6版教材修订的主要内容 为了保持科学性、先进性和实用性,在第5版教材基础上对全书内容进行了修改、更新和充实。 在科…...
uniapp小程序自定义中间凸起样式底部tabbar
我自己写的自定义的tabbar效果图 废话少说咱们直接上代码,一步一步来 第一步: 找到根目录下的 pages.json 文件,在 tabBar 中把 custom 设置为 true,默认值是 false。list 中设置自定义的相关信息, pagePath&#x…...
自己实现的一个缓存数据库(搞着玩) .net Core/6/8/9
自己实现的一个缓存数据库(搞着玩) 想法来源特点说明 上代码主体基类测试类 注 想法来源 做过一个小型项目,客户要求易移植,不能使用收费的数据库,最好是一个包搞定,尝试过用sqlite,在部分linux…...
在Qt中,slots 关键字有什么用?
有下面的Qt代码: #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr…...
如何查看linux机器有几个cpu
在 Linux 机器上,你可以使用以下几种方法来查看 CPU 的数量(物理 CPU 和逻辑 CPU): 方法 1:使用 lscpu 命令 lscpu输出示例: CPU(s): 8 Thread(s) per core: 2 Core(s) per socket: 4 Soc…...
Swoole如何处理内存泄漏
Swoole处理内存泄漏的方式主要包括以下几个方面: 一、内存管理机制 Swoole的内存管理机制与普通PHP-CLI程序一致,但它在事件回调函数返回后会自动回收所有局部对象和变量,不需要手动unset。如果变量是一个资源类型,那么对应的资…...
Llama最新开源大模型Llama3.1
Meta公司于2024年7月23日发布了最新的开源大模型Llama 3.1,这是其在大语言模型领域的重要进展。以下是关于Llama 3.1的详细介绍: 参数规模与训练数据 Llama 3.1拥有4050亿(405B)参数,是目前开源领域中参数规模最大的…...
Pixflow - CL-DJI Drone LUTs 120个大疆Drone无人机相机航拍电影级镜头LUT调色预设
120组电影质感DJI大疆无人机航拍视频LOG&Rec 709还原颜色分级调色LUTs预设包Pixflow – CL-DJI Drone LUTs 使用基于城市外观和 DJI 无人机镜头的最佳 Drone Luts 颜色预设来提升您的视频。 120 个出色的颜色分级 LUTS,您可以将其与任何无人机视频素材一起使用…...
了解AI绘图,Stable Diffusion的使用
AI绘图对GPU算力要求较高。 个人电脑配置可参考: CPU:14600kf 盒装 显卡:RTX 4080金属大师 OC,16G显存 主板:z790吹雪d4 内存:芝奇皇家戟4000c18,162G 硬盘:宏基gm7000 1T 散热:追风…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
