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-12
Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)
報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來(lái)看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)2022-01-01
詳解MyBatis多數(shù)據(jù)源配置(讀寫分離)
這篇文章主要介紹了詳解MyBatis多數(shù)據(jù)源配置(讀寫分離),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Java網(wǎng)絡(luò)編程之基于TCP協(xié)議
本文主要將Java基于TCP的網(wǎng)絡(luò)編程主要分解成5個(gè)功能:功能分解1:單向通信功能分解,2:雙向通信功能分解,3:對(duì)象流傳送功能分解,4:加入完整的處理異常方式功能分解,5:多線程接收用戶請(qǐng)求,需要的朋友可以參考下2021-05-05
SpringBoot搭建多數(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-12
Java在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-07
SpringBoot集成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

