Requête HTTP du client JSP et réponse du serveur avec exemple

Actions JSP qui utilisent des constructions en syntaxe XML pour contrôler le comportement du moteur de servlet. Nous en apprendrons plus en détail sur divers éléments d'action JSP tels que la demande du client, la réponse du serveur, les codes d'état HTTP.

Demande du client JSP

  • Lorsque la page Web est demandée, elle envoie des informations au serveur Web dans l'en-tête HTTP.
  • Nous pouvons utiliser ces informations en utilisant l'objet HTTPServletRequest.
  • Les informations envoyées par le navigateur sont stockées dans l'en-tête de la requête HTTP.
  • Nous utilisons différents en-têtes pour envoyer des informations à l'objet de requête.

En-têtes dans JSP

Différents en-têtes dans JSP sont décrits ci-dessous :

En-tête Description Exemple
Accepter Il spécifie les types MIME que le navigateur ou d'autres clients peuvent gérer Image/png ou image/jpeg
Accepter le jeu de caractères Il utilise le jeu de caractères utilisé par le navigateur pour afficher les informations ISO-8859-1
Accepter - Encodage Il spécifie le type d'encodage géré par le navigateur Gzip ou compresser
Accepter-langue Il spécifie la langue spécifiée par les clients Fr,en_us
Autorisation En-tête utilisé par les clients lorsqu'ils tentent d'accéder à des pages Web protégées par mot de passe
La connexion Il indique si le client peut gérer les connexions HTTP persistantes (le navigateur peut récupérer plusieurs fichiers) Rester en vie
Longueur du contenu Applicable aux demandes de publication. Il donne la taille des données de publication en octets
Cookies Renvoie les cookies au serveur (ceux qui ont été précédemment envoyés au navigateur)
Hôte Spécifie l'hôte et le port de l'URL d'origine
Si modifié depuis Il indique qu'il ne nécessite qu'une page si elle a été changée ou modifiée
Si non modifié depuis Il indique qu'il nécessite une page uniquement si elle n'a pas été changée ou modifiée
Parrain Indique l'URL de la page URL de référence
User-agent Identifie le navigateur ou le client faisant la demande

Méthodes d'en-tête HTTP dans JSP

Following les méthodes sont utilisées pour lire l'en-tête HTTP dans la page JSP :

  1. Cookie[] getCookies() – renvoie un tableau contenant les objets cookies que le client a envoyés
  2. Énumération getAttributeNames() – contient une énumération des noms d'attributs pour la demande
  3. Énumération getHeaderNames() – contient une énumération des noms de l'en-tête.
  4. Énumération getParameterNames() – contient une énumération des noms de paramètres obtenus dans la requête.
  5. HttpSessiongetSession() – renvoie la session en cours associée à la demande ou s'il n'a pas de session, il en créera une nouvelle.
  6. Paramètres régionaux getLocale() – renvoie les paramètres régionaux préférés dans lesquels le client acceptera le contenu. Il a été attribué à la réponse. Par défaut, la valeur sera la locale par défaut du serveur.
  7. Objet getAttribute (nom de la chaîne) – renvoie la valeur de l'attribut nommé en tant qu'objet.
  8. ServletInputStreamgetInputStream() – récupère le corps de la requête sous forme de données binaires.
  9. Chaîne getAuthType() – renvoie le nom du schéma d'authentification pour protéger le servlet
  10. Chaîne getCharacterEncoding() – renvoie le nom du codage de caractères utilisé dans le corps de la requête.
  11. Chaîne getContentType() – renvoie le type MIME du corps de la requête.
  12. Chaîne getContextPath() – renvoie la partie de l'URI de la demande indique le chemin contextuel de l'URI
  13. Chaîne getHeader (nom de la chaîne) – renvoie l'en-tête de la requête sous forme de chaîne
  14. Chaîne getMethod() – renvoie le nom de la méthode HTTP comme GET, POST
  15. Chaîne getParameter (nom de la chaîne) – renvoie le paramètre de la requête sous forme de chaîne.
  16. Chaîne getPathInfo() – renvoie les informations de chemin associées à l'URL
  17. Chaîne getQueryString() – renvoie la chaîne de requête associée à l'URL de la requête
  18. Chaîne getServletPath() – renvoie la partie des URLs de la requête qui appelle la JSP
  19. String[] getParameterValues ​​(nom de la chaîne) – renvoie le tableau d'objets chaîne contenant les valeurs du paramètre de requête.

Mise en situation :

Dans l'exemple ci-dessous, nous utilisons différentes méthodes utilisant l'objet de requête

<%@ 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>");
	}

%>

Explication du code :

Ligne de code 17 : En utilisant l'objet de requête, nous obtenons l'objet de session de cette session particulière et nous obtenons la valeur de l'objet de cette session.

Ligne de code 19 : En utilisant l'objet de requête, nous obtenons les paramètres régionaux de cette session particulière, c'est-à-dire les paramètres régionaux een_US pour cette JSP.

