Spring Boot接收从前端传过来的数据常用方式以及处理的技巧

server/2024/12/14 4:10:30/
Spring Boot接收从前端传过来的数据常用方式以及处理的技巧
  • 一、params 传参
      • restful风格的请求
  • 二、Body中的form-data 传参
  • 三、Body中的raw的json格式 传参

一、params 传参

参数是会拼接到url后面的请求

场景规范:url后面的key值<=3个参数的时候,使用params 传参

支持的请求方式:get(正规的是get方式)、post 都行

例如:
http://localhost:8080/simpleParamname=Tom&age=10

在postman里面的体现为
在这里插入图片描述

后端接收的接口写法如下
普遍都是使用第一种和第二种去接收

   //(1)直接接收,只要key值相同@RequestMapping("/simpleParam")public String simpleParam(String name,Integer age){System.out.println("name= "+name);System.out.println("age= "+ age);return "success";}//(2)直接接收,值不同可以使用@RequestParam("name");取别名@RequestMapping("/simpleParam")public String simpleParam(@RequestParam("name")String username ,Integer age){System.out.println("username = "+username );System.out.println("age= "+ age);return "success";}//(3)实体类接收,注意接收的实体类里面的属性值要和请求url中的key值一样哦@RequestMapping("/simpleParam")public String simpleParam(User user){System.out.println(user);return "success";}//(4)最牛皮的,HttpServletRequest来接受@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){String name= request.getParameter("name");String age= request.getParameter("age");return "success";
restful风格的请求

get请求:localhost:8080/users/add3tom/123456

后端接收的接口写法如下

//(1)使用 @PathVariable
@RequestMapping("add3/{name}/{password}")public String add3(@PathVariable("name") String username, @PathVariable String password){System.out.println(username+" / "+password);return "success";}

二、Body中的form-data 传参

form-data

当需要发送表单数据或上传文件

场景规范:发送表单数据或上传文件

支持的请求方式
只是表单数据的话,get、post (正规的是post方式)都行;
如果存在文件数据,必须是post请求

(1)场景一:只是表单数据(那就和params 传参的后端接收法一样,就不重复写了)

在postman里面的体现为
在这里插入图片描述

(2)场景二:存在文件数据

在postman里面的体现为
在这里插入图片描述

后端接收的接口写法如下

   //(1)使用 HttpServletRequest@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request) throws IOException {  if (request instanceof MultipartHttpServletRequest) {  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  // 获取文件  MultipartFile file = multipartRequest.getFile("file");  String fileName = file.getOriginalFilename();  byte[] fileBytes = file.getBytes();  // 处理文件...  // 获取其他字段  String username = multipartRequest.getParameter("name");  return "File uploaded: " + fileName + ", User: " + username ;  } else {  return "Error: Form must have enctype=multipart/form-data.";  }  }  //(2)使用 @RequestPart@RequestMapping("/simpleParam")public String simpleParam(@RequestPart("file") MultipartFile file,  @RequestPart("name") String username) throws IOException {  String fileName = file.getOriginalFilename();  // 处理文件...  return "File uploaded: " + fileName + ", User: " + username;  }  

三、Body中的raw的json格式 传参

支持的请求方式:post (最常见post方式)、PUT和PATCH

在这里插入图片描述
后端接收的接口写法如下

   //(1)使用@RequestBody注解接收JSON对象@RequestMapping("/simpleParam")public String simpleParam(@RequestBody User user) {  // 使用User对象中的值  return "Received JSON: " + user.toString();  }  

实体类为:

 public static class User{  private String name;  private Integer age;//单个实体类 private Cat cat;//List实体类private List<Course> courseList;@Overridepublic String toString() {return "User{" +"name='" + name+ ''' +", age='" + age+ ''' +", cat=" + cat +", courseList=" + courseList +'}';}
}

参考文章
【1】Spring Boot接收从前端传过来的数据常用方式以及处理的技巧
https://blog.csdn.net/aiwokache/article/details/129037252


http://www.ppmy.cn/server/149999.html

相关文章

深入探讨Python正则表达式

则表达式&#xff08;Regular Expressions&#xff0c;简称 regex 或 regexp&#xff09;是一种强大的文本处理工具&#xff0c;可以用于搜索、匹配、替换、分割等操作。Python 的 re 模块提供了丰富的正则表达式功能。 一、正则表达式的基础知识 正则表达式是一种模式匹配工具…

VLA模型

目录 引言1. 机器人大模型面临的挑战2. 目前的数据集2.1 RT-12.2 Open X-Embedding2.3 DROID 3. 目前的VLA模型3.1 Goat3.2 RT-13.2.1 总体架构3.2.2 效果 3.3 RT-23.3.1 总体架构3.3.2 效果 3.4 RT-X3.4.1 模型效果1). RT-1-X2). RT-2-X 3.5 RT-H3.5.1 总体架构3.5.2 效果 3.6…

【机器人】控制之稳定性判定: 李雅普诺夫Lyapunov (4) 李函数设计再举例

图中的动力学方程和 Lyapunov 函数构造方式是基于能量的物理意义&#xff0c;以及该系统的特性推导出来的。以下详细解释为什么可以用图中的 Lyapunov 函数 VV 来描述该动力学方程的特性。 1. 动力学方程的意义 2. Lyapunov 函数的物理意义 3. 为什么可以用这个 Lyapunov 函数表…

PCDN加速对游戏的优势

PCDN&#xff08;Peer-to-CDN&#xff09;对游戏加速确实具有显著优势。以下是对这一观点的详细解释&#xff1a; 一、PCDN技术原理 PCDN是一种基于P2P&#xff08;Peer-to-Peer&#xff09;技术的内容分发网络&#xff0c;通过挖掘和利用边缘网络的闲置资源&#xff0c;构建一…

如何在 Docker 中查看日志?

在 Docker 中查看容器的日志是一个常见的任务&#xff0c;可以帮助你调试应用程序、监控其运行状况以及解决可能出现的问题。Docker 提供了 docker logs 命令来方便地访问容器的标准输出和标准错误流。以下是使用 docker logs 的一些基本方法和其他获取日志信息的方式&#xff…

HTML技术贴:深入理解与实践

1. 引言 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是构建网页和网上应用的标准标记语言。它定义了网页内容的结构和意义&#xff0c;由一系列元素组成&#xff0c;这些元素告诉浏览器如何展示内容。本技术贴旨在深入探讨HTML的核心技…

读书笔记-《Redis设计与实现》(一)数据结构与对象(上)

翻开这本书&#xff0c;又一次体会到技术迭代更新之快。 这本书是基于 Redis 3.0 开发版编写的&#xff0c;截至本文编写时&#xff0c;Redis Software 版本已经来到了 7.8.2。经过多次迭代&#xff0c;Redis 底层已发生不少变化&#xff0c;因此&#xff0c;我们在学习本书时…

在Java中几种常用数据压缩算法的实现及其优劣势

在Java中几种常用数据压缩算法的实现及其优劣势 背景&#xff1a;项目需要引入Redis作为缓存组件&#xff0c;需要考虑到Redis的内存占用&#xff08;机器内存越大&#xff0c;成本越高&#xff09;&#xff0c;因此需要引入数据压缩。 1、介绍 数据压缩是计算机领域中一项重要…