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

Solicitud del cliente de JSP

Cuando el navegador solicita una página web, envía una serie de información que no puede ser leída directamente al servidor de red, ya que esta información se transmite como parte de la cabecera de información HTTP. Puede consultar el protocolo HTTP para obtener más información.

La tabla a continuación enumera algunos aspectos importantes de los encabezados de información del lado del navegador, que se verán a menudo en la programación de red en el futuro:

InformaciónDescripción
Aceptar Especifica los tipos MIME que pueden manejar el navegador u otro cliente. Su valor generalmente es image/png o image/jpeg
Aceptar-Juego de caracteres Especifica el conjunto de caracteres que se debe usar en el navegador. Por ejemplo, ISO-8859-1
Aceptar-Codificación Especifica el tipo de codificación. Su valor generalmente es gzip ocompresión
Aceptar-Idioma Especifica el idioma preferido del cliente, el servlet devolverá preferentemente conjuntos de resultados constituidos por el idioma actual, si el servlet admite ese idioma. Por ejemplo, en, en-us, ru, etc.
Autorización Reconoce diferentes usuarios al acceder a páginas protegidas por contraseña
Conexión Indica si el cliente puede manejar conexiones persistentes de HTTP. Las conexiones persistentes permiten que el cliente o el navegador obtenga varios archivos en una solicitud.Mantener-Viva Indica que se habilita la conexión persistente
Contenido-Longitud Sólo se aplica a solicitudes POST, indicando el número de bytes de los datos POST
Cookie Devuelve las cookies enviadas anteriormente al navegador al servidor
Host Señala el nombre de host y el puerto en la URL original
If-Modificado-Since Indica que el cliente solo necesita esta página cuando la página se ha modificado en la fecha especificada. El servidor envía304Código para el cliente, indicando que no hay recursos actualizados
If-Unmodified-Since Con If-Modificado-En contraste, solo si el documento no ha sido modificado desde la fecha especificada, la operación tendrá éxito
Referer Marca la URL de la página referenciada. Por ejemplo, si estás en la página1Luego hizo clic en un enlace a la página2Entonces la página1La URL contendrá en la solicitud de página del navegador2Los encabezados de información de
Usuario-Agente Para distinguir entre diferentes navegadores o clientes que envían solicitudes y devolver contenido diferente para diferentes tipos de navegadores

Clase HttpServletRequest

El objeto request es un ejemplo de la clase javax.servlet.http.HttpServletRequest. Cada vez que el cliente solicita una página, el motor JSP crea un nuevo objeto para representar esta solicitud.

El objeto request proporciona una serie de métodos para obtener encabezados de información HTTP, incluyendo datos de formulario, cookies, métodos HTTP, etc.

Se presentarán algunos métodos comunes para obtener encabezados de información HTTP en programación JSP. Detalles más detallados se pueden encontrar en la tabla a continuación:

NúmeroMétodo& Descripción
1Cookie[] getCookies() Devuelve el array de todos los cookies del cliente
2Enumeration getAttributeNames() Devuelve la colección de todos los nombres de atributos del objeto solicitud
3Enumeration getHeaderNames() Devuelve la colección de todos los nombres de encabezados HTTP
4Enumeration getParameterNames() Devuelve la colección de todos los parámetros de la solicitud
5HttpSession getSession() Devuelve el objeto session correspondiente a la solicitud, si no existe, crea uno
6HttpSession getSession(boolean create) Devuelve el objeto session correspondiente a la solicitud, si no existe y el parámetro create es true, devuelve un nuevo objeto session
7Locale getLocale() Devuelve el objeto Locale de la página actual, que se puede configurar en la respuesta
8Object getAttribute(String name) Devuelve el valor del atributo con el nombre especificado, si no existe devuelve null.
9ServletInputStream getInputStream() Devuelve el flujo de entrada de la solicitud
10String getAuthType() Devuelve el nombre del esquema de autenticación utilizado para proteger el servlet, por ejemplo "BASIC" o "SSL" o null si el JSP no ha configurado medidas de protección
11String getCharacterEncoding() Devuelve el nombre del conjunto de caracteres de codificación de la solicitud
12String getContentType() Devuelve el tipo MIME del cuerpo de solicitud, si es desconocido devuelve null
13String getContextPath() Devuelve la ruta de contexto indicada en el URI de solicitud
14String getHeader(String name) Devuelve la información de encabezado especificada por el nombre
15String getMethod() Devuelve el método HTTP de esta solicitud, por ejemplo GET, POST o PUT
16String getParameter(String name) Devuelve el parámetro especificado por el nombre en esta solicitud, si no existe devuelve null
17String getPathInfo() Devuelve cualquier ruta adicional relacionada con la URL de solicitud
18String getProtocol() Devuelve el nombre y la versión del protocolo utilizado por este request
19String getQueryString() Devuelve la cadena de consulta que contiene la URL de este request
20String getRemoteAddr() Devuelve la dirección IP del cliente
21String getRemoteHost() Devuelve el nombre completo del cliente
22String getRemoteUser() Devuelve el usuario que se autenticó en el cliente, si el usuario no se autenticó, devuelve null
23String getRequestURI() Devuelve el URI del request
24String getRequestedSessionId() Devuelve el ID de sesión especificado por el request
25String getServletPath() Devuelve la ruta del servlet solicitada
26String[] getParameterValues(String name) Devuelve todos los valores de los parámetros con el nombre especificado, si no existe, devuelve null
27boolean isSecure() Devuelve si el request utilizó un canal cifrado, como HTTPS
28int getContentLength() Devuelve el número de bytes contenidos en el cuerpo de solicitud de solicitud, si es desconocido, devuelve-1
29int getIntHeader(String name) Devuelve el valor de la información de encabezado de solicitud con el nombre especificado
30int getServerPort() Devuelve el número de puerto del servidor

Ejemplo de información de encabezado HTTP

En este ejemplo, utilizaremos el método getHeaderNames() de la clase HttpServletRequest para leer la información de encabezado HTTP. Este método devuelve la información de encabezado actual de la solicitud HTTP en forma de enumeración.

Después de obtener el objeto Enumeration, se utiliza una forma estándar para recorrer el objeto Enumeration, utilizando el método hasMoreElements() para determinar cuándo detenerse y el método nextElement() para obtener el nombre de cada parámetro.

<%@ 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 solicitud de encabezado de HTTP</h/h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Nombre de encabezado</th>/th><th>Valores de encabezado</th>/th>
</tr>
<%
   Enumeration headerNames = request.getHeaderNames();
   while(headerNames.hasMoreElements()) {
      String paramName = (String)headerNames.nextElement();
      out.print("<tr><td>" + paramName + "</td>\n");
      String paramValue = request.getHeader(paramName);
      out.println("<td> " + paramValue + "</td></tr>\n");
   }
%>
</table>
</body>
</html>

Al acceder a main.jsp, se obtendrá el siguiente resultado:

Puedes probar otros métodos de la clase HttpServletRequest en el código anterior.