Springboot各种请求参数详解

文章目录

  • 请求
    • Postman
      • **为什么需要Postman**
      • **什么是Postman**
      • **Postman使用教程**
    • 请求参数
      • 简单参数
      • 实体参数
      • 数组参数
      • 集合参数![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/eba0ca80e3724412ae4c79af72b859c3.png#pic_center)
      • 日期参数
      • json参数
      • 路径参数
      • 总结

请求

Postman

为什么需要Postman

因为使用前后端分离的方式进行开发,前端和后端开发过程相互分离,只需要依照一起制定出的接口文档进行开发即可。

如果我们从浏览器中直接测试,发出请求给后端,等待后端的响应,那么将只能测试get请求,因为浏览器地址栏只能发出get请求

什么是Postman

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,常用于进行接口测试

Postman使用教程

1、创建Workspaces工作空间

2、点击“+”添加请求

3、输入请求的各项信息

  • 请求方式(get、post等)
  • 请求链接
  • 请求参数(Params) Get请求设置参数位置
  • 请求头(Headers)
  • 请求体(Body)Post请求设置参数位置

4、点击"send"发送请求

5、查看响应数据的响应体(Body)

6、点击"save"保存请求,会保存输入的请求信息以及返回的响应信息

请求参数

思路是:

1.一参一值

简单参数原始方式:需要手动获取参数并且进行格式转化

——>简单参数Springboot方式:自动获取参数自动转化,但是需要变量名与请求参数名保持一致

——>简单参数Springboot方式+@RequestParam注释:可以不保持一致,但是如果一次传入的参数过多,则需要声明很多变量

——>实体参数:把变量全部打包成一个类里的属性

2.一参多值

数组参数

集合参数

3.特殊参数

  • 日期参数
  • json参数
  • 路径参数

简单参数

  • 原始方式

需要从Controller方法形参中声明HttpServletRequest对象,调用getParameter方法

缺点:

​ 1、需要调用getParameter手动获取参数

​ 2、需要自己进行参数的格式转换,因为getParameter方法默认返回String类型

在这里插入图片描述

  • Springboot方式(请求参数名与方法形参变量名相同)

改正了原始方式的所有缺点,只要参数名与形参变量名相同,会自动接收参数,并且转换类型。

缺点:

​ 1、参数名一定需要与形参变量名相同,否则无法正常接收,但是不会报错

在这里插入图片描述

  • Springboot方式(请求参数名与方法形参变量名不同)

为了解决参数名一定需要与形参变量名相同的问题,在形参变量定义前使用@RequestParam(name=“参数名”)完成映射,当然如果一致的话,简单参数的传递是无需使用@RequestParam注解的

在这里插入图片描述

实体参数

像简单参数一样一个一个定义形参变量过于麻烦,而且难以重用,可以直接声明一个类,存放那些需要的属性。

注意:请求参数名要与该类的属性名相同

在这里插入图片描述

而且如果该类的属性中有其他类的对象,则开始嵌套

在这里插入图片描述

数组参数

如果像下图一样,一个属性有多个值,怎么办?在这里插入图片描述

引入数组参数:

  • 请求参数名与形参数组名称相同
  • 请求参数为多个

定义数组类型形参即可接受参数

在这里插入图片描述

集合参数在这里插入图片描述

也可以封装到集合中,注意因为默认一参多值是封装到数组中的,所以想要封装到集合中需要增加一个注释:@RequestParam绑定传参数关系

日期参数

  • 请求参数:值是日期,有多种形式,2022/12/12 10:05:00,2022年12月12日,10点05分45秒等

  • 形参类型:LocalDateTime

  • 格式转换:用@DateTimeFormat注解规定前端需要传递的日期格式

在这里插入图片描述

json参数

  • Postman如何发送json格式的数据

点击Body——>点击raw——>选择json——>输入json格式的数据(“key”:value)

在这里插入图片描述

  • 服务端如何接受json格式的数据
    • 定义实体类接收
    • 实体类的属性名与json数据的key一致
    • 需要增加@RequestBody注解

路径参数

如果参数就在请求路径中怎么办?

  • 在@RequestMappiing(url)中用{}标识参数部分
  • 声明形参时增加@PathVariable注解

在这里插入图片描述

总结

目前需要注解的有:

  • 简单参数变量名与参数名不一致时
  • 集合参数定义时(因为默认封装到数组)
  • 日期参数定义时(规定日期格式)
  • json参数定义时
  • 路径参数定义时

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeMX教程31 USB_DEVICE - HID外设_模拟键盘或鼠标

目录 1、准备材料 2、实验目标 3、模拟鼠标实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.0、工程基本配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.0、配置Project Manager页面 3.2.1、设初始化调用流程 3.2.2、外设中…

ESP8266 控制之 : 使用 RingBuffer USART1 和 USART3互传

简介 使用Buffer来避免数据的丢失, 或许你自己在使用串口进行收发时会丢失数据, 现在我们就来简单使用一下RingBuffer创建Rx、Tx的Buffer来避免发送接收丢包或数据丢失问题。 扩展知识 RingBuffer的介绍, 看完大概也就知道了,实在不知道就看看下面的代码 线路连接…

详解操作系统各章大题汇总(死锁资源分配+银行家+进程的PV操作+实时调度+逻辑地址->物理地址+页面置换算法+磁盘调度算法)

文章目录 第三章:死锁资源分配图例一例二 第三章:银行家算法第四章:进程的同步与互斥做题步骤PV操作的代码小心容易和读者写者混 1.交通问题(类似读者写者)分析代码 2.缓冲区问题(第二个缓冲区是复制缓冲区…

实现元素进入界面的平滑效果

先看效果: 实现思路:获取页面中需要加载动画的节点,用元素的animate()方法创建一个动画对象,并传入两个关键帧,接着使用IntersectionObserverAPI创建观察对象,用于观察元素进入页面。当元素进入界面时&…

【数据分享】1929-2023年全球站点的逐年平均气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

CSS--Emmet 语法

Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法. 目录 1. 快速生成HTML结构语法 1.1 快速生成HTML结构语法 2. 快速生成CSS样式语法 2.1 快速生成CSS样式语法 1. 快速生成HTML结构语法 1.1 快速生成HTML结构语法 1. 生成标…

2.【Vue3】Vue 基本使用——局部使用Vue

文章目录 1. 快速入门2. 常用指令2.1 v-for2.2 v-bind2.3 v-if 与 v-show2.4 v-on2.5 v-model 3. 生命周期4. Ajax 函数库 Axios4.1 Axios 基本使用4.2 Axios 请求方式别名 1. 快速入门 现在需要将 “hello vue3” 这样一个字符串渲染到页面上进行展示。 这个需求并不陌生&…

JVM系列——对象管理

JVM对象分布 对象头 第一类是用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等 另外一部分是类型指针,即对象指向它的类型元数据的指针,Java 虚…

【ArcGIS微课1000例】0096:dem三维块状表达(层次地形模型)

文章目录 一、DEM表达方式二、层次模型表达三、注意事项一、DEM表达方式 DEM数字高程模型的表达方式通常有以下4种: 1. 规则格网 2. 不规则三角网 3. 等高线 4. 层次地形模型 作为栅格地理数据,DEM 数据具有2.5维的特征,能够以三维表面的形式进行三维空间表达。但受其数…

Web 开发 6:Redis 缓存(Flask项目使用Redis并同时部署到Docker详细流程 附项目源码)

大家好!欢迎来到第六篇 Web 开发教程,今天我们将探讨一个非常重要的话题:Redis 缓存。作为一个互联网开发者,你一定知道在处理大量请求时,性能优化是至关重要的。而 Redis 缓存正是帮助我们提升系统性能的利器。Redis …

爬虫基础-计算机网络协议

一个数据的传输 这些设备的数据转发是通过协议来完成的,整个互联网可以说是完全由网络协议来维持的 不同的协议分工不同,比如ip协议确保了ip寻址,tcp协议确保了数据完整性 IP地址和URL ip地址 整个网络传输可以比作快递,数据就…

2023年度总结——忙忙碌碌,终有归章

思来想去,还是决定写一篇年终总结,一来算是对23年的一年的回顾,二来是对24年的展望。记得22年也写过一篇年度总结,题目是《2022年度总结——一切都在慢慢变好》。今年,我想起的题目是《2023年度总结——忙忙碌碌&#…

在Temu跨境电商平台上,如何快速出单?

随着越来越多的商家选择入驻Temu跨境电商平台,一旦入驻申请通过,商家就可以开始上架商品并等待订单的产生。然而,很多新手跨境电商卖家都面临一个共同的问题,那就是:Temu出单快吗?Temu上架多久能出单&#…

STM32CubeMX教程27 SDIO - 读写SD卡

目录 1、准备材料 2、实验目标 3、轮询方式读取SD卡流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.0、工程基本配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.0、配置Project Manager页面 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流…

激光雷达,角力「降本增效」

高工智能汽车研究院最新发布的数据显示,2023年1-11月,中国市场(不含进出口)乘用车前装标配激光雷达搭载量为46.48万颗,同比增长372.35%,继续保持高增长态势。 随着激光雷达在中国市场完成规模化上量的节点&…

Promethues是什么?

什么是Prometheus? Prometheus是一个开源的系统监控以及报警系统。整和zabbix的功能,系统,网络,设备。 promethues可以兼容网络、设备、容器监控、告警系统。因为和k8s是一个项目基金开发的产品,天生就匹配k8s的原生…

离线安装nginx_银河麒麟系统_nginx报错_503_500 Internal Server Error----nginx工作笔记007

如果报这个错误,意思就是,对于nginx.conf文件中指定的,文件夹没有权限 那么这个是去给对应的文件夹赋权限: chmod 777 /opt/module/test_web 就可以了,然后再去访问就不会报错了,还有 503的错误都可以这样解决 然后关于离线安装nginx,尝试了一下如果把之前安装过的nginx,直接…

AI-数学-高中-10-2-分数指数幂计算

原作者视频:初等函数】2分数指数幂的计算(基础)_哔哩哔哩_bilibili 方法1: 方法2:

Matlab绘图技巧-NAN元素绘图出现锯齿状解决办法

Matlab绘图技巧-NAN元素绘图出现锯齿状解决办法 想必有很多同学遇到绘制3维曲面热力图,有一些数据是nan,绘制出来的图会出现锯齿状:如下图:    如果用matlab直接绘制带nan的矩阵的话,则会像上图一样,当然…

【教程】iOS 手机抓包工具介绍及教程

📱 最近又发现APP Store一款宝藏软件,克魔助手抓包工具,app刚上架,功能不断迭代中,目前18软妹币实惠价可享受终身版!现在是下手的最好时机。 引言 移动端开发中,抓包工具已成为必备的工具之一…