小工具知识网

当前位置: 首页 > 行业知识 > SpringBoot接收参数的8种方式

行业知识

SpringBoot接收参数的8种方式

2026-11-11 16:18:43 来源:互联网转载

文章目录

  • 1. 直接把请求参数写在方法的形参中
  • 2. 封装一个bean直接来接收
  • 3. 原生的HttpServletRequest接收
  • 4. @PathVariable获取rest风格路径参数
  • 5. @RequestParam绑定请求参数到方法形参
  • 6. @RequestBody绑定请求参数到方法形参
  • 7. @RequestHeader
  • 8. @CookieValue

    1. 直接把请求参数写在方法的形参中

    • 此场景适用于请求参数较少的情况
    • 任何请求都index.php/tags-653.html" >可以
          @RequestMapping("/fun1")    public Book fun1(String name, Long id){        log.info("{}  {}",id,name);        Book book=new Book(id, name);        return book;    }

      2. 封装一个bean直接来接收

          @RequestMapping("/fun2")    public Book fun2(Book book){        log.info("book={}",book);        return book;    }

      3. 原生的HttpServletRequest接收

      • 同时适用get、post方法
      • 是整个请求,可以获取到所有的数据
      • 可以和其他的注解配合适用
      • HttpServletRequest、HttpServletResponse都是内置对象,可以使用
            @RequestMapping("/fun3")    public Book fun3(HttpServletRequest request){        log.info("{}  {}",request.getParameter("id"),request.getParameter("name"));        return new Book(Long.parseLong(request.getParameter("id")),request.getParameter("name"));    }
                //  key-value 类型        Map map = request.getParameterMap();        //  路径参数        String pathInfo = request.getPathInfo();        //  body内容        ServletInputStream inputStream = request.getInputStream();

        4. @PathVariable获取rest风格路径参数

            @RequestMapping("/fun4/{id}/{name}")    public Book fun4(@PathVariable long id,@PathVariable String name){        log.info("{}  {}",id,name);        Book book=new Book(id, name);        return book;    }

        5. @RequestParam绑定请求参数到方法形参

            @RequestMapping("/fun6")    public Book fun6(@RequestParam("name") String name,                     @RequestParam("id") Long id){        log.info("{}  {}",id,name);        Book book=new Book(id, name);        return book;}
        当请求参数username或者password不存在时会有异常发生,可以通过设置属性required=false解决@RequestParam(value="username", required=false)

        6. @RequestBody绑定请求参数到方法形参

        • 只能Post方法
        • 参数必须Json字符串
        • Body只能有一个
              @RequestMapping("/fun7")    public Book fun7(@RequestBody Book book){        log.info("book={}",book);        return book;    }

          7. @RequestHeader

          • RequestHeader主要用来获取请求当中的请求头
            // 方式1:获取单个header属性@RequestMapping("/geteHeader")public void getHeader(@RequestHeader("user-id") String userId){ }//方式2:获取所有header属性@RequestMapping("/geteHeader")public void getHeader(@RequestHeader Map headers){ }//方式3 获取header对象@RequestMapping("/geteHeader")public void getHeader(@RequestHeader HttpHeaders headers){ }

            8. @CookieValue

            • 使用@CookieValue注解来获得指定的 Cookie 的值。
              @GetMapping("park/getCookie")    public String getCookieValue(@CookieValue("jid") String jId) {        System.out.println(jId);        return "success";    }

上一篇:探索Flash粒子源码,揭开粒子动画的神秘面纱!

下一篇:JustHost.asia:新增美国圣何塞不限流量VPS,月付$1.16起,VPS可免费更换50次 IP