Solicitud de cliente JSP, respuesta del servidor y amp; Códigos de estado HTTP

Acciones JSP que utilizan construcciones en sintaxis XML para controlar el comportamiento del motor de servlets. Aprenderemos más en detalle sobre varios elementos de acción JSP como solicitud del cliente, respuesta del servidor, códigos de estado HTTP.

En este tutorial, aprenderá:

  • Solicitud de cliente JSP
  • Respuesta del servidor JSP
  • Códigos de estado HTTP JSP

Solicitud de cliente JSP

  • Cuando se solicita la página web, envía información al servidor web en el encabezado HTTP.
  • Podemos utilizar esta información mediante el objeto HTTPServletRequest.
  • La información enviada por el navegador se almacena en el encabezado de solicitud de la solicitud HTTP.
  • Estamos utilizando diferentes encabezados para enviar información al objeto de solicitud.

A continuación se describen diferentes encabezados:

Encabezamiento Descripción Ejemplo
Aceptar Especifica los tipos MIME que el navegador u otros clientes pueden manejar. Imagen / png o imagen / jpeg.webp
Aceptar juego de caracteres Utiliza el juego de caracteres utilizado por el navegador para mostrar la información. ISO-8859-1
Aceptar: codificación Especifica el tipo de codificación que maneja el navegador. Gzip o comprimir
Aceptar-idioma Especifica el idioma especificado por los clientes En, en_us
Autorización Encabezado utilizado por los clientes cuando intentan acceder a páginas web protegidas con contraseña
Conexión Indica si el cliente puede manejar conexiones HTTP persistentes (el navegador puede recuperar varios archivos) Mantener viva
Largancia de contenido Aplicable para publicar solicitudes. Da el tamaño de los datos de publicación de bytes.
Galleta Devuelve las cookies al servidor (las que se enviaron previamente al navegador)
Anfitrión Especifica el host y el puerto de la URL original.
Si se modifica desde Indica que solo requiere una página si ha sido cambiada o modificada
Si no ha sido modificado desde Indica que requiere una página solo si no ha sido cambiada o modificada
Referente Indica la URL de la página de URL de referencia
Agente de usuario Identifica el navegador o el cliente que realiza la solicitud

Los siguientes métodos se utilizan para leer el encabezado HTTP en la página JSP:

  1. Cookie [] getCookies (): devuelve una matriz que contiene objetos de cookies que el cliente ha enviado
  2. Enumeración getAttributeNames (): contiene la enumeración de los nombres de los atributos para la solicitud
  3. Enumeración getHeaderNames (): contiene la enumeración de los nombres de la cabecera.
  4. Enumeración getParameterNames (): contiene una enumeración de cómo obtener nombres de parámetros en la solicitud.
  5. HttpSessiongetSession (): devuelve la sesión actual asociada con la solicitud o, si no tiene una sesión, creará una nueva.
  6. Locale getLocale (): devuelve la configuración regional preferida en la que el cliente aceptará contenido. Se ha asignado a la respuesta. De forma predeterminada, el valor será la configuración regional predeterminada del servidor.
  7. Object getAttribute (String name): devuelve el valor del atributo nombrado como un objeto.
  8. ServletInputStreamgetInputStream (): recupera el cuerpo de la solicitud como datos binarios.
  9. String getAuthType (): devuelve el nombre del esquema de autenticación para proteger el servlet
  10. String getCharacterEncoding (): devuelve el nombre de la codificación de caracteres utilizada en el cuerpo de la solicitud.
  11. String getContentType (): devuelve el tipo MIME del cuerpo de la solicitud.
  12. String getContextPath (): devuelve la parte del URI de solicitud que indica la ruta de contexto del URI
  13. String getHeader (String name): devuelve el encabezado de la solicitud como una cadena
  14. String getMethod (): devuelve el nombre del método HTTP como GET, POST
  15. String getParameter (String name): devuelve el parámetro de la solicitud como una cadena.
  16. String getPathInfo (): devuelve la información de la ruta asociada con la URL
  17. String getQueryString (): devuelve la cadena de consulta asociada con la URL de la solicitud
  18. String getServletPath (): devuelve la parte de las URL de la solicitud que llama al JSP
  19. String [] getParameterValues ​​(nombre de cadena): devuelve la matriz de objetos de cadena que contienen los valores que tiene el parámetro de solicitud

Ejemplo:

En el siguiente ejemplo, estamos usando diferentes métodos usando el objeto de solicitud

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Gurú de solicitudes de cliente JSP 

JSP del experto en solicitudes de cliente

<%HttpSession gurusession = request.getSession ();out.print (" ");Locale gurulocale = request.getLocale ();out.print (" ");Ruta de cadena = request.getPathInfo ();out.print (" ");String lpath = request.get ();out.print (" ");String servername = request.getServerName ();out.print (" ");int nombre de puerto = request.getServerPort ();out.print (" ");Enumeración hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

Explicación del código:

