Demande de client JSP, réponse du serveur & Codes d'état HTTP

Table des matières:

Anonim

Actions JSP qui utilisent des constructions dans la 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 client, la réponse du serveur, les codes d'état HTTP.

Dans ce didacticiel, vous apprendrez-

  • Demande de client JSP
  • Réponse du serveur JSP
  • Codes d'état HTTP JSP

Demande de 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 à l'aide de l'objet HTTPServletRequest.
  • Les informations envoyées par le navigateur sont stockées dans l'en-tête de requête de la requête HTTP.
  • Nous utilisons différents en-têtes pour envoyer des informations à l'objet de requête.

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

Entête Description Exemple
J'accepte Il spécifie les types MIME que le navigateur ou d'autres clients peuvent gérer Image / png ou image / jpeg.webp
Accept-charset 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 compressez
Accepter la langue Il spécifie la langue spécifiée par les clients En, 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
Connexion Il indique si le client peut gérer les connexions HTTP persistantes (le navigateur peut récupérer plusieurs fichiers) Rester en vie
Content-length Applicable pour poster des demandes. Il donne la taille des données de publication d'octets
Biscuit Renvoie le cookie au serveur (ceux qui ont été précédemment envoyés au navigateur)
Héberger 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 ne nécessite une page que si elle n'a pas été changée ou modifiée
Référent Indique l'URL de la page URL de référence
Agent utilisateur Identifie le navigateur ou le client qui fait la demande

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

  1. Cookie [] getCookies () - retourne un tableau contenant des objets cookie que le client a envoyés
  2. Enumeration getAttributeNames () - contient l'énumération des noms d'attributs pour la demande
  3. Enumeration getHeaderNames () - contient l'énumération des noms d'en-tête.
  4. Enumeration getParameterNames () - contient l'énumération des noms de paramètres dans la requête.
  5. HttpSessiongetSession () - renvoie la session actuelle associée à la demande ou si elle n'a pas de session, elle en créera une nouvelle.
  6. Locale 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. Object getAttribute (String name) - 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. String getAuthType () - renvoie le nom du schéma d'authentification pour protéger le servlet
  10. String getCharacterEncoding () - renvoie le nom du codage de caractères utilisé dans le corps de la requête.
  11. String getContentType () - renvoie le type MIME du corps de la requête.
  12. String getContextPath () - renvoie la partie de l'URI de la demande indique le chemin de contexte de l'URI
  13. String getHeader (String name) - renvoie l'en-tête de la demande sous forme de chaîne
  14. String getMethod () - renvoie le nom de la méthode HTTP comme GET, POST
  15. String getParameter (String name) - renvoie le paramètre de la demande sous forme de chaîne.
  16. String getPathInfo () - renvoie les informations de chemin associées à l'URL
  17. String getQueryString () - renvoie la chaîne de requête associée à l'URL de la requête
  18. String getServletPath () - renvoie la partie des URL de la requête qui appelle la JSP
  19. String [] getParameterValues ​​(String name) - 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. *"%> Client Request Guru JSP 

Client Request Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Paramètres régionaux gurulocale = request.getLocale ();out.print (" ");Chemin de chaîne = request.getPathInfo ();out.print (" ");Chaîne lpath = request.get ();out.print (" ");Chaîne nom_serveur = request.getServerName ();out.print (" ");int nom_port = request.getServerPort ();out.print (" ");Énumération hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");Chaîne paramValue = request.getHeader (paramName);out.println (" ");}%>

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 d'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 i.een_US locale pour cette JSP.

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

Ligne de code 23: En utilisant l'objet de requête, nous obtenons le chemin du contexte, 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 sortent sous forme d'énumération, et par conséquent 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 en tant que cookie, hôte, connexion, acceptons la langue, acceptons l'encodage.

Lorsque vous exécutez le code ci-dessus, vous obtenez la sortie suivante:

Sortie :

Nous obtenons la série de valeurs telles que le nom de session, le nom de la locale, le nom du chemin, le nom du serveur, le nom du port, l'hôte, le chemin de contexte et toutes les valeurs d'en-tête de cette JSP.

Réponse du serveur JSP

  • Lorsqu'une demande est traitée et que 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.

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

