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


    一、params 传参

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

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

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

    例如:
    http://localhost:8080/simpleParam?name=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";
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    二、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("username");  
      
                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("username") String username) throws IOException {  
            String fileName = file.getOriginalFilename();  
            // 处理文件...  
      
            return "File uploaded: " + fileName + ", User: " + username;  
        }  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

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

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

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

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

    实体类为:

     public static class User{  
            private String name;  
            private Integer age;
            //单个实体类 
            private Cat cat;
            //List实体类
            private List<Course> courseList;
     
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name+ '\'' +
                    ", age='" + age+ '\'' +
                    ", cat=" + cat +
                    ", courseList=" + courseList +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

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

  • 相关阅读:
    怎么压缩pdf文件大小?详细压缩步骤
    【计算机毕设之基于Java的高校毕业生就业质量数据分析系统-哔哩哔哩】 https://b23.tv/3T9UIrM
    Qt篇——QTableWidget选中多行右键删除
    SpringBoot 3.0 新特性,内置声明式 HTTP 客户端
    【STC8A8K64D4开发板】——STC8A8K64D4开发板介绍
    MySQL表的增删改查(进阶)
    山西深度研学游之长城之行
    Redis缓存使用技巧和设计方案
    python 基本语法(二)
    IOS开发学习日记(十七)
  • 原文地址:https://blog.csdn.net/qq_20236937/article/details/137295256