Línea de código 17: Al usar el objeto de solicitud, obtenemos el objeto de sesión de esa sesión en particular y obtenemos el valor del objeto de esa sesión

Línea de código 19: utilizando el objeto de solicitud, obtenemos la configuración regional de esa sesión en particular i.een_US para esa JSP.

Línea de código 21: Al usar el objeto de solicitud, obtenemos información de ruta para ese JSP. En este caso, es nulo ya que no se menciona ninguna ruta para la URL.

Línea de código 23: al usar el objeto de solicitud, obtenemos la ruta de contexto, es decir, la ruta raíz

Línea de código 25: Al usar el objeto de solicitud, obtenemos el nombre del servidor.

Línea de código 27: usando el objeto de solicitud, obtenemos el puerto del servidor.

Línea de código 29-35: al usar el objeto de solicitud, obtenemos nombres de encabezado que aparecen como enumeración y, por lo tanto, obtenemos todos los valores de encabezado en los nombres de encabezado.

En esto, obtenemos todos los valores de encabezado como cookie, host, conexión, aceptamos el idioma, aceptamos la codificación.

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Salida :

Obtenemos la serie de valores como el nombre de la sesión, el nombre de la configuración regional, el nombre de la ruta, el nombre del servidor, el nombre del puerto, el host, la ruta del contexto y todos los valores de encabezado de esa JSP.

Respuesta del servidor JSP

  • Cuando se procesa una solicitud y luego se genera la respuesta desde el servidor web. Consiste en una línea de estado, encabezados de respuesta, una línea en blanco y un documento.
  • Es el objeto de HTTPServletResponseclass, que es un objeto de respuesta.
  • La línea de estado es una versión de HTML.

Los encabezados de respuesta se mencionan a continuación:

encabezado del gurú Valor (es) del encabezado del gurú
El nombre de la sesión es " + gurusession + "
El nombre de la configuración regional es " + gurulocale + "
El nombre de la ruta es " + ruta + "
La ruta de contexto es " + lipath + "
El nombre del servidor es " + nombre del servidor + "
El puerto del servidor es " + nombre de puerto + "
" + paramName + "" + paramValue + "
Encabezamiento Descripción
Permitir Especifica los métodos de solicitud como GET, POST que el servidor está solicitando
Control de caché El documento de respuesta se puede almacenar en caché. Puede ser público, privado y sin caché. Sin caché especifica que el documento no debe almacenarse en caché
Conexión Indica si el navegador debe utilizar SavedHTTPConnections o no. El valor de cierre representa que el navegador no debe usar conexiones persistentes en HTTPConnections y "mantener vivo" significa usar conexiones persistentes
Disposición de contenido Preguntar al usuario si desea guardar la respuesta en el disco o no.
Codificación de contenido La página debe estar codificada durante la transmisión
Largancia de contenido Número de bytes en la respuesta
Tipo de contenido Especifica el tipo de respuesta MIME
Expira Especifica hasta cuándo el contenido debe considerarse desactualizado y no debe almacenarse en caché
Última modificación Indica cuándo se modificó por última vez el documento.
Localización Debe incluirse con todas las respuestas que tienen un código de estado con 300 como código de estado
Actualizar Especifica cómo encontrar la página actualizada.
Reintentar después Se puede usar con la respuesta 503 para decirle al cliente qué tan pronto puede repetir la solicitud
Establecer-cookie Especifica la cookie asociada a la página.

Los siguientes son los métodos que utilizan el objeto de respuesta:

  1. String encodeRedirectURL (String URL): codifica la URL en el método redirectURL.
  2. String encodeURL (String URL): codifica la URL al incluir el ID de sesión.
  3. Boolean containsHeader (nombre de cadena): contiene un encabezado en el JSP o no.
  4. Boolean isCommited (): la respuesta se ha confirmado o no.
  5. Void addCookie (cookie cookie): agrega cookie a la respuesta
  6. Void addDateHeader (nombre de la cadena, valor de la cadena): agrega el nombre y el valor de la fecha del encabezado de respuesta
  7. Void addHeader (nombre de cadena, valor de cadena): agrega encabezado de respuesta con nombre y valor
  8. Void addIntHeader (String name, int value): agrega un encabezado de respuesta con nombre y valor entero
  9. Void flushBuffer (): fuerza el contenido del búfer a la salida del cliente.
  10. Restablecimiento anulado (): borra los datos del búfer.
  11. Void resetBuffer: borra el búfer de contenido en la respuesta sin borrar los códigos de estado.
  12. Void sendError (intsc, Stringmsg): envía una respuesta de error al cliente mediante el código de estado.
  13. Void sendRedirect (ubicación de la cadena): envía una respuesta de redireccionamiento temporal al cliente.
  14. Void setBufferSize (int size): establece el tamaño del búfer del cuerpo
  15. Void setCharacterEncoding (String charset): establece la codificación de caracteres
  16. Void setContentType (tipo de cadena): establece el tipo de contenido de la respuesta
  17. Void setContentLength (intlen): establece la longitud del contenido de la respuesta
  18. Void setLocale (Locale lcl): establece el tipo de configuración regional de la respuesta
  19. Void setStatus (intsc): establece el código de estado de la respuesta

