• SpringMVC中@RequestMapping注解的详细说明


    @RequestMappingSpring MVC中一个用于映射HTTP请求和控制器方法之间关系的注解。它用于定义控制器方法如何响应特定的HTTP请求,包括GET、POST、PUT、DELETE等。以下是@RequestMapping注解的详细说明:

    1. 基本用法:

      @RequestMapping("/example")
      public String handleRequest() {
          // 处理请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • @RequestMapping用于注解一个控制器方法,指定该方法应该处理的请求路径。在上述示例中,请求路径是/example
      • 控制器方法返回一个字符串,通常是视图名称。Spring MVC将查找名为"viewName"的视图并呈现它。
    2. HTTP方法映射:

      @RequestMapping可以指定控制器方法响应的HTTP方法,例如GET、POST、PUT、DELETE等。

      @RequestMapping(value = "/example", method = RequestMethod.GET)
      public String handleGetRequest() {
          // 处理GET请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 使用method属性指定HTTP方法,如上例中的RequestMethod.GET
    3. 多个URL映射:

      @RequestMapping可以映射多个URL,以允许同一个控制器方法处理不同的请求路径。

      @RequestMapping(value = {"/example", "/alternate"})
      public String handleRequest() {
          // 处理请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 在上述示例中,/example/alternate都将映射到handleRequest方法。
    4. 请求参数映射:

      @RequestMapping可以根据请求参数来映射请求。

      @RequestMapping(value = "/example", params = "paramName=paramValue")
      public String handleRequest() {
          // 处理请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 使用params属性指定请求参数,如上例中的paramName=paramValue
    5. 请求头映射:

      @RequestMapping可以根据请求头信息来映射请求。

      @RequestMapping(value = "/example", headers = "Content-Type=application/json")
      public String handleRequest() {
          // 处理请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 使用headers属性指定请求头信息,如上例中的Content-Type=application/json
    6. Ant风格路径:

      @RequestMapping支持使用Ant风格的路径表达式,允许更灵活的URL匹配。

      @RequestMapping(value = "/example/*/subpath")
      public String handleRequest() {
          // 处理请求的业务逻辑
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 在上述示例中,/example/*/subpath将匹配任何路径中包含/example/后跟任意字符串和/subpath的请求。
    7. 路径变量:

      @RequestMapping支持路径变量,允许从请求路径中提取参数。

      @RequestMapping("/example/{id}")
      public String handleRequest(@PathVariable("id") Long id) {
          // 使用路径变量id进行处理
          return "viewName";
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 在上述示例中,{id}是一个路径变量,它将从请求路径中提取,并作为方法参数传递给handleRequest方法。
    8. Consumes和Produces:

      @RequestMapping可以使用consumesproduces属性来限制请求的Content-Type和响应的Content-Type

      @RequestMapping(value = "/example", consumes = "application/json", produces = "application/json")
      public ResponseEntity<String> handleRequest() {
          // 处理JSON请求和响应
          return ResponseEntity.ok("Response JSON");
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 在上述示例中,@RequestMapping指定了只接受application/json类型的请求,并返回application/json类型的响应。

    @RequestMapping是Spring MVC中用于定义请求映射的核心注解,非常灵活,可以根据多种条件来定义控制器方法的请求映射规则,以适应不同的应用需求。

  • 相关阅读:
    ApacheHTTPClient的连接释放-EverNote同步
    Java序列化与反序列化
    SpringCloud 微服务注册中心 Eureka - Client
    基于 Python/Vue/D2 实现的CRM管理系统(客户管理,产品管理,商机管理,合同管理,客户公海,权限管理等业务模块)
    SwiftUI 布局大全之探索 SwiftUI 布局协议——创建自定义布局
    基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)
    第二套卷子
    机器学习基础16-建立预测模型项目模板
    VisionPro学习笔记(7)——FitLineTool
    Linux系统部署若依前后端分离项目(手把手教学)
  • 原文地址:https://blog.csdn.net/m0_72014660/article/details/133818936