Obtenir la valeur de cookie en Java

J’ai initialisé cooke comme ceci dans mon JSP,

Ssortingng timeStamp = new SimpleDateFormat("dd:MM:yyyy_HH:mm:ss:SSS").format(Calendar.getInstance().getTime()); timeStamp = timeStamp + ":" + System.nanoTime(); Ssortingng loc = "/u/poolla/workspace/FirstServlet/WebContent/WEB-INF/"+timeStamp; Cookie thecookie = new Cookie("thecookie", loc); thecookie.setMaxAge(60*60*24); response.addCookie(thecookie); 

Ainsi, tous les cookies créés auront le même nom, mais une valeur différente pour un temps d’access différent.

Question 1 – résolu,

dans my.java j’ai utilisé

 Ssortingng fpath = request.getParameter("thecookie").toSsortingng(); 

pour obtenir loc dans la page my.java, mais ceci affiché null quelle est mon erreur?

Réponse: J’ai trouvé ici la bonne façon d’accéder aux cookies.

Question 2,

à la fin de java servlet je veux désactiver / tuer le cookie qui a été transmis au début de java servlet et dire s’ils sont 5 utilisateurs utilisant le système en parallèle, comment saurai-je quel cookie désactiver pour quel utilisateur du dernier de my.java?

par exemple, considérons

 User 1 : cookie name `thecookie` value `AAA` User 2 : cookie name `thecookie` value `BBB` User 3 : cookie name `thecookie` value `CCC` User 4 : cookie name `thecookie` value `DDD` User 5 : cookie name `thecookie` value `EEE` 

Maintenant, à la fin du servlet my.java, je souhaite désactiver le cookie avec la valeur CCC qui a été atsortingbué au début de my.java sans perturber les autres valeurs de cookie. Comment procéder?

Vous utilisez la mauvaise méthode pour lire les cookies.

 Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("cookieName")) { //do something //value can be resortingeved using #cookie.getValue() } } } 

utilisez ceci. Pas besoin de détecter le cookie pour un utilisateur particulier, il suffit de le désactiver.

 Cookie[] cookies = request.getCookies(); int i = 0; for (Cookie cookie : cookies ) { Sytem.out.println(cookies[i].getName()); Sytem.out.println(cookies[i].getValue()); i++; } 

Méthode générique prête à l’emploi:

 public static Cookie getCookie(HttpServletRequest request, Ssortingng name) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(name)) { return cookie; } } } return null; }