日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot接收get和post请求参数

發布時間:2025/3/12 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot接收get和post请求参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、get請求前端傳參和后臺接收的寫法:

1、ajax請求:

$.ajax({ url:'/user/login3',//contentType: 'application/json;charset=utf-8', //這一句添加與否,效果都一樣data:{"userName":"張三", "userPass":"123"},method:'get', dataType:'json', success:function(res){ if(res.successful == true || res.successful=='true'){ alert("ok"); }else{alert("用戶名或密碼錯誤"); }}, error:function (data) {alert("用戶名或密碼錯誤"); } });

此時查看瀏覽器的network選項,會看到請求地址變成:

? Request URL:http://localhost:8082/user/login3?userName=%E5%BC%A0%E4%B8%89&userPass=123

即請求參數拼接到url地址欄后,并且已經編碼了。

2、針對這種請求,后臺接收參數有三種寫法:

1)、參數名稱與前端key對應,不加任何注解:

@RequestMapping(value = "/login3", method = RequestMethod.GET)Map<String, Object> login4( String userName, String userPass)

2)、參數名稱與前端key對應,添加@RequestParam注解:

@RequestMapping(value = "/login3", method = RequestMethod.GET)Map<String, Object> login2(@RequestParam String userName, @RequestParam String userPass)

3)、使用@RequestParam注解,將所有的參數封裝到Map<String,Object>對象:

@RequestMapping(value = "/login3", method = RequestMethod.GET)Map<String, Object> login3(@RequestParam Map<String,Object> param)

此時,后臺通過param.get(“userName”)來獲取參數的值。@RequestParam注解換成@RequestBody注解無效,ajax請求報400錯誤,進入不了后臺對應的方法。

二、post請求前端傳參和后臺接收的寫法:

? 3、ajax請求:

?

$.ajax({ url:'/user/login3',data:{"userName":"張三", "userPass":"123"},method:'post', dataType:'json', success:function(res){ if(res.successful == true || res.successful=='true'){ alert("ok"); }else{alert("用戶名或密碼錯誤"); }}, error:function (data) {alert("用戶名或密碼錯誤"); } });

4、針對3的ajax請求,后臺的接口參數寫法同2。

5、ajax請求:

$.ajax({ url:'/user/login3',contentType: 'application/json;charset=utf-8',data:JSON.stringify({"userName":"張三", "userPass":"123"}),method:'post', dataType:'json',

不同的地方在于添加了contentType,data需要改成序列化的json字符串。

6、針對5這種ajax請求,2的三種寫法后臺都拿不到值,或者直接報400錯誤。需要用另外一種寫法:

?

@RequestMapping(value = "/login3", method = RequestMethod.POST)Map<String, Object> login3(@RequestBody Map<String,Object> param) {try {System.out.println("userName==" + param.get("userName") +", userPass==" + param.get("userPass"));

? 這里的param名稱可以隨便取,可以用別的名稱代替;Map<String,Object>也可以替換成自定義的POJO類名,比如自定了User類,包含了userName和userPass兩個屬性,則@RequestBody User user也可以去到前端傳遞的值,此時用user.getUserName()就可以了。

或者:

@RequestMapping(value = "/login2", method = RequestMethod.POST)Map<String, Object> login2(@RequestBody String userInfo) {try {JSONObject json = JSONObject.parseObject(userInfo);System.out.println("userName==" + json.getString("userName") +", userPass==" + json.getString("userPass"));

這里的userInfo名稱是隨便取,可以用別的名稱代替;把這里的@RequestBody替換成@RequestParam,會報400錯誤。

總結

以上是生活随笔為你收集整理的springboot接收get和post请求参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。