请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用

简介: 请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用

@RequestMapping

@RequestMappingSpring MVC 中的一个注解,用于将 HTTP 请求映射到控制器的处理方法,从而指定控制器中的方法如何处理来自客户端的 HTTP 请求。

语法

  • @RequestMapping 可用于类和方法级别。
  • 在类级别上使用时,它将为该类中所有处理方法提供通用的基础路径(统一前缀)。可以更好的按照功能模块进行区分,有利于模块化的管理维护。
  • 在方法级别上使用时,它将指定该方法可以处理的 HTTP 请求类型和路径,支持为同一个方法指定多个路径。
@RequestMapping(value = "deleteUser")
@RequestMapping(value = {"addUser", "saveUser"})

请求类型

  • @RequestMapping 支持与 HTTP 请求相关的方法,例如 GET、POST、PUT、DELETE 等。
  • 可以通过指定 method 属性来指定所需的 HTTP 请求方法类型。如果未指定,则默认支持所有请求方法类型。支持为同一个方法指定多个请求方式。
@RequestMapping(value = "hello", method = RequestMethod.POST)
@RequestMapping(value = "hello", method = {RequestMethod.POST, RequestMethod.PUT})
  • 当用户发起了 @RequestMapping 不支持的请求操作,SpringMVC 在服务器端抛出一个 405 错误 Method Not Allowed。

路径匹配

  • @RequestMapping 支持 Ant-style 路径模式和正则表达式路径模式,用于匹配 URL 路径。
  • Ant-style 路径模式中,可以使用通配符和占位符来表示变量。
  • 正则表达式路径模式中,可以使用标准的 Java 正则表达式语法来匹配 URL 路径。

请求参数和头部信息

  • @RequestMapping 还支持与请求参数和头部信息相关的条件匹配,例如请求参数名称、值、存在性和头部信息。
  • 可以通过指定 paramsheaders 属性来指定所需的请求参数和头部信息的条件,以便在控制器方法中进行条件性检查。

示例

package world.xuewei.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 用户控制器
 *
 * @author 薛伟
 * @since 2023/10/31 16:18
 */
@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping(value = "deleteUser")
    public String deleteUser(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("UserController.deleteUser");
        return "/hello.jsp";
    }
    /**
     * 为同一个方法指定两个访问路径
     */
    @RequestMapping(value = {"addUser", "saveUser"}, method = RequestMethod.POST)
    public String saveUser(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("UserController.saveUser");
        return "/hello.jsp";
    }
    /**
     * 为同一个方法指定多个请求方式
     */
    @RequestMapping(value = "updateUser", method = {RequestMethod.POST, RequestMethod.PUT})
    public String updateUser(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("UserController.saveUser");
        return "/hello.jsp";
    }
}


相关文章
|
19天前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
150 73
|
14天前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
45 21
|
19天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
19天前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
2月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
165 2
|
5月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
72 0
|
8月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
233 0
|
8月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
92 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
178 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
116 0