Cookies dans JSP avec exemple
⚡ Résumé intelligent
Les cookies JSP sont de petits fichiers texte stockés sur le navigateur du client qui aident les applications JSP à fonctionner. track sessions, mémoriser les préférences de l'utilisateur et personnaliser les réponses sur plusieurs requêtes HTTP à l'aide de l'API javax.servlet.http.Cookie et des en-têtes de réponse standard.
Que sont les cookies JSP ?
Les cookies JSP sont de petits fichiers texte qu'un serveur web JSP demande au navigateur client de stocker sur l'appareil de l'utilisateur. Le protocole HTTP étant sans état, les cookies JSP offrent une méthode simple et standardisée pour mémoriser des informations entre les requêtes, comme l'état de connexion, le choix de la langue, le thème ou la boutique.ping Identifiants du panier.
- Les cookies JSP sont de simples fichiers texte stockés sur la machine cliente par le navigateur.
- Ils ont l'habitude de track informations pour la gestion des sessions, la personnalisation et l'analyse.
- JSP prend en charge les cookies HTTP via la technologie Servlet sous-jacente et la classe javax.servlet.http.Cookie.
- Les cookies JSP sont transmitted dans les en-têtes de requête et de réponse HTTP sur chaque requête correspondante.
- Lorsque le navigateur est configuré pour accepter les cookies, il les stocke sur le disque jusqu'à la date d'expiration définie par setMaxAge.
Pourquoi utiliser les cookies JSP ?
Les développeurs JSP utilisent les cookies car les requêtes HTTP sont indépendantes les unes des autres. Sans cookies JSP, le serveur ne pourrait pas savoir que deux requêtes proviennent du même visiteur. Les cookies en JSP résolvent ce problème en minimisant l'état côté serveur.
- Session tracRoi: Un cookie JSESSIONID relie plusieurs pages vues à une seule session logique.
- Personnalisation: Les cookies JSP peuvent stocker les préférences de langue, de thème ou de mise en page.
- Assistants d'authentification : Les jetons « Se souvenir de moi » et l'état de connexion sont souvent stockés dans des cookies avec les attributs HttpOnly et Secure activés.
- Analyse : Les cookies dans JSP enregistrent les visiteurs réguliers, les sites référents et les parcours de conversion.
Types de cookies JSP
- Cookie persistant : Un cookie JSP persistant reste stocké sur l'appareil pendant la durée définie par setMaxAge. Il permet à l'application de mémoriser les préférences et les informations de connexion même après le redémarrage du navigateur.
- Cookie non persistant : Un cookie JSP non persistant, également appelé cookie de session, est stocké uniquement dans la mémoire du navigateur et est supprimé lorsque l'utilisateur ferme ce dernier. Il est principalement utilisé pour les sessions de courte durée. tracRoi.
Méthodes de cookies JSP
La classe javax.servlet.http.Cookie expose les méthodes suivantes, le plus souvent utilisées lors de la manipulation des cookies JSP.
-
public void setDomain(String domain)
Cette méthode JSP de définition de cookie définit le domaine auquel le cookie JSP s'applique.
-
public String getDomain()
Cette méthode JSP get cookie renvoie le domaine auquel le cookie JSP s'applique.
-
public void setMaxAge(int expiration)
Ce paramètre définit la durée de vie maximale, en secondes, du cookie JSP. Une valeur nulle supprime le cookie, tandis qu'une valeur négative en fait un cookie de session.
-
public int getMaxAge()
Elle renvoie l'âge maximal du cookie JSP en secondes.
-
public String getName()
Elle renvoie le nom du cookie JSP.
-
public void setValue(String valeur)
Définit la valeur associée au cookie JSP.
-
public String getValue()
Renvoie la valeur associée au cookie JSP.
-
public void setPath(String path)
Cette méthode de définition de cookie dans JSP définit le URL chemin auquel le cookie s'applique.
-
public String getPath()
Il renvoie le URL chemin auquel s'applique le cookie JSP.
-
public void setSecure(boolean flag)
Il marque le cookie JSP afin qu'il ne soit envoyé que via des connexions HTTPS chiffrées.
-
public void setComment(String cmt)
Il décrit l'objectif du cookie JSP.
-
public String getComment()
Elle renvoie le commentaire décrivant le cookie JSP.
Comment gérer les cookies JSP
L'utilisation des cookies JSP comprend trois étapes répétables. Le même schéma est utilisé pour l'état de connexion, le changement de thème et la boutique.ping chariots.
- Créez l'objet Cookie JSP à l'aide du constructeur Cookie.
- Configurez les attributs du cookie, notamment la durée de vie maximale, le chemin d'accès et les indicateurs de sécurité.
- Envoyer le cookie au navigateur via les en-têtes de réponse HTTP en utilisant response.addCookie.
Comment créer un cookie JSP
Un nouveau cookie JSP est créé en instanciant javax.servlet.http.Cookie avec un nom et une valeur. Ce cookie est ensuite associé à l'objet de réponse afin que le navigateur puisse le stocker.
Comment lire les cookies JSP
À chaque requête suivante, le navigateur renvoie au serveur les cookies JSP correspondants. La page les lit en appelant la méthode `request.getCookies`, qui retourne un tableau d'objets `Cookie`. L'application parcourt ensuite ce tableau, recherche chaque cookie par son nom et utilise sa valeur.
Comment supprimer un cookie JSP
Pour supprimer un cookie JSP, le serveur crée un nouveau cookie portant le même nom, lui attribue une valeur vide, appelle la méthode `setMaxAge` avec la valeur zéro et l'ajoute à la réponse. Le navigateur supprime ensuite ce cookie lors de la prochaine réponse.
Exemple de cookies dans JSP
Dans cet exemple de cookies JSP, l'application crée deux cookies pour le nom d'utilisateur et l'adresse e-mail, les conserve pendant dix heures, puis relit les valeurs sur une deuxième page appelée action_cookie_main.jsp.
Action_cookie.jsp
<%-- Action_cookie.jsp: input form for JSP Cookies demo --%> <%@ 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 Cookie</title> </head> <body> <form action="action_cookie_main.jsp" method="GET"> Username: <input type="text" name="username"> <br /> Email: <input type="text" name="email" /> <input type="submit" value="Submit" /> </form> </body> </html>
Action_cookie_main.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"> <% Cookie username = new Cookie("username", request.getParameter("username")); Cookie email = new Cookie("email", request.getParameter("email")); username.setMaxAge(60*60*10); email.setMaxAge(60*60*10); // Add both the JSP Cookies in the response header. response.addCookie( username ); response.addCookie( email ); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie JSP</title> </head> <body> <b>Username:</b> <%= request.getParameter("username")%> <b>Email:</b> <%= request.getParameter("email")%> </body> </html>
Explication de la Code
Action_cookie.jsp
Code Lignes 10 à 15 : La page contient un formulaire qui est soumis à action_cookie_main.jsp. Deux champs de saisie, nom d'utilisateur et adresse e-mail, permettent de recueillir des données auprès de l'utilisateur, ainsi qu'un bouton de soumission.
Action_cookie_main.jsp
Code Lignes 6 à 9 : Deux objets Cookie, username et email, sont créés à l'aide de request.getParameter pour lire les valeurs soumises par le formulaire.
Code Lignes 12 à 13 : La méthode setMaxAge est appelée avec 60 multiplié par 60 multiplié par 10, ce qui fixe la durée de vie de chaque cookie JSP à dix heures.
Code Lignes 16 à 17 : Les deux cookies sont ajoutés à la réponse via `response.addCookie`. Le navigateur les renvoie ensuite lors des requêtes suivantes, et le serveur les lit à l'aide de `request.getCookies` ou `request.getParameter` pour la requête en cours.
Sortie
Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivant.
Lors de l'exécution de la page action_cookie.jsp, le navigateur affiche deux champs : nom d'utilisateur et adresse e-mail. Une fois ces champs remplis et après avoir cliqué sur « Envoyer », la page action_cookie_main.jsp crée les cookies JSP correspondants sur le serveur, les enregistre côté client et affiche leurs valeurs, confirmant ainsi leur création.
Meilleures pratiques pour les cookies JSP
Les applications web modernes doivent traiter les cookies JSP comme des données sensibles. Les pratiques suivantes sont conformes aux déploiements actuels de Servlet 4.x et Servlet 5.x.
- Utilisez HttpOnly : Marquez les cookies d'authentification comme HttpOnly afin que les scripts côté client ne puissent pas les lire.
- Utilisez le mode sécurisé : N'autorisez l'envoi des cookies que via HTTPS en appelant setSecure(true).
- Utilisez SameSite : Configurez l'attribut SameSite (Lax ou Strict) via le conteneur ou les en-têtes de réponse pour atténuer la falsification de requêtes intersites.
- Limitez les valeurs à de petites valeurs : Stockez un identifiant dans le cookie et conservez les données dans le stockage côté serveur.
- Définir une date d'expiration explicite : Utilisez setMaxAge pour un comportement prévisible sur tous les navigateurs.



