English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Respuesta del servidor de JSP

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 respuestaDescripció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

Clase HttpServletResponse

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:

Método & Descripción
1String encodeRedirectURL(String url) Codificar URL utilizada por el método sendRedirect()
2String encodeURL(String url) Codificar URL, devolver URL que contiene Session ID
3boolean containsHeader(String name) Devolver si el encabezado especificado existe
4boolean isCommitted() Devolver si la respuesta ya se ha enviado al cliente
5void addCookie(Cookie cookie) Agregar cookie especificada a la respuesta
6void addDateHeader(String name, long date) Agregar encabezado de respuesta con nombre especificado y valor de fecha
7void addHeader(String name, String value) Agregar encabezado de respuesta con nombre especificado y valor
8void addIntHeader(String name, int value) Agregar encabezado de respuesta con nombre especificado y valor int
9void flushBuffer() Escribir cualquier contenido en la caché al cliente
10void reset() Limpiar cualquier dato en cualquier caché, incluyendo códigos de estado y encabezados de respuesta
11void resetBuffer() Limpiar los datos básicos de la caché, incluyendo encabezados de respuesta y código de estado
12void sendError(int sc) Enviar una respuesta de error al cliente utilizando el código de estado especificado, luego limpiar la caché
13void sendError(int sc, String msg) Enviar una respuesta de error al cliente utilizando el código de estado y el mensaje especificados
14void sendRedirect(String location) Enviar una respuesta indirecta temporal al cliente utilizando la URL especificada
15void setBufferSize(int size) Establecer el tamaño del búfer del cuerpo de respuesta
16void setCharacterEncoding(String charset) Especificar el conjunto de caracteres de la respuesta de respuesta (conjunto de caracteres MIME), por ejemplo, UTF-8
17void 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
18void setContentType(String type) Establecer el tipo de contenido de respuesta, si la respuesta no se ha presentado
19void setDateHeader(String name, long date) Establecer el nombre y la fecha del encabezado de respuesta utilizando el nombre y la fecha especificados
20void setHeader(String name, String value) Establecer el nombre y el contenido del encabezado de respuesta utilizando el nombre y el valor especificados
21void setIntHeader(String name, int value) Especificar un valor de tipo int al encabezado name
22void setLocale(Locale loc) Establecer el entorno de lenguaje de respuesta, si la respuesta no se ha presentado
23void setStatus(int sc) Establecer el código de estado de respuesta

Ejemplo de programa de encabezado de respuesta HTTP

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.