当前位置: 首页 > backend >正文

29、请求处理-常用参数注解使用

29、请求处理-常用参数注解使用

在Spring Boot中,处理HTTP请求时常用的参数注解有:

#### 获取路径变量 - `@PathVariable`

- **用途**:用于获取URL路径中的变量值。

- **示例**:

  ```java

  @GetMapping("/user/{id}")

  public User getUser(@PathVariable("id") Long userId) {

      return userService.getUserById(userId);

  }

  ```

- **说明**:当请求`/user/123`时,`userId`会被赋值为`123`。

#### 获取请求参数 - `@RequestParam`

- **用途**:用于获取请求参数(URL查询参数或表单数据)。

- **示例**:

  ```java

  @GetMapping("/search")

  public String search(@RequestParam("q") String query) {

      return "Search results for: " + query;

  }

  ```

- **说明**:当请求`/search?q=Spring%20Boot`时,`query`会被赋值为`Spring Boot`。

- **可选参数和默认值**:

  - **可选参数**:`required = false`表示参数可以不存在。

  - **默认值**:`defaultValue = "defaultValue"`设置参数默认值。

#### 获取请求体 - `@RequestBody`

- **用途**:用于获取请求体的内容,通常用于处理`POST`、`PUT`等请求的JSON或XML数据。

- **示例**:

  ```java

  @PostMapping("/user")

  public User createUser(@RequestBody User user) {

      return userService.saveUser(user);

  }

  ```

- **说明**:请求体中的JSON数据会被自动转换为`User`对象。

#### 获取请求头 - `@RequestHeader`

- **用途**:用于获取HTTP请求头中的值。

- **示例**:

  ```java

  @GetMapping("/user-agent")

  public String getUserAgent(@RequestHeader("User-Agent") String userAgent) {

      return "Your user agent is: " + userAgent;

  }

  ```

- **说明**:获取请求中的`User-Agent`头信息。

#### 获取Cookie值 - `@CookieValue`

- **用途**:用于获取请求中的Cookie值。

- **示例**:

  ```java

  @GetMapping("/cookie")

  public String getCookieValue(@CookieValue("JSESSIONID") String sessionId) {

      return "Your session ID is: " + sessionId;

  }

  ```

- **说明**:获取名为`JSESSIONID`的Cookie值。

#### 获取请求属性 - `@RequestAttribute`

- **用途**:用于获取请求属性,通常在请求转发时使用。

- **示例**:

  ```java

  @GetMapping("/forward")

  public String forwardRequest(HttpServletRequest request) {

      request.setAttribute("message", "Hello from forward");

      return "forward:/result";

  }

  

  @GetMapping("/result")

  public String getResult(@RequestAttribute("message") String message) {

      return "Result: " + message;

  }

  ```

- **说明**:在转发请求时,通过`HttpServletRequest`设置属性,然后在目标方法中通过`@RequestAttribute`获取。

#### 获取矩阵变量 - `@MatrixVariable`

- **用途**:用于获取URL路径中的矩阵变量(Spring Boot默认禁用)。

- **示例**:

  ```java

  @GetMapping("/path;param=value")

  public String getPathParam(@MatrixVariable("param") String value) {

      return "Matrix variable value: " + value;

  }

  ```

- **启用矩阵变量**:需要在`application.properties`中配置`spring.mvc.pathmatch.matching-strategy=ant_path_matcher`。

#### 数据绑定 - `@ModelAttribute`

- **用途**:用于将请求参数绑定到模型对象,常用于表单提交。

- **示例**:

  ```java

  @PostMapping("/user")

  public String createUser(@ModelAttribute User user) {

      userService.saveUser(user);

      return "userCreated";

  }

  ```

- **说明**:表单数据会自动绑定到`User`对象的属性上。

通过合理使用这些注解,可以方便地在Spring Boot中处理各种HTTP请求参数。

http://www.xdnf.cn/news/9925.html

相关文章:

  • UE路径追踪Path Tracing和Lumen的区别
  • Lambda表达式Stream流
  • 三套知识系统的实践比较:Notion、Confluence 与 Gitee Wiki
  • 关于 smali:2. 从 Java 到 Smali 的映射
  • 无需自建高防:APP遭遇DDoS的解决方案
  • CODEFORCES----1999A - A+B Again?
  • SQL进阶之旅 Day 7:视图与存储过程入门
  • vue的h函数(在 Vue 2中也称为 createElement)理解
  • SAP BASIS常用事务代码ST06 操作系统监控
  • UVa1384/LA3700 Interesting Yang Hui Triangle
  • OpenCv高阶(十九)——dlib关键点定位
  • 深度学习核心网络架构详解:从 CNN 到 LSTM
  • 关于DJI Cloud API Demo 终止维护公告-上云API源码停止维护
  • 文本预处理
  • 学习黑客小故事理解 Metasploit 的 Meterpreter
  • 【2025年电工杯数学建模竞赛A题】光伏电站发电功率日前预测问题+完整思路+paper+源码
  • BugKu Web渗透之备份是个好习惯
  • LeetCode Hot100(矩阵)
  • 逻辑回归知识点
  • stm32 + ads1292心率检测报警设置上下限
  • 鸿蒙分辨率
  • TDengine 运维——巡检工具(安装前检查)
  • 【Redis】第3节|深入理解Redis线程模型
  • 3.1.1栈的基本概念
  • 德国GEMÜ 3020特价型号3020 25D 7 1 4P002 3600
  • Java面试:从Spring Boot到分布式系统的技术探讨
  • VirtualBox安装 Rocky
  • AI绘画:手把手带你Stable Diffusion从入门到精通(系列教程)
  • window11系统 使用GO语言建立TDengine 连接
  • LLaMaFactory - 支持的模型和模板 常用命令