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傳輸

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