1. Cookies setzen
Kopieren Sie den Codecode wie folgt:
Cookie cookie = neues Cookie("key", "value");
cookie.setMaxAge(60);
Legen Sie eine Lebensdauer von 60 Sekunden fest. Wenn Sie einen negativen Wert festlegen, handelt es sich um ein Browser-Prozess-Cookie (im Speicher gespeichert), das ungültig wird, wenn der Browser geschlossen wird.
Kopieren Sie den Codecode wie folgt:
cookie.setPath("/test/test2");
Legen Sie den Cookie-Pfad fest. Wenn er nicht festgelegt ist, ist er der aktuelle Pfad (für Servlet ist er request.getContextPath() + der URL-Musterpfad-Teil des in web.xml konfigurierten Servlets).
Kopieren Sie den Codecode wie folgt:
Antwort.addCookie(cookie);
2. Lesen Sie Cookies
Diese Methode kann alle Cookie-Objekte des aktuellen Pfads und des „direkten übergeordneten Pfads“ lesen. Wenn keine Cookies vorhanden sind, wird null zurückgegeben.
Kopieren Sie den Codecode wie folgt:
Cookie[] Cookies = request.getCookies();
3. Cookies löschen
Kopieren Sie den Codecode wie folgt:
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
Auf 0 setzen, um das Cookie sofort zu löschen
Kopieren Sie den Codecode wie folgt:
cookie.setPath("/test/test2");
Cookies auf dem angegebenen Pfad löschen. Wenn der Pfad nicht festgelegt ist, werden Cookies standardmäßig auf dem aktuellen Pfad gelöscht.
Kopieren Sie den Codecode wie folgt:
Antwort.addCookie(cookie);
4. Hinweis: Gehen Sie davon aus, dass die Pfadstruktur wie folgt ist
Kopieren Sie den Codecode wie folgt:
test/test2/test345/test555/test666
a. Cookies mit demselben Schlüsselnamen (die Werte können gleich oder unterschiedlich sein) können in verschiedenen Pfaden vorhanden sein.
b. Wenn beim Löschen kein Cookie mit dem Schlüssel „key“ unter dem aktuellen Pfad vorhanden ist, werden alle übergeordneten Pfade abgefragt und der Löschvorgang wird nach dem Abrufen ausgeführt (nur ein übergeordneter Pfad, der sich selbst am nächsten liegt, kann gelöscht werden). eine Zeit)
FF. Sie müssen denselben Pfad angeben, der zum Setzen des Cookies verwendet wurde, um das Cookie zu löschen, und der Pfad muss für den Cookie-Schlüsselnamen angegeben werden, unabhängig von Groß- und Kleinschreibung oder gemischten Größen.
IE. Wenn der Schlüsselname in Kleinbuchstaben geschrieben ist und der aktuelle Pfad /test/test2 lautet, wenn er nicht gefunden werden kann, fragen Sie /test, /test555, /test345 ab, und wenn er immer noch nicht gefunden wird, fragen Sie / ab. (/test555/test666 wird nicht abgefragt)
Wenn der Schlüsselname in gemischter Groß- oder Kleinschreibung vorliegt und der Pfad nicht angegeben wird, wird der aktuelle Pfad standardmäßig gelöscht und es wird keine Aufwärtsabfrage durchgeführt.
c. Beim Lesen von Cookies kann nur das Cookie des direkten übergeordneten Pfads gelesen werden.
Wenn der aktuelle Pfad /test/test2 ist, ist der zu lesende Schlüssel „key“. Nachdem der aktuelle Pfad gelesen wurde, muss auch /test gelesen werden, und nachdem /test gelesen wurde, muss auch / gelesen werden.
d. Bei der Arbeit an Java-Webprojekten hat jeder Kontext einen anderen Pfad, da allgemeine Webserver (wie Tomcat oder Jetty) Kontext zum Verwalten verschiedener Webanwendungen verwenden.
Seien Sie besonders vorsichtig, wenn auf einem Server mehrere Webanwendungen vorhanden sind. Setzen Sie kein Cookie mit dem Pfad /, da dies zu Fehlfunktionen führen kann. (Die Voraussetzung ist natürlich, dass die Domainnamen gleich sind)