1 Was ist ein Keks?
Der Browser und der Webserver kommunizieren mit dem HTTP -Protokoll. Wenn ein Benutzer eine Seitenanforderung ausfragt, antwortet der Webserver einfach und schließt dann die Verbindung mit dem Benutzer ab. Wenn eine Anfrage an einen Webserver gesendet wird, unabhängig davon, ob es sich um den ersten Besuch handelt, behandelt der Server sie als erstes als das erste Mal. Dies ist eine schlechte Sache, die sich vorstellen kann. Um diesen Fehler auszugleichen, hat Netscape ein Cookie entwickelt, ein effektives Werkzeug, um die Identifizierungsinformationen eines bestimmten Benutzers zu speichern, und nannten ihn "süße Cookies". Cookies ist ein Mittel, mit dem Webserver Informationen auf der Festplatte der Besucher über einen Browser speichern: Netscape Navigator verwendet eine lokale Datei namens Cookies.txt, um Cookie -Informationen zu speichern, die von allen Websites empfangen werden. Während der IE -Browser Cookie -Informationen in einem Verzeichnis speichert, das C:/Windows/Cookies ähnelt. Wenn der Benutzer erneut eine Site besucht, bittet der Server den Browser, die zuvor gesendeten Cookie -Informationen zu finden und zurückzugeben, um den Benutzer zu identifizieren.
2 vier Attribute von Keksen
Max-Alter gibt die Lebensdauer des CCookie (in Sekunden) an! Standardmäßig existiert der Wert des Cookies nur während der Sitzung des Browsers, und diese Werte verschwinden, wenn der Benutzer den Browser verlässt!
Path gibt die mit dem Cookie zugeordnete Webseite an. Standardmäßig ist das Cookie der Webseite zugeordnet, auf der sie erstellt wird, sowie die Webseite im selben Verzeichnis wie die Webseite und die Unterverzeichnisse im Verzeichnis.
Domäneneinstellung die Zugriffsdomäne Beispiel: Der Server auf order.example.com muss das von catalog.example.com festgelegte Cookie lesen. Hier müssen Sie das Domain -Attribut vorstellen. Unter der Annahme, dass das Cookie, das von der Seite unter catalog.example.com erstellt wurde, sein Pfadattribut auf "/" und das Domain -Attribut auf ".example.com" festlegt, dann alle Webseiten unter "Catalog.example.com" und alle Webseiten, die sich unter "Orders.Example.com" und alle Webseiten befinden. Wenn der Domänenwert des Cookies nicht festgelegt ist, ist der Standardwert dieses Attributs der Hostname des Servers, auf dem die Webseite erstellt wird. Hinweis: Die Domäne eines Keks kann nicht auf eine Domäne außerhalb der Domäne eingestellt werden, in der sich der Server befindet.
Seure gibt an, wie der Wert eines Keks im Netzwerk übertragen wird
3 Java -Keksbetrieb
Erstellen Sie einen Keks
// Neues Cookie-Objekt, Schlüsselwertpaar ist das Parameter Cookie Cookie = New Cookie ("Key", "Cookie Value"); Wenn der Wert des Keks Chinese enthält, muss der Keks codiert werden, ansonsten wird ein verstümmelter Code stattfinden. Verwenden Sie urlencoder.encode ("Cookie Value", "UTF-8"); // Setzen Sie die maximale Überlebenszeit des Cookies in Sekunden, wenn die negative Zahl der Browserprozess ist, schließen Sie den Browser-Cookie Cookie.setMaxage (*24*60*60). // eines Tages // das Cookie zur Antwort hinzufügen, um die Reaktion von Effekten zu machen.Addcookie (Cookie); // Nach dem Addcookie, wenn der Cookie mit demselben Namen bereits existiert, überschreibt der neueste den alten KeksHinweis: In Streben können Sie servletActionContext.getResponse () verwenden, um das Respon -Objekt zu erhalten
Cookies lesen
Das Lesen von Cookies kann nur alle Cookies aus der Anfrage erhalten und dann in einer Schleife iterieren.
In Struts können Sie ServletActionContext.getRequest () verwenden, um das Anforderungsobjekt zu erhalten
// Holen Sie sich das Cookie aus der Anfrage, und Sie erhalten eine Reihe von Cookies Cookie [] Cookies = Request.getCookies (); // dann iterate if (Cookies! = Null && cookies.length> 0) {// Wenn Sie kein Cookie festgelegt haben, wird Null für (Cookie Cookie: Cookies) {...}} zurückgegeben Kekse löschen
Wenn Sie einen Cookie löschen, müssen Sie nur die Lebensdauer des Keks auf 0 einstellen.
Cookie [] Cookies = Request.GetCookies (); if (cookies! // Finden Sie das Cookie, das gelöscht werden muss, wenn (name.comPareto ("target-key") == 0) {// Die Lebensdauer auf 0 cookie.setMaxage (0) festlegen; // Zurück auf die Antwort. Addcookie (Cookie); }}}Die SetPath -Methode von 4 Cookies wird verwendet:
Normale Cookies können nur in einer App geteilt werden, d. H. Ein Cookie kann nur von der App erhalten werden, die sie erstellt hat.
1. Die Methode kann innerhalb desselben Anwendungsservers gemeinsam genutzt werden: set Cookie.setPath ("/");
Es gibt zwei Anwendungen unter dem nativen Tomcat/WebApp: webapp_a und webapp_b.
1) Es stellt sich heraus, dass das Cookie unter webapp_a nicht unter webapp_b erhalten werden kann. Der Pfad ist der Pfad der Anwendung, der standardmäßig das Cookie generiert.
2) Wenn Sie ein Cookie unter webapp_a festlegen, fügen Sie einen Cookie.setPath ("/") hinzu; oder Cookie.setPath ("/webapp_b/");
Sie können das Cookie von CAS unter webapp_b einstellen lassen.
3) Die Parameter hier sind relativ zum Stammverzeichnis des vom Anwendungsserver gespeicherten Anwendungsordners (z. B. der WebApp unter Tomcat), also Cookie.setPath ("/"); Danach kann Cookie in allen Anwendungen im WebApp -Ordner und in Cookie.setPath ("/webapp_b/") geteilt werden.
Dies bedeutet, dass das von der CAS -Anwendung festgelegte Cookie nur unter der webapp_b -Anwendung erhalten werden kann, und sogar die webapp_a -Anwendung, die dieses Cookie generiert, kann nicht verwendet werden.
4) Beim Einstellen von Cookie.setPath ("/webapp_b/jsp") oder cookie.setPath ("/webapp_b/jsp/") kann Cookie nur unter webapp_b/jsp erhalten werden, Cookies können jedoch nicht außerhalb des JSP -Ordners erhalten werden.
5) cookie.setPath ("/webapp_b") festlegen; bedeutet, dass Cookies nur unter webapp_b verwendet werden können, so dass Cookies nicht unter webapp_a erhalten werden können, die Cookies generiert.
6) wenn es mehrere Cookies gibt.setPath ("xxx"); Aussagen, der letzte hat vorherrschen.
5 Cookie.SetDomain Method Design Cross-Domänen-Teilen
Die Domain, in der Maschine A befindet
Die Domain, in der sich die B -Maschine befindet: jszx.com, B hat Anwendungs webapp_b
1) Wenn Sie Cookies unter webapp_a einstellen, fügen Sie Cookie.setDomain (". Jszx.com") hinzu; Damit Sie Cookies unter webapp_b erhalten können.
2) Beim Eingeben von URL müssen Sie auf WebApp_B zugreifen, müssen Sie den Domänennamen eingeben, um dies zu beheben. Wenn Sie beispielsweise eingeben: http://lc-bsp.jszx.com:8080/webapp_b in Maschine A, können Sie das Cookie von webapp_a auf dem Client einstellen lassen, während Sie beim Eingeben: http: // localhost: 8080/webapp_b nicht erhalten.
3) Cookie.setDomain (". Jszx.com"); kann auch unter der Standardhome.langchao.com geteilt werden
Das obige Klischee spricht über die Verwendung von Cookies in Java, ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.