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

SpringMVC请求与响应

SpringMVC请求与响应

请求映射

在 SpringMVC 中,请求映射(Request Mapping)是核心机制之一,它负责将客户端发送的 HTTP 请求与控制器(Controller)中的具体方法建立关联,是请求进入后端处理的 “入口导航”。

  1. 基础注解
    @RequestMapping 是 SpringMVC 中定义请求映射的基础注解,可用于类级别和方法级别,作用是指定一个 HTTP 请求的路径、方法、参数等条件,当请求满足条件时,会被映射到对应的控制器方法。
    标注在类上:为当前类所有方法的请求路径指定「父路径」,缩小映射范围。
    标注在方法上:指定具体的请求路径,与类上的路径共同组成完整路径。
    路径也可以不编写,/ 表示应用的根目录开始

  2. 派生注解
    为了简化method属性的使用,Spring4.3 之后提供了一系列派生注解,它们本质是@RequestMapping结合特定method的快捷方式:

派生注解对应 HTTP 方法等价于
@GetMappingGET(查询数据)@RequestMapping(method = RequestMethod.GET)
@PostMappingPOST(提交数据)@RequestMapping(method = RequestMethod.POST)
@DeleteMappingDELETE(删除数据)@RequestMapping(method = RequestMethod.DELETE)
  1. 路径变量(@PathVariable
    当请求路径中包含动态参数时,可通过@PathVariable注解获取路径中的变量
    在@RequestMapping的路径中,用 {变量名} 定义路径变量,在方法参数中,用 @PathVariable("变量名") 绑定变量值(变量名可省略,前提是参数名与路径变量名一致)。
  2. 请求参数映射(@RequestParam
    用于获取 HTTP 请求中的参数,并绑定到方法参数。
    value/name:指定请求参数名(参数名与变量名不一致时使用)。
    required:是否必填(默认true,必填时若参数不存在则抛 400 错误)。
    defaultValue:默认值(设置后required自动为false)。
  3. 请求体映射(@RequestBody
    当客户端发送包含数据的请求体时,@RequestBody 可以将其自动转换为对应的 Java 对象,无需手动解析,需配合消息转换器,如 Jackson 处理 JSON.
    @ResponseBody 是一个用于处理控制器方法返回值的注解,主要作用是将方法的返回值直接作为 HTTP 响应体返回给客户端,而不是通过视图解析器渲染成页面。

下面是代码演示:

	@RequestMapping("/save")@ResponseBodypublic String save(String username,String password){System.out.println("save方法执行了........."+username+"......"+password);return "success";}

在这里插入图片描述

路径变量用法

    @PostMapping("/delete/{id}")@ResponseBodypublic String delete(@PathVariable Integer id){return "success";}

将数据封装在model中进行传参形式:

package com.qcby.entity;public class LoginUser {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "LoginUser{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}
}
    @RequestMapping("/save1")@ResponseBodypublic String save1(LoginUser loginUseruser){System.out.println("save1方法执行了............");return "success";}

数据响应

用于返回 JSON/XML 等数据,核心是通过 @ResponseBody 注解跳过页面解析,直接将数据转为响应体返回给客户端,而不是通过视图解析器渲染成页面。

简化用法:用 @RestController 注解替代 @Controller + @ResponseBody,类中所有方法默认返回数据(不跳转页面)。

下面是代码演示:

    @DeleteMapping("/deleteBatch")@ResponseBodypublic Result deleteBatch(@RequestBody List<User> list){userService.deleteBatch(list);return Result.success();}
http://www.xdnf.cn/news/17924.html

相关文章:

  • FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)
  • Opencv 边界填充 图像运算 阈值处理 和图像平滑处理
  • 【Linux基础知识系列】第九十四篇 - 如何使用traceroute命令追踪路由
  • 【从零开始学习Redis】项目实战-黑马点评D1
  • 【代码随想录day 20】 力扣 538.把二叉搜索树转换为累加树
  • 计算机网络---传输控制协议Transmission Control Protocol(TCP)
  • 数据结构之顺序表相关算法题
  • Qt---Qt函数库
  • 西门子PLC通过稳联技术EtherCAT转Profinet网关连接baumuller伺服器的配置案例
  • Java基础 8.14
  • linux中的dump命令
  • Python训练营打卡Day32-神经网络的训练
  • 问题总结三
  • 财务自动化软件敏感数据泄露风险评估与防护措施
  • AI幻觉终结之后:GPT-5开启的“可靠性”新赛道与开发者生存指南
  • 边缘光效果加流光效果
  • 在启智平台使用A100对文心开源大模型Ernie4.5 0.3B微调(失败)
  • iOS混淆工具有哪些?游戏 App 防护下的混淆与加固全攻略
  • 应用银行卡识别技术,构建更安全、便捷的数字身份认证与支付生态
  • Linux下使用Samba 客户端访问 Samba 服务器的配置(Ubuntu Debian)
  • 分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
  • 蓝桥杯STL stack
  • 【百度拥抱开源】百度开源文心一言视觉大模型—— ERNIE-4.5-VL
  • 《算法导论》第 24 章 - 单源最短路径
  • C# 贪吃蛇游戏
  • 审批流程系统设计与实现:状态驱动、灵活扩展的企业级解决方案
  • 调整磁盘分区格式为GPT
  • PyCharm性能优化与大型项目管理指南
  • 在CentOS系统中怎么查看Apache日志文件
  • Nginx学习笔记(八)—— Nginx缓存集成