El objeto Respuesta transmite principalmente los resultados procesados por el contenedor JSP al cliente. Puede configurar el estado HTTP y enviar datos al cliente a través de la variable de respuesta, como cookies, información del encabezado del archivo HTTP, etc.
Una respuesta típica se ve así:
HTTP/1.1 200 OKTipo de contenido: texto/htmlEncabezado2: ...EncabezadoN: ... (Línea en blanco)<!doctype ...><html><head>...</head><body> ... </cuerpo></html>
La línea de estado contiene información de la versión HTTP, como HTTP/1.1, un código de estado, como 200, y un mensaje muy corto correspondiente al código de estado, como OK.
La siguiente tabla resume las partes más útiles de los encabezados de respuesta HTTP 1.1, que verá con frecuencia en la programación de redes:
encabezado de respuesta | describir |
---|---|
Permitir | Especifique los métodos de solicitud admitidos por el servidor (GET, POST, etc.) |
Control de caché | Especifica las circunstancias bajo las cuales los documentos de respuesta se pueden almacenar en caché de forma segura. Normalmente el valor es público , privado o sin caché , etc. Público significa que el documento se puede almacenar en caché y Privado significa que el documento solo se entrega a un único usuario y solo puede usar caché privado. Sin caché significa que el documento no está almacenado en caché. |
Conexión | Indica al navegador si debe utilizar conexiones HTTP persistentes. El valor de cierre indica al navegador que no utilice conexiones HTTP persistentes, mientras que mantener vivo significa utilizar conexiones persistentes. |
Disposición de contenido | Deje que el navegador le pida al usuario que almacene la respuesta en el disco con el nombre indicado. |
Codificación de contenido | Especificar las reglas de codificación para la página durante la transmisión. |
Idioma del contenido | El idioma utilizado para expresar el documento, como en, en-us, ru, etc. |
Longitud del contenido | Indica el número de bytes de la respuesta. Sólo es útil si el navegador utiliza conexiones HTTP de mantenimiento de conexión |
Tipo de contenido | Indica el tipo MIME utilizado por el documento. |
Vence | Indicar cuándo caducar y eliminar del caché |
Última modificación | Indica cuándo se modificó el documento por última vez. El cliente puede almacenar en caché el documento y proporcionar un encabezado de solicitud If-Modified-Since en solicitudes posteriores. |
Ubicación | En 300 segundos, incluidas todas las direcciones de respuesta con un código de estado, el navegador se volverá a conectar automáticamente y recuperará nuevos documentos. |
Refrescar | Indica con qué frecuencia el navegador solicita actualizaciones de la página. |
Reintentar después | Se utiliza con 503 (Servicio no disponible) para indicarle al usuario cuánto tiempo pasará antes de que se responda la solicitud. |
Conjunto de cookies | Indicar la cookie correspondiente a la página actual |
El objeto de respuesta es una instancia de la clase javax.servlet.http.HttpServletResponse. Así como el servidor crea el objeto de solicitud, también crea una respuesta del cliente.
El objeto de respuesta define la interfaz para manejar la creación de encabezados HTTP. Al utilizar este objeto, los desarrolladores pueden agregar nuevas cookies o marcas de tiempo, códigos de estado HTTP y más.
La siguiente tabla enumera los métodos utilizados para configurar los encabezados de respuesta HTTP. Estos métodos los proporciona la clase HttpServletResponse:
SN | Método y descripción |
---|---|
1 | String encodeRedirectURL(String url) codifica la URL utilizada por el método sendRedirect() |
2 | String encodeURL(String url) codifica la URL y devuelve la URL que contiene el ID de sesión. |
3 | booleano contiene encabezado (nombre de cadena) devuelve si el encabezado de respuesta especificado existe |
4 | boolean isCommitted() devuelve si la respuesta se ha enviado al cliente |
5 | void addCookie(Cookie cookie) agrega la cookie especificada a la respuesta |
6 | void addDateHeader (nombre de cadena, fecha larga) agrega el encabezado de respuesta y el valor de fecha del nombre especificado |
7 | void addHeader (nombre de cadena, valor de cadena) agrega el encabezado de respuesta y el valor del nombre especificado |
8 | void addIntHeader (nombre de cadena, valor int) agrega el encabezado de respuesta y el valor int del nombre especificado |
9 | void FlushBuffer() escribe el contenido de cualquier caché en el cliente. |
10 | void reset() borra cualquier dato en cualquier caché, incluidos los códigos de estado y varios encabezados de respuesta |
11 | void resetBuffer() borra los datos básicos de la caché, excluyendo los encabezados de respuesta y los códigos de estado |
12 | void sendError(int sc) envía una respuesta de error al cliente utilizando el código de estado especificado y luego borra el caché |
13 | void sendError(int sc, String msg) envía una respuesta de error al cliente utilizando el código de estado y el mensaje especificados |
14 | void sendRedirect (ubicación de cadena) envía una respuesta indirecta temporal al cliente utilizando la URL especificada |
15 | void setBufferSize(int size) establece el tamaño del búfer del cuerpo de la respuesta |
16 | void setCharacterEncoding (String charset) especifica el conjunto de codificación de respuesta (juego de caracteres MIME), como UTF-8 |
17 | void setContentLength(int len) especifica la longitud del contenido de la respuesta en los servlets HTTP. Este método se utiliza para configurar el encabezado de información HTTP Content-Length. |
18 | void setContentType(String type) establece el tipo de contenido de la respuesta, si la respuesta aún no se ha enviado |
19 | void setDateHeader (nombre de cadena, fecha larga) establece el nombre y el contenido del encabezado de respuesta utilizando el nombre y valor especificados |
20 | void setHeader(nombre de cadena, valor de cadena) establece el nombre y el contenido del encabezado de respuesta utilizando el nombre y valor especificados |
veintiuno | void setIntHeader (nombre de cadena, valor int) establece el nombre y el contenido del encabezado de respuesta utilizando el nombre y valor especificados |
Veintidós | void setLocale(Locale loc) establece la configuración regional de la respuesta, si la respuesta aún no se ha enviado |
veintitrés | void setStatus(int sc) establece el código de estado de la respuesta |
El siguiente ejemplo utiliza el método setIntHeader() y el método setRefreshHeader() para simular un reloj digital:
<%@ page import="java.io.*,java.util.*" %><html><head><title>Ejemplo de encabezado de actualización automática</title></head><body><center><h2 >Ejemplo de encabezado de actualización automática</h2><% //Establece la actualización automática cada 5 segundos respuesta.setIntHeader("Refresh", 5); //Obtiene la hora actual Calendar calendar = new GregorianCalendar(); am_pm; int hora = calendario.get(Calendario.HORA); int minuto = calendario.get(Calendario.MINUTO); int segundo = calendario.get(Calendario.SEGUNDO); 0) am_pm = "AM"; else am_pm = "PM"; Cadena CT = hora+":"+ minuto +":"+ segundo +" "+ am_pm; out.println("La hora actual es: " + CT + "n"); %></center></body></html>
Guarde el código anterior como main.jsp y acceda a él a través de su navegador. Mostrará la hora actual del sistema cada 5 segundos.
Los resultados de ejecución son los siguientes:
Ejemplo de encabezado de actualización automática La hora actual es: 9:44:50 p. m.
También puede modificar el código anterior usted mismo y probar otros métodos para obtener una comprensión más profunda.