Demande du client JSP


Lorsque le navigateur demande une page Web, il envoie une série d'informations au serveur réseau qui ne peuvent pas être lues directement car les informations sont transmises dans le cadre de l'en-tête HTTP. Vous pouvez consulter le protocole HTTP pour plus d'informations.

Le tableau suivant répertorie certains contenus importants de l'en-tête d'informations côté navigateur. Vous verrez souvent ces informations dans la programmation réseau future :

InformationsDescription
Accepter Spécifie les types MIME que le navigateur ou un autre client peut gérer. Sa valeur est généralement image/png ou image/jpeg
Accepter-Charset                 Spécifie le jeu de caractères à utiliser par le navigateur. Par exemple, ISO-8859-1
Accepter-Encoding                   Spécifiez le type de codage. Sa valeur est généralement gzip ou compress
Accepter-Langue                 Spécifiez la langue préférée du client. La servlet donnera la priorité au renvoi d'un jeu de résultats dans la langue actuelle, si la servlet prend en charge cette langue. Par exemple, en, en-us, ru, etc.
Autorisation                 Identifiez différents utilisateurs lorsque vous accédez à des pages Web protégées par mot de passe
                       Connexion                 Indique si le client peut gérer les connexions HTTP persistantes. Les connexions persistantes permettent au client ou au navigateur de récupérer plusieurs fichiers en une seule requête.Keep-Alive signifie activer les connexions persistantes
Longueur du contenu                 Applicable uniquement aux requêtes POST, indiquant le nombre d'octets de données POST
Cookie                 Renvoyez les cookies précédemment envoyés au navigateur au serveur
Hôte Indiquez le nom d'hôte et le numéro de port dans l'URL d'origine
Si-Modifié-Depuis                 Indique que le client n'a besoin de cette page web que si elle a été modifiée à la date spécifiée. Le serveur envoie un code 304 au client, indiquant qu'il n'y a pas de ressources mises à jour
Si-non modifié-depuis                 Contrairement à If-Modified-Since, l'opération ne réussira que si le document n'a pas été modifié après la date indiquée
Référent               Marque l'URL de la page référencée. Par exemple, si vous êtes sur la page 1 et que vous cliquez ensuite sur un lien vers la page 2, alors l'URL de la page 1 sera incluse dans l'en-tête de la requête du navigateur pour la page 2
Agent utilisateur                 Utilisé pour distinguer les requêtes envoyées par différents navigateurs ou clients et renvoyer différents contenus à différents types de navigateurs

L'objet request de classe HttpServletRequest

est une instance de la classe javax.servlet.http.HttpServletRequest. Chaque fois qu'un client demande une page, le moteur JSP génère un nouvel objet pour représenter la demande.

L'objet request fournit une série de méthodes pour obtenir des en-têtes d'informations HTTP, notamment des données de formulaire, des cookies, des méthodes HTTP, etc.

Ensuite, nous présenterons quelques méthodes couramment utilisées dans la programmation JSP pour obtenir des en-têtes d'informations HTTP. Veuillez consulter le tableau ci-dessous pour plus de détails :

Numéro de sérieMéthode& Description
                       1Cookie[] getCookies()


Renvoie un tableau de tous les cookies sur le client
2Énumération getAttributeNames()


Renvoie l'ensemble de tous les noms d'attributs de l'objet de requête
3Énumération getHeaderNames()


Renvoie l'ensemble de noms de tous les en-têtes HTTP
4Énumération getParameterNames()


Renvoie l'ensemble de tous les paramètres de la requête
5HttpSession getSession()


Renvoyez l'objet session correspondant à la requête. Sinon, créez-en un
. 6HttpSession getSession (création booléenne)


Renvoie l'objet session correspondant à la requête. Si ce n'est pas le cas et que le paramètre create est vrai, un nouvel objet session
est renvoyé. 7Locale getLocale()


Renvoie l'objet Locale de la page actuelle, qui peut être défini en réponse
8Objet getAttribute(Nom de la chaîne)


Renvoie la valeur de l'attribut nommée name, ou null si elle n'existe pas.
9ServletInputStream getInputStream()


Renvoie le flux d'entrée demandé
10Chaîne getAuthType()


Renvoie le nom du schéma d'authentification utilisé pour protéger le servlet, tel que "BASIC" ou "SSL" ou null si aucune mesure de protection n'est définie pour le JSP
11String getCharacterEncoding()


Renvoie le nom du jeu de codage de caractères de la requête
12Chaîne getContentType()


Renvoie le type MIME du corps de la requête, ou null si inconnu
13Chaîne getContextPath()


Renvoie le chemin de contexte spécifié dans l'URI de la requête
14String getHeader(Nom de la chaîne)


Renvoie l'en-tête d'information spécifié par nom
15Chaîne getMethod()


Renvoie la méthode HTTP dans cette requête, telle que GET, POST ou PUT
16String getParameter(Nom de la chaîne)


Renvoie le paramètre spécifié par nom dans cette requête, ou null s'il n'existe pas
17Chaîne getPathInfo()


Renvoie tous les chemins supplémentaires associés à cette URL de demande
                  18Chaîne getProtocol()


Renvoie le nom du protocole et la version utilisés par cette requête
19String getQueryString()


Renvoie la chaîne de requête
contenue dans cette URL de requête 20Chaîne getRemoteAddr()


Renvoie l'adresse IP du client
21Chaîne getRemoteHost()


Renvoie le nom complet du client
22Chaîne getRemoteUser()


Renvoie l'utilisateur qui a réussi l'authentification de connexion sur le client. Si l'utilisateur n'est pas authentifié, renvoie null
. 23Chaîne getRequestURI()


Renvoie l'URI de la requête
24String getRequestedSessionId()


Renvoie l'ID de session spécifié par la demande
25Chaîne getServletPath()


Renvoie le chemin du servlet demandé
26String[] getParameterValues(String name)


Renvoie toutes les valeurs du paramètre avec le nom spécifié, ou null s'il n'existe pas
27booléen isSecure()


Indique si la requête utilise un canal crypté, tel que HTTPS
28int getContentLength()


Renvoie le nombre d'octets contenus dans le corps de la requête. S'il est inconnu, renvoie -1
. 29int getIntHeader(Nom de la chaîne)


Renvoie la valeur de l'en-tête de requête avec le nom spécifié
30int getServerPort()


Renvoyer 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 renvoie les informations d'en-tête de la requête HTTP en cours sous la forme d'une énumération.

Après avoir obtenu l'objet Enumeration, utilisez la méthode standard pour parcourir l'objet Enumeration, utilisez la méthode hasMoreElements() pour déterminer quand arrêter et utilisez 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>php中文网(php.cn)</title>
</head>
<body>
<h2>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, vous obtiendrez les résultats suivants :

jspheadmsg.jpg

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