Demande du client JSP

⚡ Résumé intelligent

Les requêtes client et les réponses serveur JSP utilisent les éléments d'action JSP pour contrôler le moteur de servlet. Le navigateur envoie des informations via les en-têtes HTTP, le serveur renvoie une ligne d'état et des en-têtes, et les codes d'état HTTP indiquent le résultat de chaque requête.

  • (I.e. Demande du client : Le navigateur envoie des données au serveur dans les en-têtes de requête HTTP, lus via HttpServletRequest.
  • 🧾 En-têtes de demande: Les champs Accept, Accept-language, Connection, Cookie, Host et User-agent décrivent le client.
  • 📤 Réponse du serveur : HttpServletResponse renvoie une ligne d'état, des en-têtes de réponse et le document.
  • 🔧 Méthodes de réponse : addHeader(), sendRedirect(), sendError() et setStatus() façonnent la réponse.
  • (I.e. Statut Codes: Groupés de 100 à 599 ; les plus courants incluent 200, 301, 404 et 500.
  • 🧪 Exemples : Les pages JSP fonctionnelles lisent les en-têtes, définissent un intervalle d'actualisation et envoient une erreur 404.

Demande du client JSP

Les actions JSP utilisent des constructions en syntaxe XML pour contrôler le comportement du moteur de servlet. Nous étudierons plus en détail les différents éléments d'une action JSP, tels que la requête client, la réponse du serveur et 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'original URL
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 URL de référence URL page
User-agent Identifie le navigateur ou le client faisant la demande

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

Les méthodes suivantes 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 d'en-tête.
  4. Énumération getParameterNames() – contient une énumération des noms de paramètres obtenus dans la requête.
  5. HttpSession getSession() – 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. Ils ont été attribués à la réponse. Par défaut, la valeur sera la langue 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. ServletInputStream getInputStream() – 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 à URL
  17. Chaîne getQueryString() – renvoie la chaîne de requête associée à la requête URL
  18. Chaîne getServletPath() – renvoie la partie de 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.

Exemple :

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 :

Code Ligne 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.

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

Code Ligne 21: En utilisant l'objet requête, nous obtenons les informations de chemin pour cette JSP. Dans ce cas, la valeur est nulle car aucun chemin n'est défini. URL mentionné.

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

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

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

Code Ligne 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 suivant :

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.
  • Il s'agit d'un objet de la classe HTTPServletResponse, 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 codée pendant la 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
Lieu 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

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

  1. String encodeRedirectURL(Chaîne URL) - encode le URL en redirectionURL méthode.
  2. Encodage de chaîneURL(Chaîne URL) - encode le URL en incluant l'identifiant 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 du tampon à être envoyé au client.
  10. Annuler la réinitialisation() – efface les données dans le tampon.
  11. Annuler la réinitialisationBuffer - efface le tampon de contenu dans la réponse sans effacer les codes d'état.
  12. Void sendError(int sc,String msg) – 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) – définit la taille du tampon 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. Void setContentLength(int len) – 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. Void setStatus(int sc) – définit le code d'état de la réponse

Exemple :

Dans cet exemple, nous abordons différentes méthodes : getLocale, flushbuffer et get.Writer, obtenirContentType, définirIntHeader.

<%@ 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 :

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

Code Ligne 15: À l'aide d'un objet de réponse, flushbuffer est utilisé pour forcer le contenu du tampon dans le client

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

Code Ligne 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

Code Ligne 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 suivant :

Réponse du serveur JSP

Sortie :

  • Voici le résultat obtenu à partir de l'objet writer obtenu.Writer, ce qui nous donne un objet 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.

État HTTP JSP Codes

  • 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 se répartissent en 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

Statut HTTP Code Méthodes en JSP

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

  1. public void setStatus(int status)Code): Il définit le code d'état 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(String) URL): Elle génère une réponse 302 ainsi que l'en-tête Location, ce qui donne URL du nouveau document
  3. public void sendError(int code,String msg): Il envoie le code d'état avec le message court et il est formaté dans un document HTML.

Exemple :

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 :

Code Ligne 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 suivant :

État HTTP JSP Codes

Sortie :

Nous obtenons ici le code d'erreur 404, qui a été envoyé par le code et affiche également «Guru Message « Page introuvable » affiché dans le résultat.

FAQ

HttpServletRequest transporte les données envoyées par le client au serveur, telles que les en-têtes et les paramètres. HttpServletResponse transporte les données renvoyées par le serveur, notamment les codes d'état, les en-têtes de réponse et le contenu du document.

Le code d'état 404 signifie que la ressource demandée est introuvable sur le serveur. En JSP, vous pouvez l'envoyer explicitement avec `response.sendError(404, "message")` pour afficher une page d'erreur personnalisée.

Utilisez l'objet requête : `getHeaderNames()` renvoie une énumération des noms d'en-tête, et `getHeader(name)` renvoie la valeur de chaque en-tête. Parcourez les noms pour lire chaque en-tête envoyé par le client.

L'IA peut analyser les journaux d'en-tête, signaler les en-têtes manquants ou mal configurés, détecter les problèmes de sécurité tels que l'absence de contrôle du cache et résumer les modèles de trafic.ping Les développeurs peuvent déboguer et optimiser plus rapidement la gestion des requêtes et des réponses.

Oui. L'IA peut générer des scripts JSP qui lisent les paramètres et les en-têtes de requête, définissent les en-têtes de réponse et envoient des codes d'état à partir d'une description en langage clair, que les développeurs examinent ensuite pour en vérifier l'exactitude et la sécurité.

Résumez cet article avec :