0


SpringBoot接收参数的8种方式

文章目录


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

  • 此场景适用于请求参数较少的情况
  • 任何请求都可以
@RequestMapping("/fun1")publicBookfun1(String name,Long id){

        log.info("{}  {}",id,name);Book book=newBook(id, name);return book;}

在这里插入图片描述


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

@RequestMapping("/fun2")publicBookfun2(Book book){

        log.info("book={}",book);return book;}

在这里插入图片描述

3. 原生的HttpServletRequest接收

  • 同时适用get、post方法
  • 是整个请求,可以获取到所有的数据
  • 可以和其他的注解配合适用
  • HttpServletRequest、HttpServletResponse都是内置对象,可以使用
@RequestMapping("/fun3")publicBookfun3(HttpServletRequest request){

        log.info("{}  {}",request.getParameter("id"),request.getParameter("name"));returnnewBook(Long.parseLong(request.getParameter("id")),request.getParameter("name"));}
//  key-value 类型Map<String,String[]> map = request.getParameterMap();//  路径参数String pathInfo = request.getPathInfo();//  body内容ServletInputStream inputStream = request.getInputStream();

在这里插入图片描述

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

@RequestMapping("/fun4/{id}/{name}")publicBookfun4(@PathVariablelong id,@PathVariableString name){
        log.info("{}  {}",id,name);Book book=newBook(id, name);return book;}

在这里插入图片描述

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

@RequestMapping("/fun6")publicBookfun6(@RequestParam("name")String name,@RequestParam("id")Long id){

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

在这里插入图片描述

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

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

在这里插入图片描述

7. @RequestHeader

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

8. @CookieValue

  • 使用@CookieValue注解来获得指定的 Cookie 的值。
@GetMapping("park/getCookie")publicStringgetCookieValue(@CookieValue("jid")String jId){System.out.println(jId);return"success";}
标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/qq_44627608/article/details/132425435
版权归原作者 我名异侠 所有, 如有侵权,请联系我们删除。

“SpringBoot接收参数的8种方式”的评论:

还没有评论