SpringBoot中Get請求和POST請求接收參數(shù)示例詳解
1、Get請求
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 標注,使用value屬性指定參數(shù)名,required屬性表示這個參數(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ù)
注意:Get 請求以實體類接收參數(shù)時,不能用 RequestParam 注解進行標注,因為不支持這樣的方式獲取參數(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 通過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 通過@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請求
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 標注,使用value屬性指定參數(shù)名,required屬性表示這個參數(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 通過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 通過@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 通過param方式提交參數(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 請求體以JSON格式提交參數(shù),通過 @RequestBody 注解接收參數(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 通過 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 通過@RequestBody 接收一個參數(shù)
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
@PostMapping("/save")
public void saveStudent(@RequestBody String name) {
log.info("name:{}",name);
}
}到此這篇關于SpringBoot中Get請求和POST請求接收參數(shù)詳解的文章就介紹到這了,更多相關SpringBoot Get請求和POST請求接收參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MybatisPlus?QueryWrapper常用方法實例
MyBatis-Plus(opens new window)是一個MyBatis(opens new window)的增強工具,在 MyBatis的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關于MybatisPlus?QueryWrapper常用方法的相關資料,需要的朋友可以參考下2022-04-04
maven利用tomcat插件部署遠程Linux服務器的步驟詳解
Maven已經(jīng)是Java的項目管理常用方式,下面這篇文章主要給大家介紹了關于maven利用tomcat插件部署遠程Linux服務器的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11
Spring中ApplicationContext的拓展功能詳解
這篇文章主要介紹了Spring中ApplicationContext的拓展功能詳解,相對于BeanFactory來說,ApplicationContext除了提供BeanFactory的所有功能外,還有一些其他的功能,主要包括國際化支持、資源訪問、事件傳遞,需要的朋友可以參考下2024-01-01
Spring?Data?Redis切換底層Jedis和Lettuce實現(xiàn)源碼解析
這篇文章主要為大家介紹了Spring?Data?Redis切換底層Jedis和Lettuce實現(xiàn)方法源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
SpringAOP+RabbitMQ+WebSocket實戰(zhàn)詳解
這篇文章主要介紹了SpringAOP+RabbitMQ+WebSocket實戰(zhàn)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11

