详解SpringBoot Controller接收参数的几种常用方式

前端之家收集整理的这篇文章主要介绍了详解SpringBoot Controller接收参数的几种常用方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一类:请求路径参数

1、@PathVariable

获取路径参数。即url/{id}这种形式。

2、@RequestParam
获取查询参数。即url?name=这种形式

例子

GET
http://localhost:8080/demo/123?name=suki_rong

对应的java代码

  1. @GetMapping("/demo/{id}")
  2. public void demo(@PathVariable(name = "id") String id,@RequestParam(name = "name") String name) {
  3. System.out.println("id="+id);
  4. System.out.println("name="+name);
  5. }@H_404_26@
  6. 输出结果:

  7. id=123

  8. name=suki_rong

  9. 第二类:Body参数

  10. 因为是POST请求,这里用Postman的截图结合代码说明

  11. 1@RequestBody

  12. 例子

  13. 详解SpringBoot Controller接收参数的几种常用方式

  14. 对应的java代码

  15. @PostMapping(path = "/demo1")
  16. public void demo1(@RequestBody Person person) {
  17.   System.out.println(person.toString());
  18. }
  19. @H_404_26@
  20. 输出结果:

  21. name:suki_rong;age=18;hobby:programing

  22. 也可以是这样

  23. @PostMapping(path = "/demo1")
  24. public void demo1(@RequestBody Map<String,String> person) {
  25.   System.out.println(person.get("name"));
  26. }@H_404_26@
  27. 输出结果:

  28. suki_rong

  29. 2、无注解

  30. 例子

  31. 详解SpringBoot Controller接收参数的几种常用方式

  32. 对应的java代码

  33. @PostMapping(path = "/demo2")
  34. public void demo2(Person person) {
  35.   System.out.println(person.toString());
  36. }@H_404_26@
  37. 输出结果:

  38. name:suki_rong;age=18;hobby:programing

  39. Person

  40. public class Person {
  41.   private long id;
  42.   private String name;
  43.   private int age;
  44.   private String hobby;
  45.   @Override
  46.   public String toString(){
  47.     return "name:"+name+";age="+age+";hobby:"+hobby;
  48.   }
  49.   // getters and setters
  50. }@H_404_26@
  51. 第三类:请求头参数以及Cookie

  52. 1@RequestHeader

  53. 2@CookieValue

  54. 例子

  55. java代码

  56. @GetMapping("/demo3")
  57. public void demo3(@RequestHeader(name = "myHeader") String myHeader,@CookieValue(name = "myCookie") String myCookie) {
  58.   System.out.println("myHeader=" + myHeader);
  59.   System.out.println("myCookie=" + myCookie);
  60. }@H_404_26@
  61. 也可以这样

  62. @GetMapping("/demo3")
  63. public void demo3(HttpServletRequest request) {
  64.   System.out.println(request.getHeader("myHeader"));
  65.   for (Cookie cookie : request.getCookies()) {
  66.     if ("myCookie".equals(cookie.getName())) {
  67.       System.out.println(cookie.getValue());
  68.     }
  69.   }
  70. }
  71. @H_404_26@
  72. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

猜你在找的Springboot相关文章