SpringBoot接收参数的方式

  1. Get 请求
    1.1 以方法的形参接收参数
    1.这种方式一般适用参数比较少的情况
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(String name,String phone) {log.info("name:{}",name);log.info("phone:{}",phone);return  Result.success(null);}
}

2.参数用 @RequestParam 标注,表示这个参数需要必传,否则会报错。

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(@RequestParam String name,@RequestParam String phone) {log.info("name:{}",name);log.info("phone:{}",phone);return  Result.success(null);}
}

在这里插入图片描述

1.2 以实体类接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(User user) {log.info("name:{}",user.getName());log.info("phone:{}",user.getPhone());return  Result.success(null);}
}

在这里插入图片描述

注:Get 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。

1.3 通过 HttpServletRequest 接收参数
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(HttpServletRequest request) {String name = request.getParameter("name");String phone = request.getParameter("phone");log.info("name:{}",name);log.info("phone:{}",phone);return  Result.success(null);}
}

在这里插入图片描述
1.4 通过 @PathVariable 注解接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail/{name}/{phone}")public Result<User> getUserDetail(@PathVariable String name,@PathVariable String phone) {log.info("name:{}",name);log.info("phone:{}",phone);return  Result.success(null);}
}

在这里插入图片描述
1.5 接收数组参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(String[] names) {Arrays.asList(names).forEach(name->{System.out.println(name);});return  Result.success(null);}
}

在这里插入图片描述
1.6 接收集合参数
springboot 接收集合参数,需要用 RequestParam 注解绑定参数,否则会报错!!

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@GetMapping("/detail")public Result<User> getUserDetail(@RequestParam List<String> names) {names.forEach(name->{System.out.println(name);});return  Result.success(null);}
}

在这里插入图片描述
2. Post 请求
2.1 以方法的形参接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(String name,String phone) {log.info("name:{}",name);log.info("phone:{}",phone);return  Result.success(null);}
}

在这里插入图片描述
注:和 Get 请求一样,如果方法形参用 RequestParam 注解标注,表示这个参数需要必传。

2.2 通过 param 提交参数,以实体类接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(User user) {log.info("name:{}",user.getName());log.info("phone:{}",user.getPhone());return  Result.success(null);}
}

注:Post 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。
在这里插入图片描述
2.3 通过 HttpServletRequest 接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(HttpServletRequest httpServletRequest) {log.info("name:{}",httpServletRequest.getParameter("name"));log.info("phone:{}",httpServletRequest.getParameter("phone"));return  Result.success(null);}
}

在这里插入图片描述
2.4 通过 @PathVariable 注解进行接收

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save/{name}")public Result<User> getUserDetail(@PathVariable String name) {log.info("name:{}",name);return  Result.success(null);}
}

在这里插入图片描述
2.5 请求体以 form-data 提交参数,以实体类接收参数
form-data 是表单提交的一种方式,比如常见的登录请求。

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(User user) {log.info("name:{}",user.getName());log.info("phone:{}",user.getPhone());return  Result.success(null);}
}

在这里插入图片描述
2.6 请求体以 x-www-form-urlencoded 提交参数,以实体类接收参数
x-www-form-urlencoded 也是表单提交的一种方式,只不过提交的参数被进行了编码,并且转换成了键值对。

例如你用form-data 提交的参数:
name: 知否君
age: 22
用 x-www-form-urlencoded 提交的参数:

name=%E5%BC%A0%E4%B8%89&age=22

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(User user) {log.info("name:{}",user.getName());log.info("phone:{}",user.getPhone());return  Result.success(null);}
}

在这里插入图片描述
2.7 通过 @RequestBody 注解接收参数
注:RequestBody 注解主要用来接收前端传过来的 body 中 json 格式的参数。

2.7.1 接收实体类参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestBody User user) {log.info("name:{}",user.getName());log.info("phone:{}",user.getPhone());return  Result.success(null);}
}

