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