【Java闭关修炼】SpringMVC-HttpMeaasgeConverter
- 概述
- RequestBody
- RequestEntity
- 使用原生servlet响应浏览器
- ResponseBody
概述
浏览器发送到服务器,将请求报文转换为java对象
服务器响应浏览器,将java对象转换成响应报文
RequestBody
将请求体中的请求报文转换成java对象
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String requestBody) {
System.out.println(requestBody);
return "success";
}
RequestEntity
获取整个请求报文的信息
@RequestMapping("/testRequestEntity")
public String testRequestEntity(RequestEntity<String> requestEntity){
// requestEntity 表示整个请求报文的信息
System.out.println("请求头:" + requestEntity.getHeaders());
System.out.println("请求体:" + requestEntity.getBody());
return "success";
}
使用原生servlet响应浏览器
@RequestMapping("/testResponse")
public void testResponse(HttpServletResponse response) throws IOException {
response.getWriter().print("hello response");
}
ResponseBody
将方法的返回值直接作为响应报文的响应体相应到浏览器
加上responseBody注解 方法返回的是响应体
下面具体返回一个java对象,但是返回的是json格式
- 导入jackson依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.5</version>
</dependency>
- 在SpringMVC的核心配置文件中开启mvc注解驱动,此时在HandlerAdaptor自动装配一个消息转换器,可以将相应到浏览器的Java对象转换成json格式的字符串
<mvc: annotation-driven/>
-
在处理器方法上使用@ResponseBody注解进行标识
-
将Java对象直接作为控制器方法的返回值返回,就会自动转换为json格式的字符串
@RequestMapping("/testResponseBody")
@ResponseBody
public User testResponseBody(){
// 通过responsBody 注解 返回浏览器一个类
return new User(1001,"admin","123456",23,"男");
}