SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)示例詳解
1、Get請(qǐng)求
1.1 方法形參接收參數(shù) 這種方式一般適用參數(shù)比較少的情況,并且前后端參數(shù)名稱必須保持一致
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(String name,String age) { log.info("name:{}",name); log.info("age:{}",age); } }
參數(shù)用 @RequestParam 標(biāo)注,使用value屬性指定參數(shù)名,required屬性表示這個(gè)參數(shù)是否必傳
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = false) String age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.2 實(shí)體類接收參數(shù)
注意:Get 請(qǐng)求以實(shí)體類接收參數(shù)時(shí),不能用 RequestParam 注解進(jìn)行標(biāo)注,因?yàn)椴恢С诌@樣的方式獲取參數(shù)。
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
1.3 通過(guò)HttpServletRequest接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(HttpServletRequest request) { String name = request.getParameter("name"); String phone = request.getParameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
1.4 通過(guò)@PathVariable接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query/{name}/{age}") public void getStudent(@PathVariable String name, @PathVariable String age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.5 接收數(shù)組參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(String[] names) { Arrays.stream(names).forEach(System.out::println); } }
1.6 接受集合參數(shù)
注意:SpringBoot 接收集合參數(shù),必須用 @RequestParam 注解聲明!
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @GetMapping("/query") public void getStudent(@RequestParam List<String> names) { names.forEach(System.out::println); } }
2、POST請(qǐng)求
2.1 方法形參接收參數(shù) 前后端參數(shù)名稱必須保持一致
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(String name,String age) { log.info("name:{}",name); log.info("age:{}",age); } }
參數(shù)用 @RequestParam 標(biāo)注,使用value屬性指定參數(shù)名,required屬性表示這個(gè)參數(shù)是否必傳
@RestController @RequestMapping("/user") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = false) String age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.2 通過(guò)HttpServletRequest接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(HttpServletRequest request) { String name = request.getParameter("name"); String phone = request.getParameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
2.3 通過(guò)@PathVariable接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save/{name}/{age}") public void saveStudent(@PathVariable String name, @PathVariable String age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.4 通過(guò)param方式提交參數(shù),以實(shí)體類接收參數(shù)
直接以實(shí)體類可以接收param、form-data、 x-www-form-urlencoded 提交的參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
2.5 請(qǐng)求體以JSON格式提交參數(shù),通過(guò) @RequestBody 注解接收參數(shù)
接受實(shí)體類JSON參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody Student student) { log.info("name:{}",student.getName()); log.info("age:{}",student.getAge()); } } @Data class Student{ private String name; private Integer age; }
接收數(shù)組或者集合類JSON參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody String[] names) { Arrays.stream(names).forEach(System.out::println); } @PostMapping("/save") public void saveStudent(@RequestBody List<String> names) { names.forEach(System.out::println); } }
2.6 通過(guò) Map 接收參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestParam Map<String,Object> map) { log.info("name:{}",map.get("name")); log.info("age:{}",map.get("age")); } }
2.7 通過(guò)@RequestBody 接收一個(gè)參數(shù)
@RestController @RequestMapping("/demo") @Slf4j public class DemoController { @PostMapping("/save") public void saveStudent(@RequestBody String name) { log.info("name:{}",name); } }
到此這篇關(guān)于SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)詳解的文章就介紹到這了,更多相關(guān)SpringBoot Get請(qǐng)求和POST請(qǐng)求接收參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache?Commons?CLI構(gòu)建命令行應(yīng)用利器教程
這篇文章主要為大家介紹了構(gòu)建命令行應(yīng)用利器Apache?Commons?CLI的使用教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)
報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書(shū)機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來(lái)看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)2022-01-01詳解MyBatis多數(shù)據(jù)源配置(讀寫(xiě)分離)
這篇文章主要介紹了詳解MyBatis多數(shù)據(jù)源配置(讀寫(xiě)分離),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Java網(wǎng)絡(luò)編程之基于TCP協(xié)議
本文主要將Java基于TCP的網(wǎng)絡(luò)編程主要分解成5個(gè)功能:功能分解1:單向通信功能分解,2:雙向通信功能分解,3:對(duì)象流傳送功能分解,4:加入完整的處理異常方式功能分解,5:多線程接收用戶請(qǐng)求,需要的朋友可以參考下2021-05-05SpringBoot搭建多數(shù)據(jù)源的實(shí)現(xiàn)方法
說(shuō)起多數(shù)據(jù)源,一般都來(lái)解決那些問(wèn)題呢,主從模式或者業(yè)務(wù)比較復(fù)雜需要連接不同的分庫(kù)來(lái)支持業(yè)務(wù)。本文主要介紹了SpringBoot搭建多數(shù)據(jù)源的實(shí)現(xiàn)方法,感興趣的可以了解一下,感興趣的可以額了解一下2021-12-12Java在Map轉(zhuǎn)Json字符串時(shí)出現(xiàn)"\"轉(zhuǎn)義字符的解決辦法
當(dāng)一個(gè)Map被轉(zhuǎn)成Json字符串后,被添加到另一個(gè)Map中,會(huì)出現(xiàn)被加上“\”轉(zhuǎn)義字符的情況,這個(gè)時(shí)候該如何解決呢,下面就來(lái)和小編一起了解一下2023-07-07SpringBoot集成Access?DB實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入和解析
microsoft?office?access是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它結(jié)合了?microsoft?jet?database?engine?和?圖形用戶界面兩項(xiàng)特點(diǎn),是一種關(guān)系數(shù)據(jù)庫(kù)工具,本文給大家介紹了SpringBoot集成Access?DB實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入和解析,需要的朋友可以參考下2024-11-11