SpringBoot接收参数的8种方式示例详解
作者:我名异侠
这篇文章主要介绍了SpringBoot接收参数的8种方式,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
1. 直接把请求参数写在方法的形参中
- 此场景适用于请求参数较少的情况
- 任何请求都可以
@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<String, String[]> 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<String, String> 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"; }
到此这篇关于SpringBoot接收参数的8种方式的文章就介绍到这了,更多相关SpringBoot接收参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!