行业知识
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"; }
- 使用@CookieValue注解来获得指定的 Cookie 的值。
- RequestHeader主要用来获取请求当中的请求头