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.

  • (I.e. Définition: Les cookies JSP sont des fichiers texte contenant une clé et une valeur, stockés sur l'appareil du client et lus dans l'objet requête lors de chaque appel HTTP ultérieur.
  • (I.e. Indicateurs de sécurité : Les attributs Secure, HttpOnly et SameSite, désormais modernes, protègent les cookies JSP contre l'interception, l'accès par script et la falsification de requêtes intersites.
  • ️ Contrôle à vie : La méthode setMaxAge détermine si un cookie JSP est conservé sur le disque ou supprimé automatiquement à la fin de la session du navigateur.
  • ✅ API standard : La classe javax.servlet.http.Cookie avec response.addCookie et request.getCookies couvre la création, la transmission, la récupération et la suppression dans Servlet 4.x et 5.x.
  • 🧪 Exemple concret : Une démonstration de deux pages, portant sur un nom d'utilisateur et une adresse e-mail, montre comment les cookies JSP sont créés, envoyés, conservés pendant dix heures et relus lors de la requête suivante.

Cookies dans JSP avec exemple

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

  1. 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.
  2. 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.

  1. Créez l'objet Cookie JSP à l'aide du constructeur Cookie.
  2. Configurez les attributs du cookie, notamment la durée de vie maximale, le chemin d'accès et les indicateurs de sécurité.
  3. 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.

Méthodes de cookies JSP

Méthodes de cookies JSP

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.

FAQ

Les cookies JSP sont de petits fichiers texte qui stockent des données sur le navigateur du client. Les pages JSP les utilisent pour la gestion des sessions. tracking, mémorisation des préférences de l'utilisateur, prise en charge de l'état de connexion et gestion des analyses sur plusieurs requêtes HTTP adressées à la même application web.

Marquez les cookies comme HttpOnly afin que les scripts ne puissent pas les lire, appelez setSecure(true) pour qu'ils ne transitent que par HTTPS et configurez l'attribut SameSite comme Lax ou Strict pour réduire le risque de falsification de requêtes intersites dans les navigateurs modernes.

Créez un nouveau cookie portant le même nom et le même chemin, initialisez-le à une chaîne vide, appelez `setMaxAge(0)` et ajoutez-le à la réponse avec `response.addCookie`. Le navigateur supprime alors immédiatement le cookie correspondant déjà enregistré.

Un cookie JSP persistant a une durée de vie maximale positive et est stocké sur le disque jusqu'à son expiration. Un cookie de session a une durée de vie maximale négative, est conservé uniquement dans la mémoire du navigateur et est supprimé à la fermeture de la fenêtre de ce dernier.

L'analyse pilotée par l'IA permet d'évaluer le trafic des cookies en temps réel, de signaler les identifiants de session volés, de détecter les changements de géolocalisation inhabituels et de déclencher une authentification renforcée. Les modèles d'apprentissage automatique contribuent également à optimiser les politiques SameSite, HttpOnly et Secure en fonction des schémas d'attaque observés.

Oui. Les assistants IA peuvent analyser le code JSP et Servlet existant, réécrire les appels javax.servlet.http.Cookie en jakarta.servlet.http.Cookie dans Servlet 5.x, ajouter les indicateurs SameSite et HttpOnly et suggérer un stockage plus sûr des identifiants de session sans perturber la logique applicative existante.

Résumez cet article avec :