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

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";

restful风格的请求

get请求:localhost:8080/users/add3?tom/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;
 
    @Override
    public String toString() {
        return "User{" +
                "name='" + name+ '\'' +
                ", age='" + age+ '\'' +
                ", cat=" + cat +
                ", courseList=" + courseList +
                '}';
    }
}

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

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,你可以通过以下步骤将前端数据传递到数据库: 1. 创建一个实体类(Entity)来代表数据库表中的数据。这个实体类应该使用JPA的注解来定义表和列的映射关系。 2. 创建一个数据访问对象(DAO)类,使用Spring Data JPA来处理数据库的交互。在DAO类中,你可以定义一些方法来执行常见的数据库操作,如保存(save)、查询(find)、更新(update)和删除(delete)等。 3. 创建一个控制器(Controller)类,使用Spring MVC来处理前端请求。在控制器中,你可以定义请求映射(RequestMapping)和请求处理方法(Handler Method)。在处理方法中,你可以通过接收前端传递的数据,并调用DAO类中的方法来将数据保存到数据库。 下面是一个简单的示例代码: ```java // 实体类 @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; // 其他属性和对应的getter/setter方法 } // 数据访问对象类 @Repository public interface UserRepository extends JpaRepository<User, Long> { // 可以根据需要定义其他查询方法 } // 控制器类 @RestController @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @PostMapping public User createUser(@RequestBody User user) { return userRepository.save(user); } } ``` 在上面的示例中,我们创建了一个名为User的实体类,使用JPA注解来映射到数据库中的user表。然后,我们创建了一个UserRepository接口来继承JpaRepository接口,它提供了一些常用数据库操作方法。最后,我们创建了一个UserController类来处理前端的请求,其中的createUser方法使用@PostMapping注解来处理HTTP的POST请求,并通过@RequestBody注解来接收前端传递的数据。在方法中,我们调用userRepository.save方法来将数据保存到数据库。 请注意,上述代码仅为示例,实际使用时可能需要根据具体的业务需求进行调整。同时,还需配置数据库连接等相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值