学习笔记——SpringMVC消息转换器概述;使用消息转换器处理请求报文;使用消息转换器处理响应报文;使用消息转换器处理Json格式数据
2023-01-20
一、SpringMVC消息转换器概述
1、HttpMessageConverter<T>
消息转换器作用:
(1)将java对象与请求报文及响应报文进行相互转化
(2)使用HttpMessageConverter<T>将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息,Spring提供了两种途径:
①使用@RequestBody/@@ResponseBody对处理方式进行标注。
②使用HttpEntity<T>/ResponseEntity<T>作为处理方法的入参或返回值。
二、使用消息转换器处理请求报文
1、使用@RequestBody获取请求体
(1)语法
final static String SUCCESS = "success"; @RequestMapping("/testRequestBody") public String testRequestBody(@RequestBody String reqBody){ System.out.println("reqBody = " + reqBody); return SUCCESS; }
(2)注:使用@RequestBody必须以POST方式提交,不能使用GET方式(GET提交方式,没有请求体)
2、使用HttpEntity<T>对象,获取请求头及请求体
(1)语法:
@RequestMapping("/testHttpEntity") public String testHttpEntity(HttpEntity<String> httpEntity){ //获取请求头 System.out.println("httpEntity.getHeaders() = " + httpEntity.getHeaders()); //获取内容 System.out.println("httpEntity.getBody() = " + httpEntity.getBody()); return SUCCESS; }
(2)可以获取请求头及请求体
三、使用消息转换器处理响应报文
1、@ResponseBody
(1)位置:
①书写在class类上面(当前类所有方法,均返回文本,不调整页面)
②书写在方法上面
(2)语法
@RequestMapping("/testResponseBody") @ResponseBody public String testResponseBody(){ System.out.println("testResponseBody !!!"); return "hello"; }
四、使用消息转换器处理Json格式数据
1、导入jar包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency>
2、装配MappingJackson2HttpMessageConverter消息转换器
必须配置mvc:annotation-drive标签才能装配Jackson的转换器
3、在需要转换json数据的方法上,添加@ResponseBody
4、实例代码:
@RequestMapping("/testJSON") @ResponseBody public Employee testJSON(){ System.out.println("testJSON"); Employee employee = new Employee(1001,"zhangsan","123@163.com",1); return employee; }
分类:
SSM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南