第7章:SpringMVC的HttpMessageConverter

news2024/11/28 0:29:10

1. HttpMessageConverter简介

①HttpMessageConverter,报文信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文

②HttpMessageConverter提供了两个注解和两个类型

@RequestBody,@ResponseBody,RequestEntity,ResponseEntity

2.@RequestBody POST请求

@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当前请求的请求体就会为当前注解所标识的形参赋值

①index.html

 ②IndexController

 输出请求体:requestBody:username=666&password=666

3.@RequestEntity

RequestEntity封装请求报文的一种类型,需要在控制器方法形参中设置该类型的形参,当前请求的请求报文会赋值给该形参,可以通过getHeaders()获取请求头信息,通过getBody()获取请求体信息。

①index.html

 ②IndexController

@RequestMapping("/testRequestEntity")
public String testRequestBody(RequestEntity<String> requestEntity){
   System.out.println("requestHeader:"+requestEntity.getHeaders());
   System.out.println("requestBody:"+requestEntity.getBody());
   return "success";
}

请求头

[host:"localhost:8080",connection:"keep-alive",cache-control:"max-age=0",sec-ch-ua:"" Not A;Brand";v="99",…]

请求体

username=1123&password=666

4.通过HttpServletResponse

@RequestMapping("/testResponse")
public void testRes(HttpServletResponse response) throws IOException {
   response.getWriter().print("hahahaha");
}

结果是

 

5.@ResponseBody

@ResponseBody用于标识一个控制器方法,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器。@ResponseBody 注解时,return “success”;不是执行视图名称加载html页面了,而是当前的响应体是“success”内容加载到页面上。

@RequestMapping("/testResponseBody")
@ResponseBody
public String testResBoy(){
   return "success内容";
}

效果是 

 6.SpringMVC处理json--java对象转换为json格式字符串

①创建bean包下的User.class的javaBean对象

 ②在控制器写方法@ResponseBody注解标识

@RequestMapping("/testResponseUser")
@ResponseBody
public User testResUser(){
   return new User(101,"daming","666",12,"男");
}

③测试会报错500

 ④转换为json对象

在pom.xml导入jackson的依赖

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

在springMVC.xml开启注解驱动

 <!--开启mvc注解驱动-->
<mvc:annotation-driven />

测试

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入详解CFS任务放置代码

一、前言 本文出现的内核代码来自Linux5.10.61&#xff0c;为了减少篇幅&#xff0c;我们对引用的代码进行了删减&#xff08;例如去掉了NUMA的代码&#xff0c;毕竟手机平台上我们暂时不关注这个特性&#xff09;&#xff0c;如果有兴趣&#xff0c;读者可以配合完整的源代码…

Spring Boot JAVA 统一返回的信息

现在的项目是前后端开发的居多&#xff0c;那么&#xff0c;后端的开发只需要返回相关的接口就行了。那么&#xff0c;我们怎么定义接口返回的数据&#xff0c;怎么使用 Spring Boot 来统一处理返回的信息呢&#xff1f; 开发环境如下&#xff1a; IntelliJ IDEA 2021.2.2 (U…

linuxOPS基础_linux权限管理

权限概述 什么是权限 ​ 在多用户计算机系统的管理中&#xff0c;权限是指某个特定的用户具有特定的系统资源使用权利。 在Linux 中分别有读、写、执行权限 \权限针对文件权限针对目录读r(read)表示可以查看文件内容&#xff1b;cat、less…表示可以(ls)查看目录中存在的文…

无人机+ AI 图像分析:里斯本大学高效检测林业害虫

内容一览&#xff1a;早期发现虫害对于因地制宜采取防控措施至关重要。尽管遥感技术可用于快速扫描大面积区域&#xff0c;但面对低强度信号或难以检测的物体&#xff0c;其效果并不尽如人意。因此&#xff0c;里斯本大学研究人员将无人机与 AI 图像分析相结合&#xff0c;在此…

如何对自动化测试工具选型?这4个因素必须要拿捏好

测试开发工程师再做自动化时避免不了针对每个工具进行选型。今天就来看下工具选型的方法。 一&#xff1a;工具选型方法 在作为一名自动化测试开发工程师时&#xff0c;选择合适的 Web 自动化工具非常关键。以下是一些评估和选择工具的依据和方法&#xff1a; 1.支持的语言和…

接口测试介绍以及用例编写

6.1 接口 6.1.1 接口概述 定义&#xff1a; 接口就是API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;&#xff0c;是一个软件或服务对外提供的接口&#xff0c;别人只要调用这接口&#xff0c;而内部如何实现&#xff0c;不需要关心。…

608教室使用方法

一、教室平面图 608教室的布局如下&#xff0c;重要的设备已经在图中标出。总开关、一体机和机柜。   二、使用方法 2.1 房间机器上电 进门后首先走到“总开关位置”&#xff0c;将电匝闭合。 原来的开关如图所示&#xff0c;有3组开关&#xff0c;1号组开关用于控制插座、…

突破办公瓶颈,推荐5款电脑办公软件

1.AnyTXT AnyTXT是一款搜文件内容的第三方全文搜索工具&#xff0c;速度极快&#xff0c;基本秒出结果。而且右边可以直接预览文件&#xff0c;筛选&#xff0c;复制&#xff0c;翻译等功能丰富&#xff0c;完美替代自带的搜索。 2.Groupy 这是用于快速切换窗口的小型精致工…

微信支付_Native支付流程

介绍 商户后台系统先调用微信支付的Native下单接口&#xff0c;微信后台系统返回链接参数code_url&#xff0c;商户后台系统将code_url值生成二维码图片&#xff0c;用户使用微信客户端扫码后发起支付。微信支付-开发者文档 注意&#xff1a; code_url有效期为2小时&#xff0…

spring实例化bean整体流程

AbstractApplicationContext类的invokeBeanFactoryPostProcessors方法把所有bean变成了beanDefinition&#xff0c;然后在finishBeanFactoryInitialization方法中完成实例化。 实例化过程只分析单例 1.DefaultListableBeanFactory#preInstantiateSingletons方法 这个方法的功…

养元发起“爱心送考车”全国行动,慈善榜样如何炼成?

入夏不久&#xff0c;六个核桃的经销商们&#xff0c;开始忙起来了。 正值一年一度的高考季&#xff0c;随着越来越多的学子感受到人生重要时刻的期待、激动与紧张&#xff0c;这种氛围也开始牵动社会的心。高考前夕&#xff0c;六个核桃联合全国经销商发起“爱心送考车”公益…

【JavaEE】HTTPS加密原理

HTTPS加密原理✿✿ヽ(▽)ノ✿ 文章目录 JavaEE & HTTPS加密原理1. 为什么要加密2. HTTPS加密原理2.1 初始想法2.2 引入非对称加密2.3 中间人攻击2.4 引入证书 JavaEE & HTTPS加密原理 1. 为什么要加密 例子&#xff1a;&#xff08;运营商劫持&#xff09; 你可能经常…

亚马逊云科技基于智能搜索,为企业打造知识库

知识库需求在各行各业中普遍存在&#xff0c;例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。亚马逊云科技为保证推荐系统的时效性和准确性&#xff0c;需要大量的数据/算法/软件工程师的人力投入和包括硬…

Threejs 快速入门

最小环境 首先&#xff0c;在正式学习Threejs前&#xff0c;有几个概念需要说明的。Threejs在底层其实还是调用html5中的canvas api来实现绘图的。但和我们一般绘制2D图像不同&#xff0c;Threejs在底层使用的是canvas的webgl context来实现3D绘图。webgl context本身更多是直…

如何向gitee开源项目提交代码

文章目录 前言登录账号fork项目fork完成拉去代码check out出分支开发提交代码到自己的远程仓库创建pull requestcreate pull request 前言 如何向开 源 项 目 提交自己的代码呢&#xff1f;相信很多小伙伴都会看到比较不错的开源项目&#xff0c;然后想在此基础上实现自己的代…

读财报丨Q1保费环比增长33.4%,慧择增长源泉来自于何处?

一季度我国经济表现开局良好&#xff0c;保险行业增长态势明朗。从财报来看&#xff0c;中国人寿、中国平安、中国人保、新华保险、中国太保等大型上市险企Q1净利润纷纷超预期&#xff0c;随着巨头业绩转暖&#xff0c;保险中介行业也迎来了发展好时机。 近日&#xff0c;国内…

Xshell安装教程-Xshell 7激活教程-Xshell换机转移许可证详解

Xshell 7是一款功能强大的终端模拟器&#xff0c;支持SSh2&#xff0c;SSh3&#xff0c;SFTP&#xff0c;TELNET&#xff0c;RLOGIN和SERIAL。通过提供业界先进的性能&#xff0c;Xshell包含了其他SSH客户端无法发现的功能和优势。 本篇文章主要为大家介绍Xshell 7的安装、激活…

自动化回归测试工具—— AREX 上手实践

AREX 是一款开源的自动化测试工具平台&#xff0c;基于 Java Agent 技术与比对技术&#xff0c;通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能&#xff0c;无需编程能力也可快速上手。 AREX 可以通过 Docker-Compose …

当开发同事辞职,接手到垃圾代码怎么办?

目录 一、前言 二、开发中的另一种选择 三、低代码概念 四、低代码在开发中的优势 01、开发效率提高 02、开发成本减少 03、维护性更高 五、有低代码后就不要开发了? 一、前言 事实上&#xff0c;垃圾项目是日积月累而成的&#xff0c;所谓冰冻三尺非一日之寒&#xf…

列表与字典—>一维列表

这一期内容可以结合着与第一期一起看https://guidm.blog.csdn.net/article/details/130900129?spm1001.2014.3001.5502 让我们来先做个题目&#xff1a; 1、输入一个整数n&#xff0c;要求输出[1,n]范围内的所有完数。 完数是一个正整数&#xff0c;该数恰好等于其所有不同…