前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >@RequestMapping

@RequestMapping

原创
作者头像
用户4396583
发布2024-07-16 09:04:22
830
发布2024-07-16 09:04:22
举报
文章被收录于专栏:spring-boot 注解spring

@RequestMapping

@RequestMapping 是 Spring Framework 中用于映射 URL 到控制器方法的注解。它被用于将一个特定的 URL 请求映射到一个处理该请求的方法上。在 Spring 的 Web 应用程序中,@RequestMapping 注解通常用于控制器类的方法上,以确定哪个方法将处理特定的 HTTP 请求。

@RequestMapping注解对请求处理类中的请求处理方法进行标注;@RequestMapping注解拥有以下的六个配置属性:

  • value:映射的请求URL或者其别名
  • method:兼容HTTP的方法名
  • params:根据HTTP参数的存在、缺省或值对请求进行过滤
  • header:根据HTTP Header的存在、缺省或值对请求进行过滤
  • consume:设定在HTTP请求正文中允许使用的媒体类型
  • product:在HTTP响应体中允许使用的媒体类型

提示:在使用@RequestMapping之前,请求处理类还需要使用@Controller或@RestController进行标记

下面是使用@RequestMapping的两个示例:

@RequestMapping还可以对类进行标记,这样类中的处理方法在映射请求路径时,会自动将类上@RequestMapping设置的value拼接到方法中映射路径之前,如下:

基本使用:

代码语言:java
复制
@RequestMapping("/path")
public String handleRequest() {
    // 处理请求的逻辑
    return "viewName"; // 返回视图名称
}

在这个例子中,当请求的 URL 匹配 “/path” 时,Spring 将调用 handleRequest 方法来处理该请求,并返回一个与视图相关的名称。

  • HTTP 方法映射:
代码语言:java
复制
@RequestMapping(value = "/path", method = RequestMethod.GET)
public String handleGetRequest() {
    // 处理 GET 请求的逻辑
    return "viewName";
}

可以通过 method 属性指定处理的 HTTP 方法。默认情况下,它匹配所有的 HTTP 方法。

  • 多路径映射:
代码语言:java
复制
@RequestMapping(value = {"/path1", "/path2"})
public String handleMultiplePaths() {
    // 处理多个路径的逻辑
    return "viewName";
}

通过提供多个路径,可以将多个 URL 映射到同一个处理方法上。


  • 请求参数匹配:
代码语言:java
复制
@RequestMapping(value = "/path", params = "paramName=value")
public String handleParamRequest() {
    // 处理带有特定参数的请求的逻辑
    return "viewName";
}

通过 params 属性,可以根据请求参数进行匹配,以决定是否调用特定的处理方法。


  • 请求头匹配:
代码语言:java
复制
@RequestMapping(value = "/path", headers = "headerName=value")
public String handleHeaderRequest() {
    // 处理带有特定请求头的请求的逻辑
    return "viewName";
}

通过 headers 属性,可以根据请求头信息进行匹配。


  • 消费类型和产出类型:
代码语言:java
复制
@RequestMapping(value = "/path", consumes = "application/json", produces = "text/html")
public String handleMediaTypeRequest() {
    // 处理特定媒体类型的请求的逻辑
    return "viewName";
}

通过 consumes 属性可以指定接受的请求的媒体类型,通过 produces 属性可以指定生成的响应的媒体类型。


  • 路径变量:
代码语言:java
复制
@RequestMapping("/path/{variable}")
public String handlePathVariable(@PathVariable String variable) {
    // 使用路径变量的值进行处理
    return "viewName";
}

使用 {} 语法可以捕获 URL 中的路径变量,并将其传递给方法参数。


  • Ant 风格路径:
代码语言:java
复制
@RequestMapping("/path/*/resource")
public String handleAntPath() {
    // 处理 Ant 风格的路径匹配
    return "viewName";
}

使用通配符 * 和 ** 可以实现 Ant 风格的路径匹配。

@RequestMapping 可以根据实际需要的情况进行组合和使用,以实现更加灵活的 URL 映射。从 Spring 4.3 开始,还引入了更具体的注解如 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping 等,分别用于更方便地定义 GET、POST、PUT、DELETE 请求的映射。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • @RequestMapping
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档