SpringBoot接收参数的8种方式

文章目录

  • 1. 直接把请求参数写在方法的形参中
  • 2. 封装一个bean直接来接收
  • 3. 原生的HttpServletRequest接收
  • 4. @PathVariable获取rest风格路径参数
  • 5. @RequestParam绑定请求参数到方法形参
  • 6. @RequestBody绑定请求参数到方法形参
  • 7. @RequestHeader
  • 8. @CookieValue


1. 直接把请求参数写在方法的形参中

  • 此场景适用于请求参数较少的情况
  • 任何请求都可以
    @RequestMapping("/fun1")public Book fun1(String name, Long id){log.info("{}  {}",id,name);Book book=new Book(id, name);return book;}

在这里插入图片描述


2. 封装一个bean直接来接收

    @RequestMapping("/fun2")public Book fun2(Book book){log.info("book={}",book);return book;}

在这里插入图片描述

3. 原生的HttpServletRequest接收

  • 同时适用get、post方法
  • 是整个请求,可以获取到所有的数据
  • 可以和其他的注解配合适用
  • HttpServletRequest、HttpServletResponse都是内置对象,可以使用
    @RequestMapping("/fun3")public Book fun3(HttpServletRequest request){log.info("{}  {}",request.getParameter("id"),request.getParameter("name"));return new Book(Long.parseLong(request.getParameter("id")),request.getParameter("name"));}
        //  key-value 类型Map<String, String[]> map = request.getParameterMap();//  路径参数String pathInfo = request.getPathInfo();//  body内容ServletInputStream inputStream = request.getInputStream();

在这里插入图片描述

4. @PathVariable获取rest风格路径参数

    @RequestMapping("/fun4/{id}/{name}")public Book fun4(@PathVariable long id,@PathVariable String name){log.info("{}  {}",id,name);Book book=new Book(id, name);return book;}

在这里插入图片描述

5. @RequestParam绑定请求参数到方法形参

    @RequestMapping("/fun6")public Book fun6(@RequestParam("name") String name,@RequestParam("id") Long id){log.info("{}  {}",id,name);Book book=new Book(id, name);return book;}
当请求参数username或者password不存在时会有异常发生,可以通过设置属性required=false解决
@RequestParam(value="username", required=false)

在这里插入图片描述

6. @RequestBody绑定请求参数到方法形参

  • 只能Post方法
  • 参数必须Json字符串
  • Body只能有一个
    @RequestMapping("/fun7")public Book fun7(@RequestBody Book book){log.info("book={}",book);return book;}

在这里插入图片描述

7. @RequestHeader

  • RequestHeader主要用来获取请求当中的请求头
// 方式1:获取单个header属性
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader("user-id") String userId){}
//方式2:获取所有header属性
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader Map<String, String> headers){}
//方式3 获取header对象
@RequestMapping("/geteHeader")
public void getHeader(@RequestHeader HttpHeaders headers){}

8. @CookieValue

  • 使用@CookieValue注解来获得指定的 Cookie 的值。
@GetMapping("park/getCookie")public String getCookieValue(@CookieValue("jid") String jId) {System.out.println(jId);return "success";}

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

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

相关文章

C语言:整型提升

一、什么是整型提升 C语言的整型算术运算至少是以缺省整型类型的精度来进行的。 为了达到这个精度&#xff0c;算术运算表达式中的 字符型char 和 短整型short 需要被转换为普通整型&#xff0c;这种转换成为整型提升。 二、整型提升的意义 表达式的整型运算需要在CPU相应的运算…

华为数通方向HCIP-DataCom H12-821题库(单选题:41-60)

第41题 以下关于IS-IS协议说法错误的是? A、IS-IS协议支持CLNP网络 B、IS-IS 协议支持IP 网络 C、IS-IS 协议的报文直接由数据链路层封装 D、IS-IS协议是运行在AS之间的链路状态协议 答案&#xff1a;D 解析&#xff1a; 关于IS-IS协议的说法错误是D. IS-IS协议是运行在A…

Windows运行Spark所需的Hadoop安装

解压文件 复制bin目录 找到winutils-master文件hadoop对应的bin目录版本 全部复制替换掉hadoop的bin目录文件 复制hadoop.dll文件 将bin目录下的hadoop.dll文件复制到System32目录下 配置环境变量 修改hadoop-env.cmd配置文件 注意jdk装在非C盘则完全没问题&#xff0c;如果装在…

【sql】MongoDB的增删改查分页条件等

【sql】MongoDB的增删改查分页条件等 //增 //新增数据2种方式 db.msg.save({"name":"springboot&#x1f600;"}); db.msg.insert({"name":"mango good"}); db.msg.save({"name":"springboot",type:"工具书&…

线性代数-矩阵的本质

线性代数-矩阵的本质 线性代数-矩阵的本质

React经典面试题 附详细答案(23年8月)

React中的组件生命周期有哪些&#xff1f; 答&#xff1a;React中的组件生命周期包括挂载阶段、更新阶段和卸载阶段。具体的生命周期方法有&#xff1a; 挂载阶段&#xff1a;constructor、render、componentDidMount更新阶段&#xff1a;render、componentDidUpdate卸载阶段&…

使用Java和ChatGPT Api来创建自己的大模型聊天机器人

