English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 :
Informations | Description |
---|---|
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 |
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éro | Méthode& Description |
---|---|
1 | Cookie[] getCookies() Retourne un tableau de tous les cookies du client |
2 | Enumeration getAttributeNames() Retourne la collection de tous les noms d'attributs de l'objet requête |
3 | Enumeration getHeaderNames() Retourne la collection de tous les noms d'entêtes HTTP |
4 | Enumeration getParameterNames() Retourne la collection de tous les paramètres de la requête |
5 | HttpSession getSession() Retourne l'objet session correspondant à la requête, crée une nouvelle session s'il n'existe pas |
6 | HttpSession 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 |
7 | Locale getLocale() Retourne l'objet Locale de la page courante, qui peut être configuré dans la réponse |
8 | Object getAttribute(String name) Retourne la valeur de l'attribut nommé name, retourne null s'il n'existe pas |
9 | ServletInputStream getInputStream() Retourne le flux d'entrée de la requête |
10 | String 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 |
11 | String getCharacterEncoding() Retourne le nom du jeu de caractères de codage de la requête |
12 | String getContentType() Retourne le type MIME du corps de la requête, retourne null si inconnu |
13 | String getContextPath() Retourne le chemin d'accès contextuel indiqué dans l'URI de la requête |
14 | String getHeader(String name) Retourne l'entête d'information spécifié par le nom |
15 | String getMethod() Retourne la méthode HTTP de cette requête, par exemple GET, POST ou PUT |
16 | String getParameter(String name) Retourne le paramètre spécifié par le nom dans cette requête, retourne null s'il n'existe pas |
17 | String getPathInfo() Retourne tout chemin supplémentaire lié à l'URL de cette requête |
18 | String getProtocol() Retourne le nom et la version du protocole utilisé par ce request |
19 | String getQueryString() Retourne la chaîne de requête de la URL de ce request |
20 | String getRemoteAddr() Retourne l'adresse IP du client |
21 | String getRemoteHost() Retourne le nom complet du client |
22 | String getRemoteUser() Retourne l'utilisateur connecté du client via l'authentification, ou retourne null si l'utilisateur n'est pas authentifié |
23 | String getRequestURI() Retourne l'URI de la requête |
24 | String getRequestedSessionId() Retourne l'ID de session spécifié par la requête |
25 | String getServletPath() Retourne le chemin du servlet demandé |
26 | String[] getParameterValues(String name) Retourne toutes les valeurs des paramètres spécifiés par le nom, ou retourne null s'ils n'existent pas |
27 | boolean isSecure() Retourne si la requête utilise un canal chiffré, comme HTTPS |
28 | int getContentLength() Retourne le nombre d'octets contenus dans le corps de la requête, ou retourne null si inconnu-1 |
29 | int getIntHeader(String name) Retourne la valeur de l'en-tête de requête spécifié par le nom |
30 | int getServerPort() Retourne le numéro de port du serveur |
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.