Ligne de code 21 : En utilisant l'objet de requête, nous obtenons des informations sur le chemin de cette JSP. Dans ce cas, il est nul car aucun chemin pour l’URL n’est mentionné.

Ligne de code 23 : En utilisant l'objet de requête, nous obtenons le chemin contextuel, c'est-à-dire le chemin racine

Ligne de code 25 : En utilisant l'objet de requête, nous obtenons le nom du serveur.

Ligne de code 27 : En utilisant l'objet de requête, nous obtenons le port du serveur.

Ligne de code 29-35 : En utilisant l'objet de requête, nous obtenons des noms d'en-tête qui apparaissent sous forme d'énumération, et donc nous obtenons toutes les valeurs d'en-tête dans les noms d'en-tête.

En cela, nous obtenons toutes les valeurs d'en-tête sous forme de Cookies, hôte, connexion, accepter la langue, accepter l'encodage.

Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivantwing sortie:

Demande du client JSP

Sortie:

Nous obtenons la série de valeurs telles que le nom de session, le nom de paramètres régionaux, le nom de chemin, le nom de serveur, le nom de port, l'hôte, le chemin de contexte et toutes les valeurs d'en-tête de celui-ci. JSP.

Réponse du serveur JSP

  • Lorsqu'une demande est traitée, la réponse est générée à partir du serveur Web. Il se compose d'une ligne d'état, d'en-têtes de réponse, d'une ligne vierge et d'un document.
  • C'est l'objet de HTTPServletResponseclass, qui est un objet de réponse.
  • La ligne d'état est une version de HTML.

En-têtes de réponse dans JSP

Les en-têtes de réponse dans JSP sont mentionnés ci-dessous :

En-tête Description
Autoriser Il spécifie les méthodes de requête telles que GET, POST que le serveur demande
Cache-contrôle Le document de réponse peut être mis en cache. Il peut être public, privé et sans cache. Aucun cache spécifie que le document ne doit pas être mis en cache
La connexion Il indique si le navigateur doit utiliser les connexions HTTP enregistrées ou non. La valeur Close représente que le navigateur ne doit pas utiliser de connexions persistantes dans HTTPConnections et « keep-alive » signifie utiliser des connexions persistantes.
Contenu-disposition Pour demander à l'utilisateur s'il doit ou non enregistrer la réponse sur le disque
Encodage de contenu La page doit être encodée pendant transmission
Longueur du contenu Nombre d'octets dans la réponse
Type de contenu Il spécifie le type de réponse MIME
Expire le Spécifie jusqu'à quand le contenu doit être considéré comme obsolète et ne doit pas être mis en cache
Dernière mise à jour Il indique quand le document a été modifié pour la dernière fois
Localisation Il doit être inclus avec toutes les réponses dont le code d'état est 300 comme code d'état.
Refresh Il précise comment trouver la page mise à jour.
Réessayer après Il peut être utilisé avec la réponse 503 pour indiquer au client dans combien de temps il peut répéter la demande.
Set-cookie Spécifie le cookie associé à la page

Méthodes d'en-tête de réponse HTTP dans JSP

Following sont les méthodes dans JSP utilisant l'objet de réponse :

  1. Chaîne encodeRedirectURL (URL de chaîne) – encode l'URL dans la méthode redirectURL.
  2. Chaîne encodeURL (URL de chaîne) – encode l'URL en incluant l'ID de session.
  3. Booléen containHeader (nom de chaîne) – il contient ou non un en-tête dans le JSP.
  4. Booléen isCommited() – la réponse a été engagée ou non.
  5. Void addCookie(Cookie cookie) – ajoute un cookie à la réponse
  6. Void addDateHeader (nom de chaîne, valeur de chaîne) – ajoute le nom et la valeur de la date de l'en-tête de réponse
  7. Void addHeader (nom de chaîne, valeur de chaîne) – ajoute un en-tête de réponse avec un nom et une valeur
  8. Void addIntHeader (nom de chaîne, valeur int) – ajoute un en-tête de réponse avec un nom et une valeur entière
  9. Vider la chasse d'eauBuffer() - force le contenu dans le buffer à la sortie vers le client.
  10. Annuler la réinitialisation() – efface les données dans le buffer.
  11. Annuler la réinitialisationBuffer - efface le contenu buffer dans la réponse sans effacer les codes d’état.
  12. Annuler sendError (intsc, Stringmsg) – envoie une réponse d'erreur au client à l'aide du code d'état.
  13. Annuler sendRedirect (emplacement de la chaîne) – envoie une réponse de redirection temporaire au client.
  14. Ensemble videBufferTaille (taille entière) – ensembles buffer taille du corps
  15. Void setCharacterEncoding (jeu de caractères de chaîne) – définit le codage des caractères
  16. Void setContentType (type de chaîne) – définit le type de contenu de la réponse
  17. Annuler setContentLength (intlen) – définit la longueur du contenu de la réponse
  18. Annuler setLocale (Locale lcl) – définit le type de paramètres régionaux de la réponse
  19. Annuler setStatus (intsc) – définit le code d'état de la réponse

