Java接收前端请求体方式

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


文章目录

      • @RequestBody
      • @PathVariable
      • @RequestParam
      • @Validated
        • 方法参数校验
        • 方法返回值校验
      • @RequestHeader
      • @HttpServletRequest


## Java接收前端请求体的方式

请求体(Request Body)是HTTP请求中的一部分,用于传输请求的数据;在HTTP请求中,请求体通常用于POST、PUT等需要传递数据的请求方法

  • 表单数据(Form Data):请求体以键值对的形式表示,使用&符号分隔不同字段;例如:username=johndoe&password=123456
  • JSON数据:请求体以JSON(JavaScript Object Notation)格式表示,通常用于传递结构化的数据;例如:{"name": "John Doe", "email": "johndoe@example.com"}
  • 文件上传:请求体用于传输文件的二进制数据;通常会使用特定的编码方式对文件进行处理,如multipart/form-data

@RequestBody

@RequestBody:Spring框架中用于接收前端请求体的注解,可以将请求体的内容绑定到Java对象中

http://localhost:8080/api/search?code=123
	@GetMapping("/search")public void  handleRequest(@RequestParam("code") String code) {// 处理路径参数}

@PathVariable

@PathVariable:Java中接收前端请求中的路径参数;路径参数是指URL中的一部分,它们以占位符的形式存在于API的URL中,可以在Java代码中动态获取和使用

http://localhost:8080/api/example/123
	@GetMapping("/example/{id}")public void  handleRequest(@PathVariable("id") String id) {// 处理路径参数}

@RequestParam

@RequestParam注解:接收查询字符串参数或表单参数;可以将请求中的参数值绑定到方法的参数上;该方式适用于获取特定参数的值

@RequestParam(value="参数名",required="true/false",defaultValue="")// value:参数名// required:是否包含该参数,默认为true:请求路径必须包含该参数,否则报错// defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
http://localhost:8080/api/example?id=123
	@GetMapping("/example")public void  handleRequest(@RequestParam(value="id",required="true")) {// 处理路径参数}
http://localhost:8080/api/example?123
required= false:表示请求中可以没有该参数,方法参数将被设置为 null
	@GetMapping("/example")public void  handleRequest(@RequestParam(value="id",required="false")) {// 处理路径参数}
http://localhost:8080/api/example?id=1
defaultValue="hello":接受参数默认为123,有参数传递则为请求参数
	@GetMapping("/example")public void  handleRequest(@RequestParam(value="id",required="false",defaultValue="123")) {// 处理路径参数}

@Validated

@Validated注解:方法参数或方法返回值进行校验

方法参数校验

方法参数校验,应用于控制器的处理方法,验证传入参数是否满足指定校验规则

@Validated注解应用在方法的参数上,对request参数进行校验;校验的规则可以通过在RequestDto类的属性上使用注解@NotNull@NotBlank等定义

@PostMapping("/example")
public void handleRequest(@Validated @RequestBody RequestDto request) {// 处理请求
}

方法返回值校验

处理方法的执行完毕,可以对方法返回对象进行校验,确保返回数据满足指定校验规则

@Validated注解应用在方法的返回值上,对ResponseDto对象进行校验;校验规则通过ResponseDto类的属性上使用注解来定义

@GetMapping("/example/{id}")
public @Validated ResponseDto handleRequest(@PathVariable("id") String id) {// 处理请求return responseDto;
}

@RequestHeader

@RequestHeader注解:接收请求头的值,可以将请求头中指定的信息绑定到方法的参数上

@GetMapping("/example")
public void handleRequest(@RequestHeader("User-Agent") String userAgent) {// 处理请求头的值
}

@HttpServletRequest

@HttpServletRequest注解:方法参数中注入HttpServletRequest对象,通过它来获取完整的请求信息,包括请求体、请求头、路径参数和查询字符串参数等

@PostMapping("/example")
public void handleRequest(HttpServletRequest request) {// 处理请求信息
}

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


在这里插入图片描述

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

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

相关文章

手写Vue3响应式数据原理

Vue3响应式数据 前言一、proxy是什么?1.1 proxy基本使用 二、实现最基本的reactive函数三、实现基本响应式系统四、完善基本响应式系统4.1 执行每一个副作用函数4.2 实现依赖收集4.2.1 基本实现 4.3 改进桶结构 五、相关面试题1.Object.defineProperty 和 Proxy 的区…

WPS office 最新未公开 0Day漏洞警示

一、事件描述 近日,网传监测发现WPS Office for Windows版本 存在0day漏洞,攻击者可以利用该0day漏洞在受害者主机上执行任意恶意文件,高危级别,官方尚未对此发布修复漏洞,目前建议只能临时弃用wps或者不要点开未知文件…

设计模式——组合模式

什么是组合模式 组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以…

10*1000【2】

知识: -----------金融科技背后的技术---------------- -------------三个数字化趋势 1.数据爆炸:internet of everything(iot);实时贡献数据;公有云服务->提供了灵活的计算和存储。 2.由计算能力驱动的&#x…

无涯教程-PHP - Filtered反序列化

PHP 7引入了Filtered unserialize()函数&#xff0c;以在对不受信任的数据上的对象进行反序列化时提供更好的安全性。 <?phpclass MyClass1 { public $obj1prop; }class MyClass2 {public $obj2prop;}$obj1new MyClass1();$obj1->obj1prop1;$obj2new MyClass2();$obj…

【大模型AIGC系列课程 2-2】大语言模型的“第二大脑”

1. 大型语言模型的不足之处 很多人使用OpenAI提供的GPT系列模型时都反馈效果不佳。其中一个主要问题是它无法回答一些简单的问题。 ● 可控性:当我们用中文问AI一些关于事实的问题时,它很容易编造虚假答案。 ● 实时性:而当你询问它最近发生的新闻事件时,它会干脆地告诉你…

基于PHP的电脑商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的电脑商城系统 一 介绍 此电脑商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台对电脑商品&#xff0c;用户&#xff0c;订单&a…

使用 Elasticsearch 轻松进行中文文本分类

本文记录下使用 Elasticsearch 进行文本分类&#xff0c;当我第一次偶然发现 Elasticsearch 时&#xff0c;就被它的易用性、速度和配置选项所吸引。每次使用 Elasticsearch&#xff0c;我都能找到一种更为简单的方法来解决我一贯通过传统的自然语言处理 (NLP) 工具和技术来解决…

maven工具-maven的使用-镜像仓库、本地仓、IDEA使用maven

Maven 一、为什么使用maven 添加第三方jar包jar包之间的依赖关系处理jar包之间的冲突获取第三方jar包将项目拆分成多个工程模块实现项目的分布式部署 二、maven简介 ​ Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的…

网络安全---负载均衡案例

一、首先环境配置 1.上传文件并解压 2.进入目录下 为了方便解释&#xff0c;我们只用两个节点&#xff0c;启动之后&#xff0c;大家可以看到有 3 个容器&#xff08;可想像成有 3 台服务器就成&#xff09;。 二、使用蚁剑去连接 因为两台节点都在相同的位置存在 ant.jsp&…

Qt应用开发(拓展篇)——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。 QCustomPl…

在ARM服务器上一键安装Proxmox VE(以在Oracle Cloud VPS上为例)(甲骨文)

前言 如题&#xff0c;具体用到的说明文档如下 virt.spiritlhl.net 具体流程 首先是按照说明&#xff0c;先得看看自己的服务器符不符合安装 Proxmox VE的条件 https://virt.spiritlhl.net/guide/pve_precheck.html#%E5%90%84%E7%A7%8D%E8%A6%81%E6%B1%82 有提到硬件和软…