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

ops/2024/12/13 19:46:01/
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/ops/141617.html

相关文章

Java程序员如何深入学习并发编程?

不知道大家今年的金九银十是否有出去面试过&#xff1f;有出去面试的朋友肯定深有感受&#xff0c;像我们刚入行那会面试的加分项现在卷得已经成为了面试的基础题&#xff08;手动狗头&#xff09;。其中最典型的就属这个Java并发编程了。之前一般只有大厂才会有高并发编程相关…

(转)Https证书

SSL验证过程&#xff1a; 计算机网络-自顶向下方法第七版 8.6章 通过根证书 验证 证书有效性。 https://zhuanlan.zhihu.com/p/163591254

Docker--Docker Container(容器)

什么是容器&#xff1f; 简单的讲&#xff0c;容器就是镜像的运行实体。 容器是一个轻量级、可移植的软件单元&#xff0c;它包含了运行应用程序所需的所有依赖项。这些容器是基于镜像创建的&#xff0c;而镜像则是静态的只读文件&#xff0c;包含了应用程序的代码、运行时环…

案例讲解自然语言处理(NLP)

自然语言处理&#xff08;NLP&#xff09;是一种涉及计算机与人类自然语言之间的交互的技术。以下是一些NLP技术的示例&#xff1a; 语言翻译&#xff1a;NLP可以用于将一种语言翻译成另一种语言。Google翻译就是一个使用NLP技术的例子&#xff0c;它可以将输入的文本从一种语言…

大模型qiming面试内容整理-理论知识考察

理论知识考察是大模型及机器学习相关岗位面试中的重要部分,它主要评估候选人对机器学习、深度学习、自然语言处理(NLP)、优化算法等领域的理论理解和基本原理。理论知识考察不仅有助于了解候选人是否具备扎实的基础,还能评估其在面对实际问题时,能够如何运用理论知识来指导…

2.JavaScript基础 - 运算符、if语句、switch语句、while语句、for语句

JavaScript基础 - 运算符、语句 文章目录 JavaScript基础 - 运算符、语句一、运算符1.1 赋值运算符1.2 一元运算符1.3 比较运算符1.4 逻辑运算符1.5 运算符优先级 二、语句2.1 分支语句2.1.1 if 分支语句2.1.2 三元运算符2.1.3 switch 语句 2.2 循环语句2.2.1 while 循环2.2.2 …

SQL项目实战与综合应用——项目设计与需求分析

项目设计与需求分析是软件开发过程中的核心环节&#xff0c;尤其在涉及数据库的应用时&#xff0c;良好的设计将直接影响到项目的可扩展性、性能和维护性。本文将深入探讨数据库设计的最佳实践&#xff0c;结合 C 与 SQL 的实际应用场景&#xff0c;涵盖项目需求收集、数据库设…

控制器硬件在环(或信号 HIL)在电动汽车设计、测试和制造

交通电气化正在改变车辆的设计、测试和制造方式。控制器硬件在环 (C-HIL)&#xff0c;也称为信号 HIL&#xff0c;已成为测试电力电子控制固件的替代方法&#xff0c;它易于使用&#xff0c;通过自动化实现广泛的测试覆盖范围&#xff0c;并且成本相对较低。包括功率流的测试方…