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

SpringMVC-HttpMessageConverter 报文信息转化器

文章目录

  • HttpMessageConverter
    • 一、概念
    • 二、@RequestBody
    • 三、RequestEntity
    • 四、 @ResponseBody
      • 1.返回JSON格式的字符串
    • 五、@RestController
    • 六、ResponseEntity

HttpMessageConverter

一、概念

报文信息转化器,将请求报文转化为Java对象,或将Java对象转化为响应报文

二、@RequestBody

接收请求体的内容

<form th:action="@{/requestBody}" method="post">用户名<input name="username" type="text"><br>密码<input type="password" name="password"> <br><input type="submit" value="RequestBody">
</form>
@RequestMapping("/requestBody")public String testrequestBody(@RequestBody String requestBody){System.out.println(requestBody);return "target";}

在这里插入图片描述

三、RequestEntity

<form th:action="@{/requestEntity}" method="post">用户名<input name="username" type="text"><br>密码<input type="password" name="password"> <br><input type="submit" value="RequestBody">
</form>
@RequestMapping("/requestEntity")public String testrequestEntity(RequestEntity<String> requestBody){System.out.println(requestBody.getHeaders()); //获取请求头System.out.println(requestBody.getBody()); //获取请求体return "target";}

四、 @ResponseBody

@ResponseBody 标识到一个控制类的方法上,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器

 @ResponseBody@RequestMapping("/responseBody")public String testRequestBody(){return "target";  //把target直接输入到页面上}

在这里插入图片描述

1.返回JSON格式的字符串

1.pom.xml添加依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version>
</dependency>

2.在SpringMVC配置文件中,开启注解驱动

<mvc:annotation-driven/>

3.在控制器方法上加上@ResponseBody

	@ResponseBody@RequestMapping("/responseBody1")public User testRequestUser(){return new User(12,"cc","1234","男","cc.qq.com");  }

4.浏览器效果
在这里插入图片描述

五、@RestController

@RestController注解是springMVC提供的一个复合注解,标识在控制器的类上,就相当于为类添加了@Controler注解,并且为其中的每个方法添加了@ResponseBody注解

六、ResponseEntity

ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文
用于实现文件的下载

http://www.lryc.cn/news/288929.html

相关文章:

  • [AG32VF407]国产MCU+FPGA 使用I2C测试陀螺仪MPU6050
  • ES 可扩展、高可靠、使用场景等常见问题
  • <网络安全>《4 网络安全产品之web应用防护系统》
  • 如何解决Flutter应用程序的兼容性问题
  • 详解Mockito
  • 【论文+App试玩+图像到视频】2311.Animate-anyone:上传1张图片为任何人制作动画(用于角色动画的一致且可控的图像到视频合成)(暂未开源)
  • 【深度学习实验】TensorBoard使用教程【SCALARS、IMAGES、TIME SERIES】
  • 渗透测试(12)- WireShark 网络数据包分析
  • XSS_Labs靶场通关笔记
  • 基于本地缓存制作一个分库分表的分布式ID生成器
  • 美易平台:金融市场的晴雨表与创新服务的融合
  • 文旅项目包括什么?
  • Pointnet++改进优化器系列:全网首发AdamW优化器 |即插即用,实现有效涨点
  • stm32 FOC 电机介绍
  • 【Linux】进程通信——管道
  • 3d gaussian splatting笔记(paper部分翻译)
  • TCP 三次握手以及滑动窗口
  • Vue3 Cli5按需导入ElementPlus
  • playwright自动化项目搭建
  • mysql字符集
  • Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合
  • [AIGC大数据基础] Flink: 大数据流处理的未来
  • 数据结构之线性表(一般的线性表)
  • uniapp安卓android离线打包本地打包整理
  • vmware安装centos8-stream
  • 使用HttpServletRequestWrapper解决web项目request数据流无法重复读取的问题
  • 从CNN ,LSTM 到Transformer的综述
  • Git学习笔记:1 基础命令详解
  • 【服务器】安装宝塔面板
  • 开源模型应用落地-业务优化篇(一)