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类型,则改成对应值。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13445.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何理解多态,以及由此引出的抽象类和纯虚函数

文章目录 1. 多态2. 抽象类和纯虚函数 1. 多态 静态多态&#xff1a; 动态多态&#xff1a; #include <iostream> #include <string> using namespace std;// 动物的基类 class Animal { public:Animal(string name) : _name(name) {}virtual void bark() {} …

java基础2(黑马)

一、变量里的数据在计算机中的存储原理 1.二进制 .二进制&#xff1a;只有0、1&#xff0c; 按照逢二进一的方式表示数据。 十进制数字11转换为&#xff1a;1011 方法&#xff1a;除二取余法 计算机中表示数据的最小单元&#xff0c;一个字节&#xff08;Byte&#xff0c;简…

【算法篇】贪心算法

目录 贪心算法 贪心算法实际应用 一&#xff0c;零钱找回问题 二&#xff0c;活动选择问题 三&#xff0c;分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法&#xff0c;是一种在每一步选择中都采取当前状态下的最优策略&#xff0c;期望得到全局最优…

数据结构与算法学习笔记----博弈论

# 数据结构与算法学习笔记----博弈论 author: 明月清了个风 first publish time: 2025.2.6 ps⭐️包含了博弈论中的两种问题Nim游戏和SG函数&#xff0c;一共四道例题&#xff0c;给出了具体公式的证明过程。 Acwing 891. Nim游戏 [原题链接](891. Nim游戏 - AcWing题库) 给…

Yageo国巨的RC系列0402封装1%电阻库来了

工作使用Cadence多年&#xff0c;很多时候麻烦的就是整理BOM&#xff0c;因为设计原理图的时候图省事&#xff0c;可能只修改value值和封装。 但是厂家&#xff0c;规格型号&#xff0c;物料描述等属性需要在最后的时候一行一行的修改&#xff0c;繁琐又容易出错&#xff0c;过…

app专项测试(网络测试流程)

一、网络测试的一般流程 step1&#xff1a;首先要考虑网络正常的情况 ① 各个模块的功能正常可用 ② 页面元素/数据显示正常 step2&#xff1a;其次要考虑无网络的情况 ① APP各个功能在无网络情况下是否可用 ② APP各个页面之间切换是否正常 ③ 发送网络请求时是…

RFID隧道机:提升生产流水线效率与精准度

在当今制造业飞速发展的时代&#xff0c;生产流水线的效率与精准度成为企业竞争力的关键。传统的货物管理往往依赖于人工扫描和记录&#xff0c;效率低下且易出错&#xff0c;而RFID 隧道机的出现&#xff0c;为企业带来了智能化的管理体验&#xff0c;为生产流水线带来了从人工…

NSS-DAY2

Crypto [HNCTF 2022 Week1]A dictator 题目&#xff1a; from random import randint from secret import flagoffset randint(1,100) % 26 # print(offset)assert flag.startswith(NSSCTF{) assert all([ord(c) not in range(ord(A),ord(Z)) for c in flag[7:-1]])for cha…

systemctl配置httpd服务

一、环境介绍&#xff1a; Operating SystemopenEuler 22.03 (LTS-SP2)Kernel Linux 5.10.0-153.56.0.134.oe2203sp2.x86_64httpd versionhttpd-2.4.59ip address192.168.240.12/24 二、下载需要的软件包 yum install -y gcc gcc-c make apr apr-devel apr-util-devel pcre …

Redis bitmap应用

Redis bitmap应用 需求&#xff1a;存储用户今年已签到的天数&#xff0c;如在1月3日签到&#xff0c;则存 3 。。。以此类推 每秒300次请求压力测试 1、使用数据库存储 查询代码与时间 public List<Integer> selectSignRecord(long userId, Integer year) {if (year nu…

蓝桥杯之c++入门(六)【string(practice)】

目录 练习1&#xff1a;标题统计方法1&#xff1a;一次性读取整行字符&#xff0c;然后统计方法2&#xff1a;按照单词读取小提示&#xff1a; 练习2&#xff1a;石头剪子布练习3&#xff1a;密码翻译练习4&#xff1a;文字处理软件练习5&#xff1a;单词的长度练习6&#xff1…

uniapp访问django目录中的图片和视频,2025[最新]中间件访问方式

新建中间件, middleware.py 匹配,以/cover_image/ 开头的图片 匹配以/episode_video/ 开头的视频 imageSrc: http://192.168.110.148:8000/cover_image/12345/1738760890657_mmexport1738154397386.jpg, videoSrc: http://192.168.110.148:8000/episode_video/12345/compres…

gc buffer busy acquire导致的重大数据库性能故障

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

[NKU]C++安装环境 VScode

bilibili安装教程 vscode 关于C/C的环境配置全站最简单易懂&#xff01;&#xff01;大学生及初学初学C/C进&#xff01;&#xff01;&#xff01;_哔哩哔哩_bilibili 1安装vscode和插件 汉化插件 ​ 2安装插件 2.1 C/C 2.2 C/C Compile run ​ 2.3 better C Syntax ​ 查看已…

DeepSeek-r1模型本地化部署最新教程

新的改变 DeepSeek 的搜索引擎基于深度学习算法&#xff0c;能够理解和分析大量的数据源&#xff08;如文本、图像、视频等&#xff09;&#xff0c;并结合用户的行为数据和偏好&#xff0c;提供个性化的搜索结果。 最近爆火的DeepSeek不用多说了&#xff0c;快来本地部署感受…

网络工程师 (20)计算机网络的概念

一、定义 计算机网络是指将地理位置不同、具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路及通信设备连接起来&#xff0c;在网络操作系统、网络管理软件及网络通信协议的管理和协调下&#xff0c;实现信息传递和资源共享的计算机通信系统。 二、组成 资源子网&…

支持向量机(一)

支持向量机是典型的二分类模型&#xff0c;以其模型简单、实现简单、效果卓越而著称。 一元支持向量机 我们通过一条中间线根据特征对样本实现分类&#xff0c;很明显&#xff1a;两个支持样本的差别越大&#xff0c;两个支持样本的分类效果就越好。 二元支持向量机 在实际生…

React 设计模式:实用指南

React 提供了众多出色的特性以及丰富的设计模式&#xff0c;用于简化开发流程。开发者能够借助 React 组件设计模式&#xff0c;降低开发时间以及编码的工作量。此外&#xff0c;这些模式让 React 开发者能够构建出成果更显著、性能更优越的各类应用程序。 本文将会为您介绍五…

vscode 如何通过Continue引入AI 助手deepseek

第一步&#xff1a; 在deepseek 官网上注册账号&#xff0c;得到APIKeys(deepseek官网地址) 创建属于自己的APIKey,然后复制这个key,(注意保存自己的key)! 第二步&#xff1a; 打开vscode,在插件市场安装Continue插件, 点击设置&#xff0c;添加deepseek模型&#xff0c;默认…

LPJ-GUESS模型入门(一)

一、模型简介 LPJ-GUESS是一个基于过程的动态植被陆地生态系统模型&#xff0c;专为区域或全球研究而设计。这种模型通常被称为动态全球植被模型&#xff08;DGVM&#xff09;。根据区域气候条件和大气二氧化碳浓度的数据&#xff0c;它可以预测地球主要气候带本土生态系统的结…