Java中的6种请求方式的示例详解

 更新时间:2024年07月19日 09:23:36   作者:码农研究僧  
这篇文章主要详细介绍了Java中的6种请求方式,@RequestParam、@PathVariable、@MatrixVariable、@RequestBody、@RequestHeader和@CookieValue的基本知识、详细分析以及示例,需要的朋友可以参考下

主要围绕如下请求方式:

@RequestParam、@PathVariable、@MatrixVariable、@RequestBody、@RequestHeader和@CookieValue的基本知识、详细分析以及示例

1. @RequestParam

用于绑定HTTP请求参数到控制器方法的参数上,常用于处理表单数据或查询参数

@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name) {
    return "Hello, " + name;
}

基本的属性如下:

  • value 或 name: 参数名
  • required: 是否为必需参数,默认为true
  • defaultValue: 参数的默认值

具体调用两种方式:

  • /greeting?name=John,输出Hello, John
  • /greeting,输出默认值 Hello, World

2. @PathVariable

用于绑定URL中的模板变量到控制器方法的参数上,常用于RESTful风格的URL路径中

@GetMapping("/users/{id}")
public User getUser(@PathVariable("id") Long id) {
    return userService.findById(id);
}

基本的属性如下:

  • value 或 name: 路径变量名。
  • required: 是否为必需参数,默认为true

请求方式: /users/1,用户ID为1的用户对象

3. @MatrixVariable

用于绑定URL路径中的矩阵变量到控制器方法的参数上,需要在Spring MVC中启用矩阵变量支持
常与路径变量结合使用

@GetMapping("/owners/{ownerId}/pets/{petId}")
public Pet findPet(@PathVariable String ownerId, 
                   @MatrixVariable(name="q", pathVar="petId") int query) {
    // 处理代码
}

基本的属性如下:

  • value 或 name: 矩阵变量名
  • pathVar: 矩阵变量所属的路径变量名

具体调用方式如下:
/owners/42/pets/21;q=123,提取: ownerId 为42, petId 为21, q 为123

4. @RequestBody

用于将HTTP请求体的内容绑定到控制器方法的参数上,常用于处理JSON、XML等格式的请求数据

@PostMapping("/users")
public User createUser(@RequestBody User user) {
    return userService.save(user);
}
  • required: 是否为必需参数,默认为true

具体调用方式如下:

HTTP POST请求,内容: {“name”: “John”, “age”: 30}
返回: 创建的用户对象

5. @RequestHeader

用于绑定HTTP请求头到控制器方法的参数上

@GetMapping("/header")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {
    return "User-Agent: " + userAgent;
}
  • value 或 name: 请求头名
  • required: 是否为必需参数,默认为true
  • defaultValue: 参数的默认值

具体调用方式如下:

设置请求头User-Agent
返回: 用户代理信息

6. @CookieValue

用于绑定HTTP请求的Cookie值到控制器方法的参数上

@GetMapping("/cookie")
public String getCookie(@CookieValue(value = "sessionId", defaultValue = "defaultSessionId") String sessionId) {
    return "Session ID: " + sessionId;
}

具体的属性如下:

  • value 或 name: Cookie名
  • required: 是否为必需参数,默认为true
  • defaultValue: 参数的默认值

具体调用方式如下:

设置Cookie sessionId
返回: 会话ID信息

7. 总结

注解作用属性示例调用
@RequestParam绑定HTTP请求参数到控制器方法的参数上value, required, defaultValue/greeting?name=John
@PathVariable绑定URL中的模板变量到控制器方法的参数上value, required/users/1
@MatrixVariable绑定URL路径中的矩阵变量到控制器方法的参数上value, pathVar/owners/42/pets/21;q=123
@RequestBody将HTTP请求体的内容绑定到控制器方法的参数上requiredHTTP POST 请求,内容: {“name”: “John”}
@RequestHeader绑定HTTP请求头到控制器方法的参数上value, required, defaultValue设置请求头User-Agent
@CookieValue绑定HTTP请求的Cookie值到控制器方法的参数上value, required, defaultValue设置Cookie sessionId

以上就是Java中的6种请求方式的示例详解的详细内容,更多关于Java请求方式的资料请关注脚本之家其它相关文章!

相关文章

  • Springboot自动装配实现过程代码实例

    Springboot自动装配实现过程代码实例

    这篇文章主要介绍了Springboot自动装配实现过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解servlet的url-pattern匹配规则

    详解servlet的url-pattern匹配规则

    本篇文章主要介绍了=servlet的url-pattern匹配规则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java数据结构基础:稀疏数组

    java数据结构基础:稀疏数组

    今天带大家了解一下Java稀疏数组的相关知识,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-08-08
  • 提交gRPC-spring-boot-starter项目bug修复的pr说明

    提交gRPC-spring-boot-starter项目bug修复的pr说明

    这篇文章主要介绍了这篇文章主要为大家介绍了gRPC-spring-boot-starter项目提交bug修复的pr的原因说明,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-02-02
  • spring集成mybatis实现mysql数据库读写分离

    spring集成mybatis实现mysql数据库读写分离

    本文通过实例代码给大家介绍了spring集成mybatis实现mysql数据库读写分离,需要的朋友可以参考下
    2017-08-08
  • SpringBoot中实现文件上传、下载、删除功能的步骤

    SpringBoot中实现文件上传、下载、删除功能的步骤

    本文将详细介绍如何在 Spring Boot 中实现文件上传、下载、删除功能,采用的技术框架包括:Spring Boot 2.4.2、Spring MVC、MyBatis 3.5.6、Druid 数据源、JUnit 5 等,文中有详细的操作步骤和示例代码供大家参考,需要的朋友可以参考下
    2024-01-01
  • spring中的注解@@Transactional失效的场景代码演示

    spring中的注解@@Transactional失效的场景代码演示

    这篇文章主要介绍了spring中的注解@@Transactional失效的场景代码演示,@Transactional注解是Spring框架提供的用于声明事务的注解,作用于类和方法上,需要的朋友可以参考下
    2024-01-01
  • Java求字符串长度的方法举例

    Java求字符串长度的方法举例

    这篇文章主要给大家介绍了关于Java求字符串长度的相关资料,Java中的字符串是一种常见的数据类型,用于表示文本数据,文中给出了详细的代码实例,需要的朋友可以参考下
    2023-10-10
  • SpringBoot Mybatis 配置文件形式详解

    SpringBoot Mybatis 配置文件形式详解

    这篇文章主要介绍了SpringBoot Mybatis 配置文件形式详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤

    IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤

    最近安装了IntelliJ IDEA 2022.1.1,发现新版本的窗口还有些变化的,所以下面这篇文章主要给大家介绍了关于IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07

最新评论