mika-el
3/28/2018 - 1:14 PM

Cookie

Récuperation de tout les cookies et bloucle

Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies) {
    // Utilisation de getName() pour avoir le nom du cookie.
    if(cookie != null && nom.equals(cookie.getName())) {
        // Utilisation de getValue() pour avoir la valeur du cookie.
        return cookie.getValue();
    }
}

Création d'un cookie

maxAge = 60 * 60 * 24 * 365;
Cookie cookie = new Cookie("nom", valeur);
cookie.setMaxAge(maxAge);
response.addCookie( cookie );

Suppression d'un cookie

Cookie cookie = new Cookie("nom", "");
cookie.setMaxAge(0);
response.addCookie(cookie);

A props des Cookie avec Java EE

  • Un cookie doit obligatoirement avoir un nom et une valeur.
  • Il est possible d'attribuer des options à un cookie, telles qu'une date d'expiration ou un numéro de version. Toutefois, elle nous précise ici que certains navigateurs présentent des bugs dans leur gestion de ces options, et qu'il est préférable d'en limiter l'usage autant que faire se peut afin de rendre notre application aussi multiplateforme que possible.
  • La méthode addCookie() de l'objet HttpServletResponse est utilisée pour ajouter un cookie à la réponse qui sera envoyée au client.
  • La méthode getCookies() de l'objet HttpServletRequest est utilisée pour récupérer la liste des cookies envoyés par le client.
  • Par défaut, les objets ainsi créés respectent la toute première norme décrivant les cookies HTTP afin d'assurer la meilleure interopérabilité possible.
  • Cookies et sessions sont deux concepts totalement distincts ! Même s'il est vrai que l'établissement d'une session en Java EE peut s'appuyer sur un cookie, il ne faut pas confondre les deux notions : la session est un espace mémoire alloué sur le serveur dans lequel vous pouvez placer n'importe quel type d'objets, alors que le cookie est un espace mémoire alloué dans le navigateur du client dans lequel vous ne pouvez placer que du texte.