Capítulo 7: HttpMessageConverter de SpringMVC

1. Introducción a HttpMessageConverter

①HttpMessageConverter, un convertidor de información de mensajes, convierte un mensaje de solicitud en un objeto Java o convierte un objeto Java en un mensaje de respuesta.

②HttpMessageConverter proporciona dos anotaciones y dos tipos

@RequestBody, @ResponseBody , entidad de solicitud, entidad de respuesta

2. Solicitud POST @RequestBody

@RequestBody puede obtener el cuerpo de la solicitud, debe establecer un parámetro formal en el método del controlador, usar @RequestBody para identificarlo, el cuerpo de la solicitud actual asignará un valor al parámetro formal identificado por la anotación actual

①index.html

 ②Controlador de índice

 Cuerpo de la solicitud de salida: requestBody: nombre de usuario = 666 y contraseña = 666

3.@RequestEntidad

RequestEntity encapsula un tipo de mensaje de solicitud. Es necesario establecer este tipo de parámetro en el parámetro del método del controlador. El mensaje de solicitud de la solicitud actual se asignará a este parámetro. La información del encabezado de la solicitud se puede obtener a través de getHeaders (), y la información del encabezado de la solicitud se puede obtener a través de getBody () Obtenga información del cuerpo de la solicitud.

①index.html

 ②Controlador de índice

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

encabezado de solicitud

[host:"localhost:8080",conexión:"keep-alive",cache-control:"max-age=0",sec-ch-ua:"" No es A;Marca";v="99",… ]

cuerpo de la solicitud

nombre de usuario = 1123 y contraseña = 666

4. A través de HttpServletResponse

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

apagar

 

5.@Cuerpo de respuesta

@ResponseBody se utiliza para identificar un método de controlador y el valor de retorno del método se puede responder directamente al navegador como el cuerpo de respuesta del mensaje de respuesta. Cuando se anota @ResponseBody, devuelve "éxito"; en lugar de ejecutar el nombre de la vista para cargar la página html, el cuerpo de la respuesta actual es "éxito" y el contenido se carga en la página.

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

el efecto es 

 6. SpringMVC procesa objetos json-java en cadenas en formato json

①Cree el objeto javaBean de User.class en el paquete Bean

 ② Escriba la identificación de la anotación del método @ResponseBody en el controlador

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

③La prueba informará el error 500

 ④Convertir a objeto json

Importar dependencias de Jackson en pom.xml

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

Habilite el controlador de anotaciones en springMVC.xml

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

prueba

 

Supongo que te gusta

Origin blog.csdn.net/jbkjhji/article/details/131067948
Recomendado
Clasificación