当前位置: 首页 > 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;追风…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...