Java-Servlet : Cookies nicht gelöscht
Ich habe ein Problem mit dem löschen von cookies von meinem servlet-code. Angesichts der Balg ist mein code.
private void clearCookies(HttpServletRequest req, HttpServletResponse resp) {
Cookie[] cookies = req.getCookies();
for (Cookie curCookie : cookies) {
curCookie.setValue(null);
curCookie.setMaxAge(0);
curCookie.setPath("/");
resp.addCookie(curCookie);
}
}
Ich tun bzw.sendRedirect(url), nachdem der Aufruf dieser Methode. Allerdings werden nicht alle cookies gelöscht werden, zum Beispiel das cookie nie gelöscht.
Name: reqURI
Content: ../../webapp/index.jsp
Domain: mgt.appserver.com
Path: /
Send for: Any kind of connection
Accessible to script: Yes
Created: Tuesday, November 26, 2013 4:35:19 PM
Expires: When the browsing session ends
Wer weiß, was fehlt mir hier? Ich habe gelesen das Java Cookie-Objekt-Dokumentation und entsprechend den Wert 0 sollte das cookie entfernt werden. Aber es ist nicht. Und ich habe versucht, viele weitere Vorschläge und keiner hat funktioniert. Ich habe versucht mit Google Chrome und Firefox, so können nicht glauben, dass es ein Problem mit den Browsern. Ich habe keine Ahnung warum solch eine generische Sache ist nicht ordnungsgemäß dokumentiert und complected in einer Sprache wie Java.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Als pro Problem entfernen von Cookies im servlet
Den Pfad und die domain wird immer null sein, beim abrufen von cookies, Java, denn Sie sind nur notwendig, in der Antwort für den client-browser. Allerdings, wenn Sie in der gleichen Sicherheitsdomäne (unabhängig vom Weg), Sie haben noch die Rechte, um Sie zu löschen. Leider, weil der Pfad nicht enthalten ist, können Sie nicht löschen Sie die cookie ohne jetzt explizit zu wissen, dass Pfad. Einfach mit der gleichen cookie-Namen, aber einen anderen Weg wird nicht funktionieren. Diese sind als zwei verschiedene cookies, und Sie werden feststellen, dass anstelle von löschen des Cookies, die Sie gerade erstellt, ein anderer auf einem anderen Weg.
So sollten Sie nicht ändern Sie den Wert oder Pfad wie diesem wird ein neuer cookie erstellt
Wo sind Sie umleiten? Die Antwort muss begangen werden zurück an den host, der den cookie erzeugt in den ersten Platz, damit er entfernt werden. Auch, Sie brauchen nicht, um den Wert auf null.