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.mzph.cn/news/55071.shtml

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

相关文章

统计动力学笔记(三)整波滤波器(自留用)

整波滤波器 1. 整波滤波器推导2. 线性动态系统输出端的随机信号的方差 整波滤波器是一类能够整合具有任意频谱密度的静定随机信号的滤波器。其输入信号往往是白噪声。 1. 整波滤波器推导 由统计动力学笔记(二)频谱密度与线性随机系统的动态准确性&…

sklearn 笔记: neighbors.BallTree

球树结构 1 基本使用方法 sklearn.neighbors.BallTree(X, leaf_size40, metricminkowski, **kwargs) 2 主要参数说明 X 输入数据,维度为 (n_samples, n_features) n_samples 是数据集中点的数量n_features 是参数空间的维数leaf_size 点数少于多少时&#xff0c…

Mysql-索引

文章目录 索引实现原理最左匹配原则Explain重要字段索引类型数据库的NULL存储索引下推filesort原理参考 索引实现原理 MySQL索引实现解析 最左匹配原则 MySQL索引最左匹配原则是什么 创建一个表格 CREATE TABLE test ( a int NOT NULL AUTO_INCREMENT, b int DEFAULT NU…

数据结构,线性表有哪些

线性表是一种常见的数据结构,它的特点是数据元素之间存在一对一的线性关系。根据线性表的存储方式和实现方式,线性表主要有以下几种: 1. 顺序表(Sequential List): - 通常使用数组实现。 - 元素在内存中是连续…

VR智慧校园资中控管理平台综合提升了课堂教学质量

随着越来越多高校在课堂中引进VR虚拟仿真实训系统,为了方便老师对全班同学进行高效率地管理,VR中控平台应运而生。下面为您详细介绍VR中控平台在课堂教学中的应用优势。 VR中控系统安装在教师总控端,融合了课件、视频、3D动画等丰富的教学资源…

顺序表链表OJ题(1)——【LeetCode】

W...Y的主页 😊 代码仓库分享 💕 前言: 今天我们来回顾一下顺序表与链表,针对这一块我们也有许多OJ题目供大家参考。当我们学习完顺序表链表后避免不了一些习题的练习,这样才能巩固我们学习的内容。 话不多说&#xf…

c++ 中new的用法

当你使用 C 中的 new 操作符时,你实际上在堆内存中分配了一块空间,用于存储一个或多个对象。这与栈内存不同,栈内存的分配和释放是自动管理的,而堆内存需要手动管理。下面我将详细解释如何使用 new 操作符来创建单个对象和对象数组…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)效…

安防监控视频平台EasyCVR视频汇聚平台和税务可视化综合管理应用方案

一、方案概述 为了确保税务执法的规范性和高效性,国家税务总局要求全面推行税务系统的行政执法公示制度、执法全过程记录制度和重大执法决定法制审核制度。为此,需要全面推行执法全过程记录制度,并推进信息化建设,实现执法全过程的…

HAproxy+keepalived高可用配置搭建

目录 一、概述 (一)简介 (二)核心功能 (三)关键特性 (四)应用场景 二、安装 1)拓补图 2)配置 (一)内核配置 (二…

几种在JavaScript中创建对象的方式!

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 字面量方式⭐ 构造函数方式⭐ Object.create()方式⭐ 工厂函数方式⭐ ES6类方式⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门…

【硬件设计】硬件学习笔记一--元器件的介绍与选型

硬件学习笔记一--元器件的选型 一、电阻1.1 电阻的分类1.2 电阻的选型 二、电容2.1 陶瓷电容2.2 钽电容2.3 铝电解电容2.4 电容选型 三、电感3.1 定义与介绍3.2 电感的分类3.3 电感的参数 四、磁珠4.1 磁珠的介绍4.2 磁珠的参数 五、二极管5.1 定义5.2 稳压管5.3 肖特基二极管5…

究竟会不会阻塞?HTML文档渲染中的CSS和JS文件下载探秘

在Web前端开发中,网页的性能优化一直是一个重要的课题。其中,优化网页的加载速度尤为关键。本文将探讨一个常见的问题:HTML文档渲染过程中,CSS文件和JS文件的下载是否会阻塞渲染,以及如何处理这个问题。 阻塞渲染的问…

SystemVerilog Chapter24: Programs

24.1General概述 本条款描述了以下内容: --Programs 声明 --Programs 调度语义 --与时钟块结合使用的Programs --匿名Programs 24.2 Overview module是设计的基本构建块。module可以包含其他模块、网络、变量、子例程声明以及a…

BDA初级分析——可视化基础

一、可视化的作用 数据可视化——利用各种图形方式更加直观地呈现数据的过程 可视化的作用 1、更快地理解数据,找出数据的规律和异常 2、讲出数据背后的故事,辅助做出业务决策 3、给非专业人士提供数据探索的能力 数据分析问题如何通过可视化呈现&am…

数据分析基础-数据可视化02-不同数据类型的可视化概念及原则

将数据空间映射到颜色空间。 数据空间:连续或分类 数据可以被划分为两个主要的数据空间:连续数据和分类数据。这两种数据空间有不同的特点和适用的分析方法。 连续数据(Continuous Data): 连续数据是指可以在某个范…

Orchestrator介绍二 自身高可用性方案

目录 获得 HA 的方法 一 没有高可用性 (No high availability) 使用场景 架构组成 架构图 二 半高可用性(Semi HA) 三 基于共享数据库后端高可用(HA via shared backend) 四 基于Raft协议高可用 五…

webrtc交叉编译嵌入式的方法

背景是我们有嵌入式的需求,需要编译webrtc进入板子上。先说结论,最后是这样config之后就编译通过的: gn gen out/linux-yeshen --args‘target_os“linux” target_cpu“arm64” ffmpeg_branding“Chrome” proprietary_codecstrue is_debugt…

Tableau可视化入门实践-2

目录 折线图1.导入excel文件数据2.建立折线图并添加标签 双轴折线图 折线图 1.导入excel文件数据 2.建立折线图并添加标签 双轴折线图 行标签拖进两个度量建立上下两个折线图 在第二个折线图纵轴,右键选择“双轴”

【mysql】MySQL服务无法启动 NET HELPMSG 3534

MySQL服务无法启动 NET HELPMSG 3534 错误描述寻找原因解决方法 错误描述 mysql版本:8.1.0 mysql安装成功之后,使用net start mysql来启动mysql,然后出现了报错 MySQL服务无法启动 NET HELPMSG 3534 寻找原因 1、在cmd中,进入…