文章目录 前言ChatGPT Api简析Chatfunction call Embeddings 制作机器人上下文向量数据库 更多场景介绍扩展阅读 前言 什么是大模型&#xff1f; 大型语言模型&#xff08;LLM&#xff09;是一种深度学习模型&#xff0c;它使用大量数据进行预训练&#xff0c;并能够通过提示工…

python中的matplotlib画折线图(数据分析与可视化)

先导包&#xff08;必须安装了numpy 、pandas 和matplotlib才能导包&#xff09;&#xff1a; import numpy as np import pandas as pd import matplotlib.pyplot as plt核心代码&#xff1a; import numpy as np import pandas as pd import matplotlib.pyplot as pltpd.se…

用keil的时候没有安装对应MCU的库,以STM32F103F为例

安装keil的时候没有用到这个芯片就没有安装对应的库。重新安装之后遇到的几个坑&#xff1a; 打开keil显示没有这个型号&#xff0c;解决方法是安装对应的库。STM32F103F要安装Keil.STM32F1xx_DFP.2.4.1.pack。 安装完库之后&#xff0c;点击Option for target&#xff0c;查看…

机器学习-使用 XGBoost 时间序列预测能源消耗

简而言之&#xff0c;时间序列预测是根据以前的历史数据预测未来值的过程。目前使用时间序列预测的最热门领域之一是加密货币市场&#xff0c;人们希望预测比特币或以太坊等流行加密货币的价格在未来几天甚至更长时间内将如何波动。另一个现实世界的案例是能源消耗预测。尤其是…

智能井盖传感器,物联网智能井盖系统

随着城市人口的不断增加和城市化进程的不断推进&#xff0c;城市基础设施的安全和可靠性变得愈发重要&#xff0c;城市窨井盖作为城市基础设施重要组成部分之一&#xff0c;其安全性事关城市安全有序运行和居民生产生活安全保障。 近年来&#xff0c;各地都在加强城市窨井盖治理…

HTTPS 中间人攻击

HTTPS 中间人攻击 中间人攻击过程 通讯过程 客户端——中间人——服务器 过程如下 服务器向客户端发送公钥攻击者截获公钥&#xff0c;保留在自己手上然后攻击者自己生成一个【伪造的】公钥&#xff0c;发给客户端客户端收到【伪造的】公钥后&#xff0c;利用【伪造的】公…

软考高级系统架构设计师系列论文八十六:论企业应用集成

软考高级系统架构设计师系列论文八十六:论企业应用集成 一、企业应用集成相关知识点二、摘要三、正文四、总结一、企业应用集成相关知识点 软考高级系统架构设计师系列之:企业集成平台技术的应用和架构设计二、摘要 2022年10月,我参加了***车站综合信息平台项目的开发,承…

【2023新教程】树莓派定时自动拍照并上传腾讯云对象存储COS

1 换源 仅适用于Release date: May 3rd 2023、Debian version: 11 (bullseye)这个树莓派OS版本&#xff0c;其他版本不保证有效。 首先使用如下命令&#xff0c;查看自己树莓派的架构。 uname -a结果如下&#xff1a; 如果红圈处显示为aarch64&#xff0c;使用命令sudo na…

【TypeScript】声明文件

在 TypeScript 中&#xff0c;声明文件&#xff08;Declaration Files&#xff09;用于描述已有 JavaScript 代码库的类型信息&#xff0c;以便在 TypeScript 项目中使用这些代码库时获得类型支持。 当你在 TypeScript 项目中引用外部 JavaScript 模块或库时&#xff0c;可能会…

设计模式之组合模式(Composite)的C++实现

1、组合模式的提出 在软件开发过程中&#xff0c;使用者Client过多依赖所操作对象内部的实现结构&#xff0c;如果对象内部的实现结构频繁发生变化&#xff0c;则使用者的代码结构将要频繁地修改&#xff0c;不利于代码地维护和扩展性&#xff1b;组合模式可以解决此类问题。组…

mybatis升级到mybatis-plus

升级plus mybatis升级到mybatis-plus&#xff0c;两个共存 之前依赖只有mybatis,没有plus 做法&#xff1a; 排除mybatis部门依赖&#xff0c;添加新的plus 修改之后的依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-b…

【蔚来汽车】蔚来20220713第三题-旅游规划 <模拟、滑动窗口>

【蔚来汽车】蔚来20220713第三题-旅游规划 牛牛对 n 个城市旅游情况进行了规划&#xff0c;已知每个城市有两种属性 x 和 y &#xff0c;其中 x 表示去第 i 号城市的花费&#xff0c;y 表示在第 i 号城市游玩后会得到的开心值。   现在牛牛希望从中挑选出一些城市去游玩&…

A Survey on Large Language Models for Recommendation

本文是LLM系列的文章&#xff0c;针对《A Survey on Large Language Models for Recommendation》的翻译。 大模型用于推荐的综述 摘要1 引言2 建模范式和分类3 判别式LLM用于推荐4 生成式LLM用于推荐5 发现6 结论 摘要 大型语言模型&#xff08;LLM&#xff09;作为自然语言…

ChatGPT计算机科学与技术专业的本科毕业论文,2000字。论文查重率低于30%。

目录 摘要 Abstract 绪论 1.1 研究背景 1.2 研究目的和意义 2.1 ChatGPT技术概述 2.2 ChatGPT技术的优缺点分析 2.2.1 优点 2.2.2 缺点 摘要 本论文围绕ChatGPT展开&#xff0c;介绍了该技术的发展历程、特点及应用&#xff0c;分析了该技术的优缺点&#xff0c;提出了…