SpringBoot参数接收只看这一篇文章就够了
- 开源代码
- 2025-08-20 16:06:01

好久没有写过接口了,最近在写一些基础接口,在写参数接口接收参数的时候居然想不起来,会有那么一丝丝的怀疑,虽然并不会影响编码,但是说明一个问题,没有系统的总结知识,没有温故知新,整理一下分享下。
1、路径参数 @PathVariable 1.1 基础使用通过@PathVariable可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable("xxx")
举个栗子:
@GetMapping("park/{parkingId}")publicStringqueryPark(@PathVariableStringparkingId){returnparkingId;}访问路径:http://localhost:8080/park/123
这里123 会被绑定到 parkingId
1.2 注意点Spring能够根据名字自动赋值对应的函数参数值
注解的参数可以是一些基本的简单类型:int,long,Date,String等
Spring能根据URL变量的具体值以及函数参数的类型来进行转换
2、@RequestParam 2.1 基础使用注解@RequestParam绑定请求参数到方法形参,适用key,value的方式,同时适用get、post方法。
举个栗子:
@RequestMapping("park/requestParam") public String query1(@RequestParam String parkingId){ return parkingId; }post在使用的时候可以使用表单提交,也就是form-data的方式
也可以使用get的方式访问 http://localhost:8080/park/requestParam?parkingId=xxx
2.2 注意点同时使用get,post
参数必须是key,value的形式
没有生命变量名的时候默认参数名当做key值
3、@RequestBody 3.1 基本使用RequestBody主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据的)
举个栗子:
@PostMapping("park/add") public Result addApply(@RequestBody ApplyInfoDto applyInfoDto){ return Result.success(); }访问路径:http://localhost:8080/park/list/add
3.2 注意点一个请求,只有一个RequestBody
content-type必须是application/json
只适用post的方式
4、HttpServletRequest参数接收 4.1 基础使用http请求对象HttpServletRequest中的数据要么通过流(json请求时)或者参数的形式(form表单)向后台传输数据
举个栗子:
@RequestMapping("park/request/{da}") public String query2(HttpServletRequest request) throws IOException { // key-value 类型 Map<String, String[]> map = request.getParameterMap(); // 路径参数 String pathInfo = request.getPathInfo(); // body内容 ServletInputStream inputStream = request.getInputStream(); return "111"; } 4.2 注意点HttpServletRequest 是整个请求,可以获取到所有的数据
HttpServletRequest 可以和其他的注解配合适用
HttpServletRequest、HttpServletResponse都是内置对象,可以使用
5、@RequestHeader 5.1 基础使用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){ } 6、@CookieValue使用@CookieValue注解来获得指定的 Cookie 的值。
@GetMapping("park/getCookie") public String getCookieValue(@CookieValue("jid") String jId) { System.out.println(jId); return "success"; } 7、不基于任何注解进行表单传参不基于任何注解进行表单传参,springboot会根据变量名进行赋值
@RequestMapping("park/nothing") public String getByNothing( String parkingId) { System.out.println(parkingId); return "success"; }注:key-value的方式可以
8、总结springboot接口参数的接收没什么特殊的地方,归纳一下
前端数据的输入方式:路径参数,key-value的方式,还有就是raw的模式,这里主要是json,Header,Cookie
后端的主要注解:PathVariable,RequestParam,RequestBody 直接和上面的三种方式对应
可使用的内置对象:HttpServletRequest,HttpServletResponse,HttpHeaders
SpringBoot参数接收只看这一篇文章就够了由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringBoot参数接收只看这一篇文章就够了”