Ejemplo:

En este ejemplo, cubrimos diferentes métodos getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Respuesta de acción de Guru 

Respuesta de Guru

<%Locale lcl = response.getLocale ();out.println ("La configuración regional es: + lcl + "\ n");respuesta.flushBuffer ();Salida de PrintWriter = response.getWriter ();output.println ("Esto es del objeto escritor");Tipo de cadena = response.getContentType ();out.println ("El tipo de contenido: + tipo + "\ n");// Establecer actualización, tiempo de carga automática en 5 segundosresponse.setIntHeader ("Actualizar", 5);// Obtener la hora actualFecha dt = nueva fecha ();out.println ("La fecha de hoy es: + dt.toString () + "\ n");%>

Explicación del código:

Línea de código 13: utilizando el objeto de respuesta, obtenemos el objeto de configuración regional de esta sesión JSP

Línea de código 15: usando el objeto de respuesta, flushbuffer se usa para forzar el contenido del búfer al cliente

Línea de código 16: usando el objeto de respuesta, obtenemos el objeto de escritura que obtiene la salida en el flujo de salida

Línea de código 18: al usar el objeto de respuesta, obtenemos el tipo de contenido, es decir, el tipo MIME del objeto de respuesta

Línea de código 21: usando el objeto de respuesta, se usa para cargar automáticamente cada 5 segundos ya que 5 se establece como el segundo parámetro

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Producción:

  • Aquí obtenemos la salida, ya que es del objeto escritor de getWriter, que nos da el objeto y podemos generar la salida en el flujo de salida.
  • Obtenemos la configuración regional como en_us y el tipo de contenido como texto / html
  • Obtenemos juego de caracteres como ISO 8859
  • La fecha de hoy como la fecha actual.

Códigos de estado HTTP JSP

  • Cuando se procesa la solicitud, se genera la respuesta. La línea de estado de respuesta consta de la versión HTTP, un código de estado y un mensaje asociado.
  • El mensaje está directamente asociado con el código de estado y la versión HTTP, y lo determina el servidor.
  • De forma predeterminada, 200 se establece como un código de estado en JSP, por lo que no es necesario establecerlo explícitamente.
  • Podemos establecer como método response.setStatus ()

Los códigos se dividen en las siguientes 5 categorías:

  • 100-199 - Aquí el cliente indica que debe responder con alguna acción.
  • 200-299: significa que la solicitud se realizó correctamente
  • 300-399: se utilizan para archivos que se han movido y generalmente incluyen un encabezado de ubicación que indica una nueva dirección
  • 400-499: indica error del cliente
  • 500-599: indica error del servidor

Algunos de los códigos de estado comunes se encuentran a continuación:

  • 200: indica que todo está bien
  • 301 - Se ha movido permanentemente
  • 304 - No modificado desde el último cambio
  • 400 Petición Incorrecta
  • 404 No encontrado
  • 405 - Método no encontrado
  • Error interno de servidor 500
  • 503 Servicio no Disponible
  • 505 - No se admite la versión HTTP

Algunos de sus métodos se enumeran a continuación:

  1. SetStatus vacío público (intstatusCode)

    Establece el código de estado que queramos establecer en esa página JSP, esto nos dará el mensaje del código de estado que se ha establecido

  2. SendRedirect vacío público (URL de cadena)

    Genera una respuesta 302 junto con el encabezado de ubicación que proporciona la URL del nuevo documento

  3. Public void sendError (intcode, Stringmsg)

    Envía el código de estado junto con el mensaje corto y está formateado dentro del documento HTML.

Ejemplo:

En este ejemplo, estamos enviando un error a la página JSP de forma explícita.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Código de estado de Guru <% response.sendError (404, "Página de Guru no encontrada"); %>

Explicación del código:

Línea de código 10: Al usar el objeto de respuesta, estamos enviando el error a una página con dos parámetros.

  1. Código de estado: puede ser cualquiera de los anteriores. En este caso, hemos descrito como 404
  2. Mensaje: puede ser cualquier mensaje específico que queramos mostrar el error

Si ejecuta el código anterior, obtiene el siguiente resultado:

Producción:

Aquí obtenemos el código de error como 404, que se envió desde el código y también muestra el mensaje "Página de Guru no encontrada" que se ve en la salida.

Resumen:

  • En este artículo, hemos aprendido sobre la solicitud del cliente y la respuesta del servidor sobre cómo se intercepta la solicitud y cómo se manipulan las respuestas.
  • Además, hemos aprendido sobre los códigos de estado HTTP para mostrar códigos de error o códigos de éxito para un archivo en particular.

Articulos interesantes...