Je rencontre un problème en utilisant la classe Cookie de l'API Servlet 2.5 sur Tomcat. Je tire la liste des cookies de l'objet HttpServletRequest et itérer sur eux comme si:Java Servlet API 2.5 Cookie.getDomain() renvoie toujours la valeur null
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies) {
System.out.println("Name=" + cookie.getName() + " Domain=" + cookie.getDomain());
}
Cependant, pour tous les cookies unique dans la demande, le domaine est nulle. Pourquoi est-ce? La raison pour laquelle je demande est parce que j'ai un cookie avec le même nom dans deux domaines différents et je veux être en mesure de les différencier en fonction du domaine. Pour aider à clarifier la situation, mes cookies nommés de manière identique sont en train d'être placés dans .anydomain.net et .domain.anydomain.net. Les deux sont envoyés dans la requête mais les domaines sont NULL quand ils arrivent au servlet. Est-il attendu que le servlet ne puisse pas voir le domaine des cookies qui lui sont envoyés? Editer: Je mets les cookies avec le domaine, l'expiration et le chemin dans une demande précédente à la servlet
La requête suivante arrivant dans le navigateur avec ces cookies montre le domaine comme nul. J'ai vérifié que les cookies sont réglés dans les bons domaines dans le navigateur.
Edit 2: J'utilise Tomcat 6
Vous pouvez définir des points d'arrêt sur les méthodes setName() et setDomain() pour vérifier si le conteneur de servlet analyse correctement l'en-tête de cookie. Est-ce que votre cookie a des deux-points (:) dedans? Certaines versions récentes de Tomcat n'acceptent pas la plupart des cookies avec deux points. – akarnokd