guru header guru header Valeur (s)
Le nom de la session est " + gurusession + "
Le nom des paramètres régionaux est " + gurulocale + "
Le nom du chemin est " + chemin + "
Le chemin du contexte est " + lipath + "
Le nom du serveur est " + nom du serveur + "
Le port du serveur est " + portname + "
" + paramName + "" + paramValue + "
Entête Description
Permettre Il spécifie les méthodes de requête telles que GET, POST que le serveur demande
Contrôle du cache 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
Connexion Il indique si le navigateur doit utiliser ou non SavedHTTPConnections. La valeur de fermeture indique que le navigateur ne doit pas utiliser persistante dans HTTPConnections et "keep-alive" signifie l'utilisation de connexions persistantes
Disposition du contenu Pour demander à l'utilisateur s'il doit enregistrer la réponse sur le disque ou non
Encodage de contenu La page doit être encodée lors de la transmission
Content-length Nombre d'octets dans la réponse
Type de contenu Il spécifie le type de réponse MIME
Expire Spécifie jusqu'à quand le contenu doit être considéré comme obsolète et ne doit pas être mis en cache
Dernière modification Il indique la date de la dernière modification du document
Lieu Il doit être inclus avec toutes les réponses dont le code d'état a 300 comme code d'état
Rafraîchir Il spécifie comment trouver la page mise à jour.
Réessayer après Il peut être utilisé avec la réponse 503 pour indiquer au client à quel moment il peut répéter la demande
Set-cookie Spécifie le cookie associé à la page

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

  1. String encodeRedirectURL (String URL) - code l'URL dans la méthode redirectURL.
  2. String encodeURL (String URL) - code l'URL en incluant l'ID de session.
  3. Boolean containsHeader (String name) - il contient un en-tête dans la JSP ou non.
  4. Boolean isCommited () - la réponse a été validée ou non.
  5. Void addCookie (cookie cookie) - ajoute un cookie à la réponse
  6. Void addDateHeader (String name, String value) - ajoute le nom et la valeur de la date et de la valeur de l'en-tête de réponse
  7. Void addHeader (String name, String value) - ajoute un en-tête de réponse avec le nom et la valeur
  8. Void addIntHeader (String name, int value) - ajoute un en-tête de réponse avec un nom et une valeur entière
  9. Void flushBuffer () - force le contenu de la mémoire tampon à la sortie vers le client.
  10. Void reset () - efface les données dans le tampon.
  11. Void resetBuffer - efface le tampon de contenu dans la réponse sans effacer les codes d'état.
  12. Void sendError (intsc, Stringmsg) - envoie une réponse d'erreur au client en utilisant le code d'état.
  13. Void sendRedirect (String location) - envoie une réponse de redirection temporaire au client.
  14. Void setBufferSize (int size) - définit la taille du tampon du corps
  15. Void setCharacterEncoding (String charset) - définit le codage des caractères
  16. Void setContentType (String type) - définit le type de contenu de la réponse
  17. Void setContentLength (intlen) - définit la longueur du contenu de la réponse
  18. Void setLocale (Locale lcl) - définit le type de locale de la réponse
  19. Void setStatus (intsc) - définit le code d'état de la réponse

Exemple:

Dans cet exemple, nous couvrons différentes méthodes getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Guru Action Response 

Réponse du gourou

<%Locale lcl = response.getLocale ();out.println ("Locale is: + lcl + "\ n");response.flushBuffer ();Sortie PrintWriter = response.getWriter ();output.println ("Ceci provient de l'objet écrivain");Type de chaîne = response.getContentType ();out.println ("Le type de contenu: + type + "\ n");// Définit le temps d'actualisation et de chargement automatique sur 5 secondesresponse.setIntHeader ("Actualiser", 5);// Obtenir l'heure actuelleDate dt = nouvelle date ();out.println ("La date d'aujourd'hui est: + dt.toString () + "\ n");%>

Explication du code:

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

Ligne de code 15: à l' aide de l'objet de réponse, flushbuffer est utilisé pour forcer le contenu de la mémoire tampon 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

Code Line18: 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: En utilisant l'objet de réponse, il est utilisé pour charger automatiquement toutes les 5 secondes car 5 est défini comme deuxième paramètre

Lorsque vous exécutez le code ci-dessus, vous obtenez la sortie suivante:

Production:

  • Ici, nous obtenons la sortie car elle provient de l'objet écrivain de getWriter, ce qui nous donne un objet et nous pouvons la sortie dans le flux de sortie.
  • Nous obtenons les paramètres régionaux en tant que en_us et le type de contenu en tant que texte / html
  • Nous obtenons le jeu de caractères ISO 8859
  • La date d'aujourd'hui est la 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 de la 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 appartiennent aux 5 catégories suivantes:

  • 100-199 - Ici, le client indique qu'il doit répondre avec une action
  • 200-299 - Cela signifie que la demande est réussie
  • 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 la 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 la dernière modification
  • 400 - Mauvaise demande
  • 404 - introuvable
  • 405 - Méthode introuvable
  • 500 - Erreur de serveur interne
  • 503 Service Indisponible
  • 505 - Version HTTP non prise en charge

Certaines de ses méthodes sont énumérées ci-dessous:

  1. Public void setStatus (intstatusCode)

    Il définit le code de statut selon ce que nous voulons définir dans cette page JSP.Cela nous donnera le message du code de statut qui a été défini

  2. Public void sendRedirect (chaîne URL)

    Il génère 302 réponses avec l'en-tête d'emplacement donnant 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 le document HTML.

Exemple:

Dans cet exemple, nous envoyons une erreur à la page JSP de manière explicite.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Code de statut du gourou <% response.sendError (404, "Guru Page Not Found"); %>

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 dont nous voulons afficher l'erreur

Si vous exécutez le code ci-dessus, vous obtenez la sortie suivante:

Production:

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

Résumé:

  • Dans cet article, nous avons découvert la demande du client et la réponse du serveur sur la façon dont la demande est interceptée et comment les réponses sont manipulées.
  • En outre, nous avons appris les codes d'état HTTP pour afficher les codes d'erreur ou les codes de réussite pour un fichier particulier.