在这里插入图片描述
2.7.2 接收数组和集合
接收数组

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestBody String[] names) {Arrays.asList(names).forEach(name->{System.out.println(name);});return  Result.success(null);}
}

接收集合

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestBody List<String> names) {names.forEach(name->{System.out.println(name);});return  Result.success(null);}
}

在这里插入图片描述
2.8 通过 Map 接收参数
1.以 param 方式传参, RequestParam 注解接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestParam Map<String,Object> map) {System.out.println(map);System.out.println(map.get("name"));return  Result.success(null);}
}

在这里插入图片描述
2.以 body json 格式传参,RequestBody 注解接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestBody Map<String,Object> map) {System.out.println(map);System.out.println(map.get("name"));return  Result.success(null);}
}

在这里插入图片描述
2.9 RequestBody 接收一个参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@PostMapping("/save")public Result<User> getUserDetail(@RequestBody String name) {System.out.println(name);return  Result.success(null);}
}

在这里插入图片描述
3. Delete 请求
3.1 以 param 方式传参,以方法形参接收参数

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@DeleteMapping("/delete")public Result<User> getUserDetail(@RequestParam String name) {System.out.println(name);return  Result.success(null);}
}

在这里插入图片描述

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

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

相关文章

zip解压异常java.lang.IllegalArgumentException: MALFORMED处理

使用hutool解压zip包时出错&#xff1a; //压缩包解压到固定目录 ZipUtil.unzip(tempZipFile,dir);在解压文件的时候报错&#xff0c;原因是压缩文件中有中文&#xff1b;导致错误&#xff0c;解决办法是设置编码&#xff1a; ZipFile tempZipFile new ZipFile(zipFile, Cha…

【Linux】详解动静态库的制作和使用动静态库在系统中的配置步骤

一、库的作用 1、提高开发效率&#xff0c;让开发者所有的函数实现不用从零开始。 2、隐藏源代码。 库其实就是所有的.o文件用特定的方式进行打包形成一个文件&#xff0c;各个.o文件包含了源代码中的机器语言指令。 二、动态库和静态库的制作和使用 2.1、静态库的制作和使用…

如何监控特权帐户,保护敏感数据

IT基础设施的增长导致员工可以访问的凭据和资源数量急剧增加。每个组织都存储关键信息&#xff0c;这些信息构成了做出关键业务决策的基石。与特权用户共享这些数据可以授予他们访问普通员工没有的凭据的权限。如果特权帐户凭证落入不法分子之手&#xff0c;它们可能被滥用&…

【重学C语言】三、C语言最简单的程序

【重学C语言】三、C语言最简单的程序 最简单的程序头文件使用尖括号 < >使用双引号 ""区别与注意事项示例 主函数认识三个错误 常量和变量常量ASCII 码表转义字符 关键字数据类型关键字存储类关键字修饰符关键字控制流程关键字函数相关关键字其他关键字 变量变…

Python中批量修改文件名,去除某些内容

环境&#xff1a;Window10 Python3.9 PyCharm(2023.1.3) -------------------------------------****************** ** *********************----------------------------------------- 这是在Python中批量将指定文件夹下相似的文件名&#xff0c;提取文件名有效信息&am…

llama.cpp运行qwen0.5B

编译llama.cp 参考 下载模型 05b模型下载 转化模型 创建虚拟环境 conda create --prefixD:\miniconda3\envs\llamacpp python3.10 conda activate D:\miniconda3\envs\llamacpp安装所需要的包 cd G:\Cpp\llama.cpp-master pip install -r requirements.txt python conver…

什么!Intel/AMD/Apple Silicon也能本地部署的Llama工具来了

主流的LLM都需要通过CUDA才能高效的运行在本地&#xff0c;但是随着Github上出现了Llama.cpp这个神器&#xff0c;一切都改变了。它通过AVX指令和MPI来实现CPU上并行计算&#xff0c;从而在本地计算机高效地运行各种主流的类Llama模型。同时它也支持metal&#xff0c;使得Apple…

go包下载时报proxyconnect tcp: dial tcp 127.0.0.1:80: connectex错误的解决方案

