SpringBoot 前后端数据交互

本系列主要讲解前后端数据的传输(HTML + SpringBoot)

  1. form 提交
  2. Ajax 异步传输
  3. websocket 提交

本文主要讲解 from 的传递

接收GET 或 POST数据

1. 直接接收(不推荐)

GET请求的数据会存在url中,比如 http://localhost:8080/get?x1=9&x2=10
我们的任务就是从后台接受到x1x2的值。
设立\get映射,将相应的方法参数设置为与url相同的名字,即可直接接收到来自前端的数据

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(int x1, int x2){
    System.out.printf("x1= %d, x2= %d\n", x1,x2);
    return "Sucess";
}

启动后,访问http://localhost:8080/get?x1=9&x2=10,可以看到输出
在这里插入图片描述

2. 参数接收

利用@RequestParam()将参数名与接收参数名形成映射

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(@RequestParam("x1") int para1, @RequestParam("x2") int para2){
    System.out.printf("x1= %d, x2= %d\n", para1, para2);
    return "Sucess";
}

启动后,访问http://localhost:8080/get?x1=9&x2=10,会得到同样的效果

对于数组的传递

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(@RequestParam("x1") int[] para1, @RequestParam("x2") int[] para2){
    System.out.printf("x1= ");
    for(int ele: para1){
        System.out.printf("%d ",ele);
    }
    System.out.printf("\n");

    System.out.printf("x2= ");
    for(int ele: para2){
        System.out.printf("%d ",ele);
    }
    System.out.printf("\n");
    return "Sucess";
}

访问 :http://localhost:8080/get?x1=9,8,7,6&x2=10,11,12
在这里插入图片描述

3. HttpServletRequest 获取

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String login(HttpServletRequest request, HttpSession session) {
    String x1 = request.getParameter("x1");
    String x2 = request.getParameter("x2");
    System.out.printf("x1=%s \n", x1);
    System.out.printf("x1=%s \n", x2);
    return "Sucess";
}

在这里插入图片描述

传递Json数据,可以通过Ajax传给后台

参考本系列的Ajax传输

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章