当前位置: 首页 > news >正文

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代码&#xff1a; #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 机器上&#xff0c;你可以使用以下几种方法来查看 CPU 的数量&#xff08;物理 CPU 和逻辑 CPU&#xff09;&#xff1a; 方法 1&#xff1a;使用 lscpu 命令 lscpu输出示例&#xff1a; CPU(s): 8 Thread(s) per core: 2 Core(s) per socket: 4 Soc…...

Swoole如何处理内存泄漏

Swoole处理内存泄漏的方式主要包括以下几个方面&#xff1a; 一、内存管理机制 Swoole的内存管理机制与普通PHP-CLI程序一致&#xff0c;但它在事件回调函数返回后会自动回收所有局部对象和变量&#xff0c;不需要手动unset。如果变量是一个资源类型&#xff0c;那么对应的资…...

Llama最新开源大模型Llama3.1

Meta公司于2024年7月23日发布了最新的开源大模型Llama 3.1&#xff0c;这是其在大语言模型领域的重要进展。以下是关于Llama 3.1的详细介绍&#xff1a; 参数规模与训练数据 Llama 3.1拥有4050亿&#xff08;405B&#xff09;参数&#xff0c;是目前开源领域中参数规模最大的…...

Pixflow - CL-DJI Drone LUTs 120个大疆Drone无人机相机航拍电影级镜头LUT调色预设

120组电影质感DJI大疆无人机航拍视频LOG&Rec 709还原颜色分级调色LUTs预设包Pixflow – CL-DJI Drone LUTs 使用基于城市外观和 DJI 无人机镜头的最佳 Drone Luts 颜色预设来提升您的视频。 120 个出色的颜色分级 LUTS&#xff0c;您可以将其与任何无人机视频素材一起使用…...

了解AI绘图,Stable Diffusion的使用

AI绘图对GPU算力要求较高。 个人电脑配置可参考&#xff1a; CPU&#xff1a;14600kf 盒装 显卡&#xff1a;RTX 4080金属大师 OC&#xff0c;16G显存 主板&#xff1a;z790吹雪d4 内存&#xff1a;芝奇皇家戟4000c18,162G 硬盘&#xff1a;宏基gm7000 1T 散热&#xff1a;追风…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...