Solicitud de cliente JSP
⚡ Resumen inteligente
Las solicitudes de cliente JSP y las respuestas del servidor utilizan elementos de acción JSP para controlar el motor de servlets. El navegador envía información a través de encabezados HTTP, el servidor devuelve una línea de estado y encabezados, y los códigos de estado HTTP informan del resultado de cada solicitud.

Las acciones JSP utilizan estructuras en sintaxis XML para controlar el comportamiento del motor de servlets. Analizaremos con más detalle diversos elementos de las acciones JSP, como la solicitud del cliente, la respuesta del servidor y los códigos de estado HTTP.
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 utilizando el objeto HTTPServletRequest.
- La información enviada por el navegador se almacena en el encabezado de la solicitud HTTP.
- Estamos utilizando diferentes encabezados para enviar información al objeto de solicitud.
Encabezados en JSP
A continuación se describen diferentes encabezados en JSP:
| Encabezado | Mareas Ideales para Lecciones | Ejemplo |
|---|---|---|
| Aceptar | Especifica los tipos MIME que el navegador u otros clientes pueden manejar. | Imagen/png o imagen/jpeg |
| 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 manejada por el navegador. | Gzip o comprimir |
| Aceptar-idioma | Especifica el idioma especificado por los clientes. | es,en_us |
| Autorización | Encabezado utilizado por los clientes al intentar 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 a solicitudes de publicación. Da el tamaño de los datos de publicación en bytes. | |
| Cookie | Devuelve las cookies al servidor (aquellas que fueron enviadas previamente al navegador) | |
| Maestro | Especifica el host y el puerto del original. URL | |
| Si se modificó desde | Indica que requiere solo una página si ha sido cambiada o modificada | |
| Si no se ha modificado desde | Indica que requiere una página solo si no ha sido cambiada o modificada | |
| Referente | Indica URL de referirse URL página | |
| Agente de usuario | Identifica el navegador o el cliente que realiza la solicitud |
Métodos de encabezado HTTP en JSP
Los siguientes métodos se utilizan para leer el encabezado HTTP en la página JSP:
- Cookie[] obtenerCookies() – devuelve una matriz que contiene objetos de cookie que el cliente ha enviado
- Enumeración getAttributeNames() – contiene una enumeración de nombres de atributos para solicitud
- Enumeración getHeaderNames() – Contiene una enumeración de los nombres del encabezado.
- Enumeración getParameterNames() – contiene una enumeración de cómo obtener nombres de parámetros en la solicitud.
- HttpSession getSession() – devuelve la sesión actual asociada con la solicitud o si no tiene una sesión, creará una nueva.
- Configuración regional getLocale() – devuelve la configuración regional preferida en la que el cliente aceptará el contenido. Se ha asignado a la respuesta. De forma predeterminada, el valor será la configuración regional predeterminada del servidor.
- Objeto getAttribute (nombre de cadena) – devuelve el valor del atributo nombrado como un objeto.
- ServletInputStream getInputStream() – Recupera el cuerpo de la solicitud como datos binarios.
- Cadena getAuthType() – devuelve el nombre del esquema de autenticación para proteger el servlet
- Cadena getCharacterEncoding() – devuelve el nombre de la codificación de caracteres utilizada en el cuerpo de la solicitud.
- Cadena getContentType() – devuelve el tipo MIME de cuerpo de la solicitud.
- Cadena getContextPath() – devuelve la parte del URI de solicitud indica la ruta de contexto del URI
- Cadena getHeader (nombre de cadena) – devuelve el encabezado de la solicitud como una cadena
- Cadena getMethod() – devuelve el nombre del método HTTP como GET, POST
- Cadena getParameter (nombre de cadena) – devuelve el parámetro de la solicitud como una cadena.
- Cadena getPathInfo() – devuelve la información de ruta asociada con el URL
- Cadena getQueryString() – devuelve la cadena de consulta que está asociada con la solicitud URL
- Cadena getServletPath() – devuelve la parte de URLs de la solicitud que llama al JSP
- Cadena [] 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, utilizamos diferentes métodos utilizando el objeto de solicitud.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.io.* java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Client Request Guru JSP</title> </head> <body> <h2>Client Request Guru JSP</h2> <table border="1"> <tr> <th>guru header</th><th>guru header Value(s)</th> </tr> <% HttpSession gurusession = request.getSession(); out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>"); Locale gurulocale = request.getLocale (); out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>"); String path = request.getPathInfo(); out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>"); String lpath = request.get(); out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>"); String servername = request.getServerName(); out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>"); int portname = request.getServerPort(); out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>"); Enumeration hnames = request.getHeaderNames(); while(hnames.hasMoreElements()) { String paramName = (String)hnames.nextElement(); out.print ("<tr><td>" + paramName + "</td>" ); String paramValue = request.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr>"); } %>
Explicación del código:
Code Línea 17: Usando 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.
Code Línea 19: Utilizando el objeto de solicitud, obtenemos la configuración regional de esa sesión en particular, es decir, la configuración regional en_US para ese JSP.
Code Línea 21: Usando el objeto de solicitud, estamos obteniendo información de ruta para ese JSP. En este caso, es nulo ya que no hay ruta para URL mencionado.
Code Línea 23: Al utilizar el objeto de solicitud, obtenemos la ruta de contexto, es decir, la ruta raíz.
Code Línea 25: Usando el objeto de solicitud, obtenemos el nombre del servidor.
Code Línea 27: Usando el objeto de solicitud, obtenemos el puerto del servidor.
Code Línea 29-35: Al utilizar 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 del encabezado como un Cookie, host, conexión, aceptar idioma, aceptar codificación.
Cuando ejecuta el código anterior, obtiene el siguiente resultado:
Salida:
Obtenemos la serie de valores como nombre de sesión, nombre de configuración regional, nombre de ruta, nombre de servidor, nombre de puerto, host, ruta de contexto y todos los valores de encabezado de eso. JSP.
Respuesta del servidor JSP
- Cuando se procesa una solicitud y luego se genera la respuesta desde el servidor web. Consta de una línea de estado, encabezados de respuesta, una línea en blanco y un documento.
- Es un objeto de la clase HTTPServletResponse, que es un objeto de respuesta.
- La línea de estado es una versión de HTML.
Encabezados de respuesta en JSP
Los encabezados de respuesta en JSP se mencionan a continuación:
| Encabezado | Mareas Ideales para Lecciones |
|---|---|
| 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 conexiones HTTP guardadas o no. El valor cercano representa que el navegador no debe usar conexiones persistentes en HTTP y "mantener vivo" significa usar conexiones persistentes. |
| Disposición de contenido | Para 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 obsoleto y no debe almacenarse en caché. |
| Última modificación | Indica cuándo se modificó el documento por última vez. |
| Ubicacion | Debe incluirse con todas las respuestas que tengan un código de estado que tenga 300 como código de estado. |
| Refrescar | Especifica cómo encontrar la página actualizada. |
| Reintentar después | Se puede utilizar con la respuesta 503 para indicarle al cliente cuándo puede repetir la solicitud. |
| Establecer cookie | Especifica la cookie asociada con la página. |
Métodos de encabezado de respuesta HTTP en JSP
A continuación se muestran los métodos en JSP que utilizan el objeto de respuesta:
- Redirección de codificación de cadenaURL(Cadena URL) - codifica el URL en redirecciónURL método.
- Codificación de cadenaURL(Cadena URL) - codifica el URL incluyendo el ID de sesión.
- Booleano contiene encabezado (nombre de cadena) – contiene un encabezado en el JSP o no.
- Booleano está comprometido() – la respuesta se ha cometido o no.
- Void addCookie(Cookie cookie) – agrega cookie a la respuesta
- Void addDateHeader (nombre de cadena, valor de cadena) – agrega el nombre y el valor de la fecha del encabezado de respuesta
- AddHeader vacío (nombre de cadena, valor de cadena) – agrega encabezado de respuesta con nombre y valor
- Void addIntHeader (nombre de cadena, valor int) – agrega encabezado de respuesta con nombre y valor entero
- descarga vacíaBuffer() - Fuerza el contenido del buffer a la salida al cliente.
- Reinicio nulo() – borra datos en el buffer.
- Reinicio nuloBuffer – borra el buffer de contenido en la respuesta sin borrar los códigos de estado.
- Void sendError(int sc,String msg) – envía una respuesta de error al cliente utilizando el código de estado.
- Void sendRedirect (ubicación de la cadena) – envía una respuesta de redireccionamiento temporal al cliente.
- conjunto vacíoBufferTamaño (tamaño int) – Establece el tamaño del búfer del cuerpo
- Void setCharacterEncoding (conjunto de caracteres de cadena) – establece la codificación de caracteres
- SetContentType vacío (tipo de cadena) – establece el tipo de contenido de la respuesta
- Void setContentLength(int len) – establece la longitud del contenido de la respuesta
- Conjunto nuloLocale(Locale lcl) – establece el tipo de configuración regional de la respuesta
- Void setStatus(int sc) – establece el código de estado de la respuesta
Ejemplo:
En este ejemplo, cubrimos diferentes métodos getLocale, flushbuffer, getWriter, obtenerContentType, establecerIntHeader.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.io.* java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action Response</title> </head> <body> <center> <h2>Guru Response</h2> <% Locale lcl = response.getLocale(); out.println("Locale is : " + lcl + "\n"); response.flushBuffer(); PrintWriter output = response.getWriter(); output.println("This is from writer object"); String type = response.getContentType(); out.println("The content type : " + type + "\n"); // Set refresh,autoload time as 5 seconds response.setIntHeader("Refresh", 5); //Get current time Date dt = new Date(); out.println("Today's date is : " +dt.toString() + "\n"); %> </center> </body> </html>
Explicación del código:
Code Línea 13: Usando el objeto de respuesta, obtenemos el objeto local de esta sesión JSP
Code Línea 15: Usando el objeto de respuesta, se utiliza flushbuffer para forzar el contenido del buffer en el cliente
Code Línea 16: Usando el objeto de respuesta, obtenemos el objeto escritor que obtiene la salida en el flujo de salida.
Code Línea 18: Al utilizar el objeto de respuesta, obtenemos el tipo de contenido, es decir, el tipo MIME de objeto de respuesta.
Code Línea 21: Usando el objeto de respuesta, se usa para cargar automáticamente cada 5 segundos, ya que 5 se establece como segundo parámetro.
Cuando ejecuta el código anterior, obtiene el siguiente resultado:
Salida:
- Aquí obtenemos la salida ya que proviene del objeto escritor de getWriter, lo que nos da un objeto y podemos mostrarlo en el flujo de salida.
- Obtenemos la configuración regional como en_us y el tipo de contenido como text/html
- Obtenemos el juego de caracteres como ISO 8859
- La fecha de hoy como fecha actual.
Estado HTTP de JSP Codes
- Cuando se procesa la solicitud, se genera la respuesta. La línea de estado de respuesta consta de una 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 está configurado como código de estado en JSP, por lo que no es necesario configurarlo explícitamente.
- Podemos configurar como método Response.setStatus()
Los códigos se dividen en las siguientes cinco categorías:
- 100-199 – Aquí el cliente indica que debe responder con alguna acción.
- 200-299 – Significa que la solicitud fue exitosa
- 300-399: se utilizan para archivos que se han movido y generalmente incluyen un encabezado de ubicación que indica la 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
- 500 - Error interno del servidor
- 503 Servicio no Disponible
- 505 – Versión HTTP no compatible
Estado HTTP Code Métodos en JSP
Algunos de los métodos de código de estado en JSP se enumeran a continuación:
- público void establecerEstado(int estado)Code): 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.
- Public void sendRedirect(String URL): Genera una respuesta 302 junto con el encabezado de ubicación que proporciona URL del nuevo documento
- Public void sendError(int code,String msg): Envía el código de estado junto con el mensaje corto y se formatea dentro del documento HTML.
Ejemplo:
En este ejemplo, enviamos un error explícitamente a la página JSP.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Status Code</title> </head> <body> <% response.sendError(404,"Guru Page Not Found"); %> </body> </html>
Explicación del código:
Code Línea 10: Usando el objeto de respuesta, enviamos el error a una página con dos parámetros.
- Código de estado: puede ser cualquiera de los anteriores. En este caso, lo hemos descrito como 404
- Mensaje – Puede ser cualquier mensaje específico que queramos mostrar el error.
Si ejecuta el código anterior, obtendrá el siguiente resultado:
Salida:
Aquí obtenemos el código de error 404, que fue enviado desde el código y también muestra “Guru En la salida se observa el mensaje "Página no encontrada".



