springboot如何接收get和post請(qǐng)求參數(shù)
一、get請(qǐng)求前端傳參和后臺(tái)接收的寫法:
1、ajax請(qǐng)求:
$.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("用戶名或密碼錯(cuò)誤");
}
},
error:function (data) {
alert("用戶名或密碼錯(cuò)誤");
}
});此時(shí)查看瀏覽器的network選項(xiàng),會(huì)看到請(qǐng)求地址變成:
? Request URL:http://localhost:8082/user/login3?userName=%E5%BC%A0%E4%B8%89&userPass=123
即請(qǐng)求參數(shù)拼接到url地址欄后,并且已經(jīng)編碼了。
2、針對(duì)這種請(qǐng)求,后臺(tái)接收參數(shù)有三種寫法:
1)、參數(shù)名稱與前端key對(duì)應(yīng),不加任何注解:
@RequestMapping(value = "/login3", method = RequestMethod.GET) Map<String, Object> login4( String userName, String userPass)
2)、參數(shù)名稱與前端key對(duì)應(yīng),添加@RequestParam注解:
@RequestMapping(value = "/login3", method = RequestMethod.GET) Map<String, Object> login2(@RequestParam String userName, @RequestParam String userPass)
3)、使用@RequestParam注解,將所有的參數(shù)封裝到Map<String,Object>對(duì)象:
@RequestMapping(value = "/login3", method = RequestMethod.GET) Map<String, Object> login3(@RequestParam Map<String,Object> param)
此時(shí),后臺(tái)通過param.get(“userName”)來獲取參數(shù)的值。@RequestParam注解換成@RequestBody注解無效,ajax請(qǐng)求報(bào)400錯(cuò)誤,進(jìn)入不了后臺(tái)對(duì)應(yīng)的方法。
二、post請(qǐng)求前端傳參和后臺(tái)接收的寫法:
? 3、ajax請(qǐng)求:
$.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("用戶名或密碼錯(cuò)誤");
}
},
error:function (data) {
alert("用戶名或密碼錯(cuò)誤");
}
});4、針對(duì)3的ajax請(qǐng)求,后臺(tái)的接口參數(shù)寫法同2。
5、ajax請(qǐng)求:
$.ajax({
url:'/user/login3',
contentType: 'application/json;charset=utf-8',
data:JSON.stringify({"userName":"張三", "userPass":"123"}),
method:'post',
dataType:'json', 不同的地方在于添加了contentType,data需要改成序列化的json字符串。
6、針對(duì)5這種ajax請(qǐng)求,2的三種寫法后臺(tái)都拿不到值,或者直接報(bào)400錯(cuò)誤。需要用另外一種寫法:
@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兩個(gè)屬性,則@RequestBody User user也可以去到前端傳遞的值,此時(shí)用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,會(huì)報(bào)400錯(cuò)誤。
到此這篇關(guān)于springboot接收get和post請(qǐng)求參數(shù)的文章就介紹到這了,更多相關(guān)springboot接收get和post參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot GET和POST請(qǐng)求參數(shù)獲取方式小結(jié)
- Springboot中攔截GET請(qǐng)求獲取請(qǐng)求參數(shù)驗(yàn)證合法性核心方法
- SpringBoot如何獲取Get請(qǐng)求參數(shù)詳解
- springboot中Getmapping獲取參數(shù)的實(shí)現(xiàn)方式
- SpringBoot用實(shí)體接收Get請(qǐng)求傳遞過來的多個(gè)參數(shù)的兩種方式
- SpringBoot常見get/post請(qǐng)求參數(shù)處理、參數(shù)注解校驗(yàn)及參數(shù)自定義注解校驗(yàn)詳解
- 解決Springboot get請(qǐng)求是參數(shù)過長的情況
- Springboot接收Get參數(shù)實(shí)踐過程
相關(guān)文章
使用easyexcel導(dǎo)出的excel文件,使用poi讀取時(shí)異常處理方案
這篇文章主要介紹了使用easyexcel導(dǎo)出的excel文件,使用poi讀取時(shí)異常處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
springBoot連接遠(yuǎn)程Redis連接失敗的問題解決
本文主要介紹了springBoot連接遠(yuǎn)程Redis連接失敗的問題解決,使用springboot里面的redisTemplate進(jìn)行連接的時(shí)候,卻發(fā)生了報(bào)錯(cuò),下面就來一起解決一下2024-05-05
SpringBoot日程管理Quartz與定時(shí)任務(wù)Task實(shí)現(xiàn)詳解
定時(shí)任務(wù)是企業(yè)級(jí)開發(fā)中必不可少的組成部分,諸如長周期業(yè)務(wù)數(shù)據(jù)的計(jì)算,例如年度報(bào)表,諸如系統(tǒng)臟數(shù)據(jù)的處理,再比如系統(tǒng)性能監(jiān)控報(bào)告,還有搶購類活動(dòng)的商品上架,這些都離不開定時(shí)任務(wù)。本節(jié)將介紹兩種不同的定時(shí)任務(wù)技術(shù)2022-09-09
Java設(shè)計(jì)模式之建造者模式實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-09-09
鄰接表無向圖的Java語言實(shí)現(xiàn)完整源碼
這篇文章主要介紹了鄰接表無向圖的Java語言實(shí)現(xiàn)完整源碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
spring boot 2.x html中引用css和js失效問題及解決方法
這篇文章主要介紹了spring boot 2.x html中引用css和js失效,需要的朋友可以參考下2018-11-11

