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

Requête client JSP

Lorsque le navigateur demande une page Web, il envoie une série d'informations non directement lisibles au serveur réseau, car ces informations sont transmises en tant que partie des en-têtes HTTP. Vous pouvez consulter le protocole HTTP pour obtenir plus d'informations.

Le tableau suivant liste certains contenus importants des en-têtes d'information côté client, que l'on verra souvent dans la programmation réseau à l'avenir :

InformationsDescription
Accept Spécifie le type MIME que le navigateur ou le client peut gérer. Sa valeur est généralement image/png ou image/jpeg
Accept-Charset Spécifie le jeu de caractères que le navigateur doit utiliser. Par exemple, ISO-8859-1
Accept-Encoding Spécifie le type de codage. Sa valeur est généralement gzip oucompress
Accept-Language Spécifie la langue préférée du client, le servlet renverra en priorité un ensemble de résultats constitué de cette langue, si le servlet le supporte. Par exemple, en, en-us, ru, etc.
Authorization Pour identifier différents utilisateurs lors de l'accès à des pages protégées par un mot de passe
Connection Indique si le client peut gérer la connexion persistante HTTP. La connexion persistante permet au client ou au navigateur de récupérer plusieurs fichiers dans une seule requête.Keep-Alive Indique que la connexion persistante est activée
Content-Length Applicable uniquement aux requêtes POST, indiquant le nombre d'octets des données POST
Cookie Retourne les cookies précédemment envoyés au navigateur au serveur
Host Indique le nom d'hôte et le port dans l'URL d'origine
If-Modified-Since Indique que le client a besoin de cette page web uniquement si elle a été modifiée après la date spécifiée. Le serveur envoie304Code envoyé au client, indiquant que les ressources n'ont pas été mises à jour
If-Unmodified-Since Avec If-Modified-Au contraire, seule une opération réussira si le document n'a pas été modifié après la date spécifiée
Referer Par exemple, si vous êtes sur la page1Cela indique l'URL de la page citée.2Alors que la page1L'URL contiendra la page demandée par le navigateur2Les en-têtes de l'information
User-Agent Pour distinguer les requêtes envoyées par différents navigateurs ou clients, et renvoyer des contenus différents pour différents types de navigateurs

Classe HttpServletRequest

L'objet request est un exemple de la classe javax.servlet.http.HttpServletRequest. Chaque fois que le client demande une page, le moteur JSP génère un nouvel objet pour représenter cette requête.

L'objet request fournit une série de méthodes pour obtenir les en-têtes HTTP, y compris les données du formulaire, les cookies, les méthodes HTTP, etc.

La prochaine section présentera quelques méthodes couramment utilisées en programmation JSP pour obtenir les en-têtes HTTP. Pour plus de détails, voir le tableau suivant :

NuméroMéthode& Description
1Cookie[] getCookies() Retourne un tableau de tous les cookies du client
2Enumeration getAttributeNames() Retourne la collection de tous les noms d'attributs de l'objet requête
3Enumeration getHeaderNames() Retourne la collection de tous les noms d'entêtes HTTP
4Enumeration getParameterNames() Retourne la collection de tous les paramètres de la requête
5HttpSession getSession() Retourne l'objet session correspondant à la requête, crée une nouvelle session s'il n'existe pas
6HttpSession getSession(boolean create) Retourne l'objet session correspondant à la requête, retourne une nouvelle session si elle n'existe pas et que le paramètre create est true
7Locale getLocale() Retourne l'objet Locale de la page courante, qui peut être configuré dans la réponse
8Object getAttribute(String name) Retourne la valeur de l'attribut nommé name, retourne null s'il n'existe pas
9ServletInputStream getInputStream() Retourne le flux d'entrée de la requête
10String getAuthType() Retourne le nom du mécanisme d'authentification, utilisé pour protéger le servlet, par exemple "BASIC" ou "SSL" ou null si le JSP n'a pas configuré de protection
11String getCharacterEncoding() Retourne le nom du jeu de caractères de codage de la requête
12String getContentType() Retourne le type MIME du corps de la requête, retourne null si inconnu
13String getContextPath() Retourne le chemin d'accès contextuel indiqué dans l'URI de la requête
14String getHeader(String name) Retourne l'entête d'information spécifié par le nom
15String getMethod() Retourne la méthode HTTP de cette requête, par exemple GET, POST ou PUT
16String getParameter(String name) Retourne le paramètre spécifié par le nom dans cette requête, retourne null s'il n'existe pas
17String getPathInfo() Retourne tout chemin supplémentaire lié à l'URL de cette requête
18String getProtocol() Retourne le nom et la version du protocole utilisé par ce request
19String getQueryString() Retourne la chaîne de requête de la URL de ce request
20String getRemoteAddr() Retourne l'adresse IP du client
21String getRemoteHost() Retourne le nom complet du client
22String getRemoteUser() Retourne l'utilisateur connecté du client via l'authentification, ou retourne null si l'utilisateur n'est pas authentifié
23String getRequestURI() Retourne l'URI de la requête
24String getRequestedSessionId() Retourne l'ID de session spécifié par la requête
25String getServletPath() Retourne le chemin du servlet demandé
26String[] getParameterValues(String name) Retourne toutes les valeurs des paramètres spécifiés par le nom, ou retourne null s'ils n'existent pas
27boolean isSecure() Retourne si la requête utilise un canal chiffré, comme HTTPS
28int getContentLength() Retourne le nombre d'octets contenus dans le corps de la requête, ou retourne null si inconnu-1
29int getIntHeader(String name) Retourne la valeur de l'en-tête de requête spécifié par le nom
30int getServerPort() Retourne le numéro de port du serveur

Exemple d'en-tête HTTP

Dans cet exemple, nous utiliserons la méthode getHeaderNames() de la classe HttpServletRequest pour lire les en-têtes HTTP. Cette méthode retourne les en-têtes HTTP de la requête HTTP actuelle sous forme d'énumération.

Après avoir obtenu l'objet Enumeration, on utilise une méthode standard pour parcourir l'objet Enumeration, on utilise la méthode hasMoreElements() pour déterminer quand arrêter, et on utilise la méthode nextElement() pour obtenir le nom de chaque paramètre.

<%@ 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>Site de tutoriels de base(oldtoolbag.com)</title>
</head>
<body>
<h2>Exemple de requête d'entête HTTP</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Header Name</th><th>Header Value(s)</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>

Accédez à main.jsp pour obtenir le résultat suivant :

Vous pouvez essayer d'autres méthodes de la classe HttpServletRequest dans le code ci-dessus.