@RequestBody、@RequestParm、@PathVariable三个注解的区别

简介: @RequestBody、@RequestParm、@PathVariable三个注解的区别

鉴于第一次再整理这个问题的时候,整理完仍然不清楚,觉得现有文章的描述可能我不太理解。今天依然遇到了相同的问题,这次我想用通俗易懂的话说明白,希望能给大家带来帮助。

1.通俗易懂版

  • @RequestBody:在遇到post和put请求,需要把参数丢在requestbody里面 。
  • @RequestParm:从 request 里面拿取值,注解是获取静态 url 传入的参数 。
  • @PathVariable:是从一个 url 模板里面来填充, 获取请求路径中的变量作为参数 。

对上述进行解释:

显然@RequestBody很好区分于另外两个注解,大多数时候是用于post请求的,用于接收post请求中form表单中的数据,用来接收前端传递给后端的 json 字符串中的数据(请求体中的数据)。



@RequestParam 和 @PathVariable 一样,都是用于从request请求中绑定参数的:区别在于,前者是静态的URI;后者是获取请求路径中的变量作为参数,需要和 @RequestMapping(“item/{itemId}”) 配合使用。


从上图可以看出,使用@PathVariable时,请求地址中的username是{username}是动态的;而使用@RequestParam时,请求地址中has-username是固定的。

2.名词解答版

1.requestParam(请求参数):使用@RequestParam注释将请求参数绑定到控制器中的方法参数。用于从请求访问查询参数值的@RequestParam注释。

以下是@RequestParam注释支持的参数列表:

  • defaultValue -这是一个默认值,如果请求没有该值或该值为空,则作为回退机制。
  • name—要绑定的参数名称
  • required -参数是否为必选。如果为true,则发送该参数失败。
  • value -这是name属性的别名

2.requestBody(请求体):使用@RequestBody方法参数注释表明方法参数应该绑定到HTTP请求体的值。

3.PathVariable(路径变量):使用@PathVariable,URI模板可用于在@RequestMapping方法中方便地访问URL的选定部分。@PathVariable标识在传入请求的URI中使用的模式。@PathVariable注释只有一个用于绑定请求URI模板的属性值。允许在单个方法中使用多个@PathVariable注释。但是,请确保不超过一个方法具有相同的模式。


总结:


@RequestParam is use for query parameter(static values) like: base=2&ext=4


@PathVariable is use for dynamic values like :



相关文章
|
Java 数据库
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
8583 3
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
|
存储 easyexcel Java
EasyExcel教程
EasyExcel教程
16924 0
|
6月前
|
安全 NoSQL Java
SpringBoot接口安全:限流、重放攻击、签名机制分析
本文介绍如何在Spring Boot中实现API安全机制,涵盖签名验证、防重放攻击和限流三大核心。通过自定义注解与拦截器,结合Redis,构建轻量级、可扩展的安全防护方案,适用于B2B接口与系统集成。
897 3
|
存储 缓存 算法
HashMap深度解析:从原理到实战
HashMap,作为Java集合框架中的一个核心组件,以其高效的键值对存储和检索机制,在软件开发中扮演着举足轻重的角色。作为一名资深的AI工程师,深入理解HashMap的原理、历史、业务场景以及实战应用,对于提升数据处理和算法实现的效率至关重要。本文将通过手绘结构图、流程图,结合Java代码示例,全方位解析HashMap,帮助读者从理论到实践全面掌握这一关键技术。
460 14
|
XML JSON 前端开发
Java @RequestParam和@RequestBody的区别是什么?
【8月更文挑战第28天】Java @RequestParam和@RequestBody的区别是什么?
531 5
|
8月前
|
Java Spring 容器
DI依赖注入的几种手段
本内容介绍了依赖注入的四种方式:构造器注入、接口注入、Setter注入和注解注入,并重点比较了Spring中的@Autowired与Java标准注解@Resource的区别,包括来源和依赖查找策略。
431 0
|
Java Spring
SpringBoot接收参数的方式
本文介绍了Java Spring Boot中处理GET请求的多种方式。可以使用方法参数直接接收,或者通过`@RequestParam`注解指定必传参数。此外,可以用实体类接收多个相关参数,但不能同时使用`@RequestParam`。还可以通过`HttpServletRequest`对象获取参数,或利用`@PathVariable`接收路径变量。对于数组和集合参数,需注意使用`@RequestParam`注解。
1567 1
|
XML JSON Java
【Java用法】@RequestParam、@RequestBody、@ResponseBody和@PathVariable的使用与区别
【Java用法】@RequestParam、@RequestBody、@ResponseBody和@PathVariable的使用与区别
988 0
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
17340 7
|
Java Maven 数据库
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)
这篇文章提供了在IntelliJ IDEA中导入jar包的详细图解过程,包括当IDEA找不到对应类时的解决方法。内容涵盖了未加入jar包时程序报错的情况、加入jar包后成功启动的效果,以及如何解决驱动问题,确保使用正确版本的数据库驱动。
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)

热门文章

最新文章