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.


