web-dev-qa-db-fra.com

Obtenir un cookie dans le servlet

J'essaie d'obtenir un cookie dans servlet en utilisant

Cookie[] cookie = request.getCookies();

mais cookie est toujours null.

Je les ai donc définies à partir d'un autre servlet et elles apparaissent dans les préférences du navigateur.

Cookie cookie = new Cookie("color", "cyan");
cookie.setMaxAge(24*60*60);
cookie.setPath("/");
response.addCookie(cookie);

Je ne comprends pas ce qui ne va pas?

10
Anatoly

Selon docsgetCookies() Renvoie un tableau contenant tous les objets Cookie que le client a envoyés avec cette demande. Cette méthode renvoie la valeur null si aucun cookie n'a été envoyé.

Avez-vous ajouté le cookie correctement? Si oui, vous devriez pouvoir parcourir la liste des cookies renvoyés avec 

Cookie[] cookies = request.getCookies();

for (int i = 0; i < cookies.length; i++) {
  String name = cookies[i].getName();
  String value = cookies[i].getValue();
}

Sinon...

Les cookies sont ajoutés avec la méthode addCookie(Cookie) dans l'objet de réponse!

14
gotomanners

SET COOKIE

  Cookie cookie = new Cookie("cookiename", "cookievalue");
  response.addCookie(cookie);

OBTENIR UN COOKIE

  Cookie[] cookies = request.getCookies();
  if(cookies != null) {
      for (int i = 0; i < cookies.length; i++) {
          cookie=cookies[i]
          String cookieName = cookie.getName();
          String cookieValue = cookie.getValue();
       }
   }
13
dhan rajr

Etes-vous sûr que le client supporte les cookies? car s'il est configuré pour NE PAS accepter les cookies, vous ne les retrouverez jamais à la demande suivante ...

1
user2224506

J'ai eu le même problème et découvert que la cause dans mon cas était que j'utilisais le navigateur intégré à Eclipse. Cela n'accepte pas les cookies. Lorsque j'ai accédé au même JSP à partir de Chrome, cela a fonctionné. Peut-être que vous faites la même chose que j'ai faite? 

Il se peut également que le navigateur que vous utilisez ou vos paramètres Internet soient configurés pour refuser les cookies. J'espère que cela vous aidera, vous ou tout autre visiteur confronté au même problème.

0
IqbalHamid