请求映射掌握:探讨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";
    }
}


相关文章
|
6天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
293 3
|
4天前
|
前端开发 Java 关系型数据库
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
|
5天前
|
Java
Springboot 使用自定义注解结合AOP方式校验接口参数
Springboot 使用自定义注解结合AOP方式校验接口参数
Springboot 使用自定义注解结合AOP方式校验接口参数
|
6天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(下)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
7 0
|
6天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(上)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
7 0
|
6天前
|
存储 缓存 Java
【JavaEE】Spring中注解的方式去获取Bean对象
【JavaEE】Spring中注解的方式去获取Bean对象
3 0
|
6天前
|
存储 Java 对象存储
【JavaEE】Spring中注解的方式去存储Bean对象
【JavaEE】Spring中注解的方式去存储Bean对象
9 0
|
6天前
|
JSON 前端开发 Java
【JAVA进阶篇教学】第七篇:Spring中常用注解
【JAVA进阶篇教学】第七篇:Spring中常用注解
|
6天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
14 0
|
6天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
20 1