English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El objeto de respuesta Response principalmente transmite los resultados procesados por el contenedor JSP de vuelta al cliente. Se puede configurar el estado HTTP a través de la variable response y enviar datos al cliente, como Cookie, información de encabezado HTTP, etcétera.
Una respuesta típica se vería así:
HTTP/1.1 200 OK Content-Tipo: ...text/html Encabezado2: ... ... EncabezadoN: ... (espacio en blanco) <!doctype ...> <html> <head>.../<head> <body> ... </body> </html>
La línea de estado contiene información de la versión de HTTP, por ejemplo, HTTP/1.1, un código de estado, por ejemplo200, y hay información muy corta que coincide con el código de estado, por ejemplo, OK.
La siguiente tabla resume los HTTP1.1Parte más útil del encabezado de respuesta, que verás a menudo en la programación de red:
Encabezado de respuesta | Descripción |
---|---|
Permitir | Especifica los métodos de solicitud que admite el servidor (GET, POST, etcétera) |
Cache-Control | Especifica las condiciones en las que el documento de respuesta puede almacenarse de manera segura. Generalmente toma valores como public,private ono-cache etcétera. Public significa que el documento se puede almacenar en caché, Private significa que el documento es para un solo usuario y solo se puede usar la caché privada. No-Cache significa que el documento no se almacenará en caché. |
Conexión | Comanda al navegador si debe utilizar la conexión HTTP persistente.cerrarValor Comanda al navegador que no utilice la conexión HTTP persistente, en su lugar keep-Keep alive significa que se utiliza una conexión persistente. |
Content-Disposition | Hace que el navegador solicite al usuario que almacene la respuesta en el disco con el nombre dado |
Content-Encoding | Especifica las reglas de codificación de la página durante la transferencia |
Content-Language | Expresa el idioma utilizado por el documento, por ejemplo, en, en-us, ru, etcétera |
Content-Length | Indica el número de bytes de la respuesta. Sólo es útil cuando el navegador utiliza una conexión persistente (keep)-Sólo es útil cuando se utiliza una conexión HTTP persistente (keep alive) |
Content-Type | Indica el tipo MIME utilizado por el documento |
Expires | Señala cuándo expira y se elimina de la caché |
Last-Modificado | Señala la hora de la última modificación del documento. El cliente puede almacenar el documento y proporcionar uno en las solicitudes posteriores. Si-Modificado-DesdeEncabezado de solicitud |
Location | En3Dentro de 00 segundos, todas las direcciones de respuesta que contienen un estado de código, el navegador se reconectará automáticamente y buscará el nuevo documento |
Refresh | Indicar cuánto tiempo el navegador debe actualizar la página |
Retry-Después | Con503 Usado junto con (Service Unavailable) para informar al usuario cuánto tiempo después se responderá a la solicitud |
Set-Cookie | Indicar el cookie correspondiente a la página actual |
El objeto response es un ejemplo de la clase javax.servlet.http.HttpServletResponse. Al igual que el servidor crea el objeto request, también crea una respuesta del cliente.
El objeto response define la interfaz para manejar la creación de encabezados de información HTTP. Al usar este objeto, los desarrolladores pueden agregar nuevos cookies o marcas de tiempo, y códigos de estado HTTP, entre otros.
La siguiente tabla enumera los métodos utilizados para configurar encabezados de respuesta HTTP, proporcionados por la clase HttpServletResponse:
N° | Método & Descripción |
---|---|
1 | String encodeRedirectURL(String url) Codificar URL utilizada por el método sendRedirect() |
2 | String encodeURL(String url) Codificar URL, devolver URL que contiene Session ID |
3 | boolean containsHeader(String name) Devolver si el encabezado especificado existe |
4 | boolean isCommitted() Devolver si la respuesta ya se ha enviado al cliente |
5 | void addCookie(Cookie cookie) Agregar cookie especificada a la respuesta |
6 | void addDateHeader(String name, long date) Agregar encabezado de respuesta con nombre especificado y valor de fecha |
7 | void addHeader(String name, String value) Agregar encabezado de respuesta con nombre especificado y valor |
8 | void addIntHeader(String name, int value) Agregar encabezado de respuesta con nombre especificado y valor int |
9 | void flushBuffer() Escribir cualquier contenido en la caché al cliente |
10 | void reset() Limpiar cualquier dato en cualquier caché, incluyendo códigos de estado y encabezados de respuesta |
11 | void resetBuffer() Limpiar los datos básicos de la caché, incluyendo encabezados de respuesta y código de estado |
12 | void sendError(int sc) Enviar una respuesta de error al cliente utilizando el código de estado especificado, luego limpiar la caché |
13 | void sendError(int sc, String msg) Enviar una respuesta de error al cliente utilizando el código de estado y el mensaje especificados |
14 | void sendRedirect(String location) Enviar una respuesta indirecta temporal al cliente utilizando la URL especificada |
15 | void setBufferSize(int size) Establecer el tamaño del búfer del cuerpo de respuesta |
16 | void setCharacterEncoding(String charset) Especificar el conjunto de caracteres de la respuesta de respuesta (conjunto de caracteres MIME), por ejemplo, UTF-8 |
17 | void setContentLength(int len) Especificar la longitud del contenido de respuesta en los servlets HTTP, este método se utiliza para configurar el contenido HTTP-Encabezado de información de longitud |
18 | void setContentType(String type) Establecer el tipo de contenido de respuesta, si la respuesta no se ha presentado |
19 | void setDateHeader(String name, long date) Establecer el nombre y la fecha del encabezado de respuesta utilizando el nombre y la fecha especificados |
20 | void setHeader(String name, String value) Establecer el nombre y el contenido del encabezado de respuesta utilizando el nombre y el valor especificados |
21 | void setIntHeader(String name, int value) Especificar un valor de tipo int al encabezado name |
22 | void setLocale(Locale loc) Establecer el entorno de lenguaje de respuesta, si la respuesta no se ha presentado |
23 | void setStatus(int sc) Establecer el código de estado de respuesta |
El siguiente ejemplo utiliza los métodos setIntHeader() y setRefreshHeader() para simular un reloj digital:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html <html> <head> <meta charset="utf-8"> <title>Red de tutoriales básicos (oldtoolbag.com)</title>/<title> </<head> <body> <h2>Ejemplo de actualización automática</h2> <% // Establecer cada5segundos de actualización automática response.setIntHeader("Refresh", 5); // Obtener la hora actual Calendar calendar = new GregorianCalendar(); String am_pm; int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); if(calendar.get(Calendar.AM_PM) == 0) am_pm = \"AM\"; else am_pm = \"PM\"; String CT = hour+:+ minute +:+ second +\u00A0"+ am_pm; out.println("Tiempo actual: \u00A0" + CT + "\n"); %> </body> </html>
Guarde el código anterior como main.jsp y accédalo a través del navegador. Se actualizará cada5Los segundos mostrarán la hora actual del sistema.
También puede modificar el código anterior por sí mismo, intente usar otros métodos, y obtendrá una comprensión más profunda.