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?
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!
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();
}
}
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 ...
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.