Solicitud de cliente JSP

Acciones JSP que utilizan construcciones en sintaxis XML para controlar el comportamiento del motor de servlet. Aprenderemos más detalladamente sobre varios elementos de acción 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:

Encabezamiento Descripciones 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.  
Cookies Devuelve las cookies al servidor (aquellas que fueron enviadas previamente al navegador)  
Host Especifica el host y el puerto de la URL original.  
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 la URL de la página URL de referencia  
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:

  1. Cookie[] obtenerCookies() – devuelve una matriz que contiene objetos de cookie que el cliente ha enviado
  2. Enumeración getAttributeNames() – contiene una enumeración de nombres de atributos para solicitud
  3. Enumeración getHeaderNames() – contiene una enumeración de nombres de encabezado.
  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. 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.
  7. Objeto getAttribute (nombre de cadena) – devuelve el valor del atributo nombrado como un objeto.
  8. ServletInputStreamgetInputStream() – recupera el cuerpo de la solicitud como datos binarios.
  9. Cadena getAuthType() – devuelve el nombre del esquema de autenticación para proteger el servlet
  10. Cadena getCharacterEncoding() – devuelve el nombre de la codificación de caracteres utilizada en el cuerpo de la solicitud.
  11. Cadena getContentType() – devuelve el tipo MIME de cuerpo de la solicitud.
  12. Cadena getContextPath() – devuelve la parte del URI de solicitud indica la ruta de contexto del URI
  13. Cadena getHeader (nombre de cadena) – devuelve el encabezado de la solicitud como una cadena
  14. Cadena getMethod() – devuelve el nombre del método HTTP como GET, POST
  15. Cadena getParameter (nombre de cadena) – devuelve el parámetro de la solicitud como una cadena.
  16. Cadena getPathInfo() – devuelve la información de la ruta asociada con la URL
  17. Cadena getQueryString() – devuelve la cadena de consulta asociada con la URL de solicitud
  18. Cadena getServletPath() – devuelve la parte de las URL de la solicitud que llama al JSP
  19. 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:

Línea de código 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.

Línea de código 19: Al utilizar el objeto de solicitud, obtenemos la configuración regional de esa sesión en particular, es decir, la configuración regional een_US para ese JSP.

Línea de código 21: Al utilizar 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 utilizar el objeto de solicitud, obtenemos la ruta de contexto, es decir, la ruta raíz.

Línea de código 25: Usando 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 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 Cookies , host, conexión, aceptar idioma, aceptar codificación.

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

Solicitud de cliente JSP

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 el 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:

Encabezamiento Descripciones
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.
Ubicación 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:

  1. Cadena codificarRedirectURL(Cadena URL) – codifica la URL en el método de redirección URL.
  2. Cadena codificarURL(Cadena URL) – codifica la URL incluyendo el ID de sesión.
  3. Booleano contiene encabezado (nombre de cadena) – contiene un encabezado en el JSP o no.
  4. Booleano está comprometido() – la respuesta se ha cometido o no.
  5. Void addCookie(Cookie cookie): agrega cookie a la respuesta
  6. Void addDateHeader (nombre de cadena, valor de cadena) – agrega el nombre y el valor de la fecha del encabezado de respuesta
  7. AddHeader vacío (nombre de cadena, valor de cadena) – agrega encabezado de respuesta con nombre y valor
  8. Void addIntHeader (nombre de cadena, valor int) – agrega encabezado de respuesta con nombre y valor entero
  9. descarga vacíaBuffer() - Fuerza el contenido del buffer a la salida al cliente.
  10. Reinicio nulo() – borra datos en el buffer.
  11. Reinicio nuloBuffer – borra el buffer de contenido en la respuesta sin borrar los códigos de estado.
  12. Error de envío nulo (intsc, Stringmsg) – envía una respuesta de error al cliente utilizando el código de estado.
  13. Void sendRedirect (ubicación de la cadena) – envía una respuesta de redireccionamiento temporal al cliente.
  14. conjunto vacíoBufferTamaño (tamaño int) – Establece el tamaño del búfer del cuerpo
  15. Void setCharacterEncoding (conjunto de caracteres de cadena) – establece la codificación de caracteres
  16. SetContentType vacío (tipo de cadena) – establece el tipo de contenido de la respuesta
  17. Conjunto vacíoContentLength(intlen) – establece la longitud del contenido de la respuesta
  18. Conjunto nuloLocale(Locale lcl) – establece el tipo de configuración regional de la respuesta
  19. Estado de conjunto vacío (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.*" %>
<!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:

Línea de código 13: Usando el objeto de respuesta, obtenemos el objeto local de esta sesión JSP

Línea de código 15: Usando el objeto de respuesta, se utiliza flushbuffer para forzar el contenido del buffer en el cliente

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

Línea de código 18: Al utilizar el objeto de respuesta, obtenemos el tipo de contenido, es decir, el tipo MIME de 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 segundo parámetro.

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

Respuesta del servidor JSP

Salida:

  • Aquí obtenemos el resultado, ya que proviene del objeto escritor de getWriter, lo que nos proporciona el objeto y podemos generarlo 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.

Códigos de estado HTTP JSP

  • 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

Métodos de código de estado HTTP en JSP

Algunos de los métodos de código de estado en JSP se enumeran a continuación:

  1. Estado de conjunto 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. Error de envío de anulación pública (intcode, Stringmsg): 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:

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

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

Si ejecuta el código anterior, obtendrá el siguiente resultado:

Códigos de estado HTTP JSP

Salida:

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

Resumen

  • En este artículo, hemos aprendido sobre la solicitud del cliente y la respuesta del servidor, cómo se intercepta la solicitud y cómo se manipulan las respuestas.
  • acciones JSP que utilizan construcciones en sintaxis XML para controlar el comportamiento del motor de servlet.
  • Cuando se solicita la página web, envía información al servidor web en el encabezado HTTP.
  • 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.
  • 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.