Mise en situation :

Dans cet exemple, nous couvrons différentes méthodes getLocale,flushbuffer, getWriter, récupérez 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>

Explication du code :

Ligne de code 13 : En utilisant l'objet de réponse, nous obtenons l'objet locale de cette session JSP

Ligne de code 15 : À l'aide de l'objet de réponse, videzbuffer est utilisé pour forcer le buffer contenu dans le client

Ligne de code 16 : En utilisant l'objet de réponse, nous obtenons un objet écrivain qui obtient la sortie dans le flux de sortie

Ligne de code 18 : En utilisant l'objet de réponse, nous obtenons le type de contenu, c'est-à-dire le type MIME de l'objet de réponse

Ligne de code 21 : À l'aide d'un objet de réponse, il est utilisé pour le chargement automatique toutes les 5 secondes, car 5 est défini comme deuxième paramètre.

Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivantwing sortie:

Réponse du serveur JSP

Sortie :

  • Ici, nous obtenons la sortie telle qu'elle provient de l'objet écrivain de getWriter, qui nous donne un objet et que nous pouvons afficher dans le flux de sortie.
  • Nous obtenons les paramètres régionaux comme en_us et le type de contenu comme text/html
  • Nous obtenons un jeu de caractères ISO 8859
  • La date du jour comme date du jour.

Codes d'état HTTP JSP

  • Lorsque la demande est traitée, la réponse est générée. La ligne d'état de la réponse se compose d'une version HTTP, d'un code d'état et d'un message associé.
  • Le message est directement associé au code d'état et à la version HTTP, et il est déterminé par le serveur.
  • Par défaut, 200 est défini comme code d'état dans JSP, nous n'avons donc pas besoin de le définir explicitement.
  • Nous pouvons définir comme méthode Response.setStatus()

Les codes s'enchaînentwing 5 catégories:

  • 100-199 – Ici, le client indique qu'il doit répondre par une action
  • 200-299 – Cela signifie que la demande a réussi
  • 300-399 – Ils sont utilisés pour les fichiers qui ont été déplacés et incluent généralement un en-tête d'emplacement indiquant une nouvelle adresse.
  • 400-499 – Indique une erreur du client
  • 500-599 – Indique une erreur du serveur

Certains des codes d'état courants sont ci-dessous :

  • 200 – Indique que tout va bien
  • 301 – Il a déménagé définitivement
  • 304 – Non modifié depuis le dernier changement
  • 400 - Mauvaise demande
  • 404 - Non trouvé
  • 405 – Méthode introuvable
  • 500 - Erreur de serveur interne
  • 503 Service Indisponible
  • 505 – Version HTTP non prise en charge

Méthodes de code d'état HTTP dans JSP

Certaines des méthodes de code d'état dans JSP sont répertoriées ci-dessous :

  1. Public void setStatus (intstatusCode) : Il définit le code d'état selon celui que nous souhaitons définir dans cette page JSP. Cela nous donnera le message du code d'état qui a été défini.
  2. Public void sendRedirect (URL de chaîne) : Il génère une réponse 302 ainsi que l'en-tête d'emplacement indiquant l'URL du nouveau document.
  3. Public void sendError (intcode, Stringmsg) : Il envoie le code d'état avec le message court et il est formaté dans un document HTML.

Mise en situation :

Dans cet exemple, nous envoyons explicitement une erreur à la page 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>

Explication du code :

Ligne de code 10 : En utilisant l'objet de réponse, nous envoyons l'erreur à une page avec deux paramètres.

  1. Code d'état – Il peut s'agir de l'un des éléments ci-dessus. Dans ce cas, nous avons décrit comme 404
  2. Message – Il peut s'agir de n'importe quel message spécifique que nous voulons afficher l'erreur

Si vous exécutez le code ci-dessus, vous obtenez le résultat suivantwing sortie:

Codes d'état HTTP JSP

Sortie :

Ici, nous obtenons le code d'erreur 404, qui a été envoyé à partir du code et affiche également le message « Guru Page not found » affiché dans la sortie.

Résumé

  • Dans cet article, nous avons découvert la demande du client et la réponse du serveur, la manière dont la demande est interceptée et la manière dont les réponses sont manipulées.
  • Actions JSP qui utilisent des constructions en syntaxe XML pour contrôler le comportement du moteur de servlet.
  • Lorsque la page Web est demandée, elle envoie des informations au serveur Web dans l'en-tête HTTP.
  • Lorsqu'une demande est traitée, la réponse est générée à partir du serveur Web. Il se compose d'une ligne d'état, d'en-têtes de réponse, d'une ligne vierge et d'un document.
  • Lorsque la demande est traitée, la réponse est générée. La ligne d'état de la réponse se compose d'une version HTTP, d'un code d'état et d'un message associé.