本系列主要講解前後端數據的傳輸(HTML + SpringBoot)
- form 提交
- Ajax 異步傳輸
- websocket 提交
本文主要講解 from 的傳遞
接收GET 或 POST數據
1. 直接接收(不推薦)
GET
請求的數據會存在url
中,比如 http://localhost:8080/get?x1=9&x2=10
我們的任務就是從後臺接受到x1
,x2
的值。
設立\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傳輸