一大早的GoLand就开始抽风了&#xff0c;好几个文件import都红了&#xff0c;于是我正常操作点击提示的sync&#xff0c;但是却报了一堆错&#xff1a; go: downloading google.golang.org/grpc v1.61.1 go: downloading google.golang.org/genproto v0.0.0-20240228224816-df9…

LeetCode-142. 环形链表 II【哈希表 链表 双指针】

LeetCode-142. 环形链表 II【哈希表 链表 双指针】 题目描述&#xff1a;解题思路一&#xff1a;快慢指针 判断是否有环见解题思路二&#xff1a;set()解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如…

C++重载和模板

重载与模板 函数模板可以被另一个模板或一个普通非模板函数重载。 与往常一样&#xff0c;名字相同的函数必须具有不同数量或类型的参数。 如果涉及函数模板&#xff0c;则函数匹配规则会在以下几方面受到影响&#xff1a; 对于一个调用&#xff0c;其候选函数包括所有模板…

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 为更好的培养空航天产业人才&#xff0c;汇聚航空教育产业创新科技&#xff0c;丰富和完善航…

某音a_bogus 流程vmp分析

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 仅研究。网站链接自己去找。 前言 这里a_bogus 又是个vmp。 还是个多层嵌套…

​LeetCode解法汇总1379. 找出克隆二叉树中的相同节点

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你两棵二叉树&#xff0c;原始树 origi…

[Arduino学习] ESP8266读取DHT11数字温湿度传感器数据

目录 1、传感器介绍 2、接线 3、DHT.h库 1、传感器介绍 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;是简单环境监测项目的理想选择。 温度分辨率为1C&#xff0c;相对湿度为1&#xff05;。温度范围在0C到50C之间&#xff0c;湿度的测…

Protobuf 二进制文件学习及解析

0. 简介 protobuf也叫protocol buffer是google 的一种数据交换的格式&#xff0c;它独立于语言&#xff0c;独立于平台。google 提供了多种语言的实现&#xff1a;java、c#、c、go 和 python&#xff0c;每一种实现都包含了相应语言的编译器以及库文件。 由于它是一种二进制的…

新人程序员必备在线工具推荐(cron、加解密、JSON、AI)

程序员必备在线工具推荐 俗话说的好&#xff0c;工欲善其事必先利其器&#xff0c;下面我就来给大家分享一下我个人常用的工具。也欢迎大家在评论区分享自己喜欢的工具。✈️ 1 在线cron表达式&#xff1a;cron 在日常开发中&#xff0c;我们难免会遇到一些定时任务的场景&…

「每日跟读」句型公式 第2篇

「每日跟读」句型公式 第2篇 1. I’m thinking about____ 我在考虑____ I’m thinking about my future career (我正在思考我未来的职业) I’m thinking about our marriage (我在考虑我们的婚姻) I’m thinking about taking a vacation (我在考虑度一个假) I’m think…

tcpdump + wireshark 服务器抓包分析

tcpdump wireshark 服务器抓包分析 1.tcpdump安装2.tcpdump使用3.安装wireshark4.使用wireshark 本文用以总结使用tcpdump进行抓包&#xff0c;然后使用wireshark工具打开抓包出来的pacp文件进行分析。通过tcpdump可以实时监控到linux服务器中tcp和http、https等通讯的内容和信…

人工智能上手 Pytorch

人工智能上手 Pytorch 1、人工智能框架历史走向 2015年&#xff0c; caffe&#xff0c;优势配置简单&#xff0c;缺点安装麻烦&#xff0c;且不更新维护 2016年&#xff0c;tensorflow 1.x&#xff0c;定义太严格&#xff0c;很复杂。开发成本高。简单的任务&#xff0c;也很…

[Python学习篇] Python创建项目

新建项目 打开开发工具 PyCharm 选择 New Project 目录结构如下 运行 hello world 选中项目&#xff0c;右键 New -> Python File 进行创建文件 运行项目