Cookies in JSP mit Beispiel
⚡ Intelligente Zusammenfassung
JSP-Cookies sind kleine Textdateien, die im Client-Browser gespeichert werden und JSP-Anwendungen unterstützen. track-Sessions verwalten, Benutzerpräferenzen speichern und Antworten über mehrere HTTP-Anfragen hinweg mithilfe der javax.servlet.http.Cookie-API und Standard-Antwortheadern personalisieren.
Was sind JSP-Cookies?
JSP-Cookies sind kleine Textdateien, die ein JSP-basierter Webserver vom Client-Browser auffordert, auf dem Gerät des Nutzers zu speichern. Da HTTP ein zustandsloses Protokoll ist, bieten JSP-Cookies eine einfache, standardkonforme Möglichkeit, Informationen zwischen Anfragen zu speichern, wie z. B. den Anmeldestatus, die Sprachauswahl, das Design oder den Shop-Zugang.ping Warenkorb-IDs.
- JSP-Cookies sind einfache Textdateien, die vom Browser auf dem Client-Rechner gespeichert werden.
- Sie sind gewöhnt an track-Informationen für Sitzungsverwaltung, Personalisierung und Analysen.
- JSP unterstützt HTTP-Cookies über die zugrundeliegende Servlet-Technologie und die Klasse javax.servlet.http.Cookie.
- JSP-Cookies sind transmitwird in den HTTP-Anfrage- und Antwortheadern jeder übereinstimmenden Anfrage eingefügt.
- Wenn der Browser so konfiguriert ist, dass er Cookies akzeptiert, speichert er diese auf der Festplatte bis zum Ablaufdatum, das mit setMaxAge festgelegt wurde.
Warum JSP-Cookies verwenden?
JSP-Entwickler verwenden Cookies, da HTTP-Anfragen voneinander unabhängig sind. Ohne JSP-Cookies wüsste der Server nicht, dass zwei Anfragen vom selben Besucher stammen. Cookies in JSP lösen dieses Problem mit minimalem serverseitigen Zustand.
- Session tracKönig: Ein JSESSIONID-Cookie verbindet mehrere Seitenaufrufe zu einer logischen Sitzung.
- Personalisierung: JSP-Cookies können Sprach-, Design- oder Layoutpräferenzen speichern.
- Authentifizierungshilfsmittel: Remember-Me-Tokens und der Anmeldestatus werden oft in Cookies gespeichert, bei denen die Flags HttpOnly und Secure aktiviert sind.
- Analytik: Cookies in JSP erfassen wiederkehrende Besucher, Referrer und Conversion-Pfade.
Arten von JSP-Cookies
- Dauerhafte Cookies: Ein dauerhafter JSP-Cookie bleibt für die mit `setMaxAge` festgelegte Zeit auf dem Gerät gespeichert. Er hilft der Anwendung, Einstellungen und Anmeldedaten auch nach einem Neustart des Browsers beizubehalten.
- Nicht persistenter Cookie: Ein nicht-persistenter JSP-Cookie, auch Session-Cookie genannt, existiert nur im Arbeitsspeicher des Browsers und wird beim Schließen des Browsers gelöscht. Er wird hauptsächlich für kurzlebige Sitzungen verwendet. tracKönig.
JSP-Cookie-Methoden
Die Klasse javax.servlet.http.Cookie stellt die folgenden Methoden bereit, die am häufigsten bei der Arbeit mit JSP-Cookies verwendet werden.
-
public void setDomain(String domain)
Diese JSP-Set-Cookie-Methode legt die Domain fest, für die das JSP-Cookie gilt.
-
public String getDomain()
Diese JSP-Get-Cookie-Methode gibt die Domain zurück, für die das JSP-Cookie gilt.
-
public void setMaxAge(int expiry)
Es legt die maximale Zeit in Sekunden fest, bevor der JSP-Cookie abläuft. Der Wert Null löscht den Cookie, ein negativer Wert macht ihn zu einem Session-Cookie.
-
public int getMaxAge()
Es gibt das maximale Alter des JSP-Cookies in Sekunden zurück.
-
public String getName()
Es gibt den Namen des JSP-Cookies zurück.
-
public void setValue(String value)
Legt den Wert fest, der dem JSP-Cookie zugeordnet ist.
-
public String getValue()
Gibt den Wert zurück, der dem JSP-Cookie zugeordnet ist.
-
public void setPath(String path)
Diese Methode zum Setzen eines Cookies in JSP setzt den Cookie. URL Pfad, auf den sich der Cookie bezieht.
-
public String getPath()
Es gibt die URL Pfad, auf den das JSP-Cookie angewendet wird.
-
public void setSecure(boolean flag)
Es kennzeichnet den JSP-Cookie so, dass er nur über verschlüsselte HTTPS-Verbindungen gesendet wird.
-
public void setComment(String cmt)
Es beschreibt den Zweck des JSP-Cookies.
-
public String getComment()
Es gibt den Kommentar zurück, der den JSP-Cookie beschreibt.
Wie man mit JSP-Cookies umgeht
Die Arbeit mit JSP-Cookies umfasst drei wiederholbare Schritte. Das gleiche Muster wird für den Anmeldestatus, Designwechsel und den Shop verwendet.ping Karren.
- Erstellen Sie das JSP-Cookie-Objekt mithilfe des Cookie-Konstruktors.
- Konfigurieren Sie die Cookie-Attribute, insbesondere die maximale Gültigkeitsdauer, den Pfad und die Sicherheitsflags.
- Senden Sie den Cookie über HTTP-Antwortheader mit Hilfe von response.addCookie an den Browser.
Wie man ein JSP-Cookie erstellt
Ein neues JSP-Cookie wird erstellt, indem javax.servlet.http.Cookie mit einem Namen und einem Wert instanziiert wird. Das Cookie wird dann dem Antwortobjekt hinzugefügt, sodass der Browser es speichert.
Wie man JSP-Cookies liest
Bei jeder nachfolgenden Anfrage sendet der Browser die entsprechenden JSP-Cookies an den Server zurück. Die Seite liest diese Cookies mit der Methode `request.getCookies`, die ein Array von Cookie-Objekten zurückgibt. Anschließend durchläuft die Anwendung das Array, sucht jedes Cookie anhand seines Namens und verwendet dessen Wert.
Wie man einen JSP-Cookie löscht
Um ein JSP-Cookie zu löschen, erstellt der Server ein neues Cookie mit demselben Namen, setzt dessen Wert auf eine leere Zeichenkette, ruft `setMaxAge` mit dem Wert Null auf und fügt es der Antwort hinzu. Der Browser entfernt dann das gespeicherte Cookie in der nächsten Antwort.
Beispiel für Cookies in JSP
In diesem JSP-Cookies-Beispiel erstellt die Anwendung zwei Cookies für Benutzername und E-Mail-Adresse, hält diese zehn Stunden lang aktiv und liest die Werte dann auf einer zweiten Seite namens action_cookie_main.jsp wieder aus.
Action_cookie.jsp
<%-- Action_cookie.jsp: input form for JSP Cookies demo --%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie</title> </head> <body> <form action="action_cookie_main.jsp" method="GET"> Username: <input type="text" name="username"> <br /> Email: <input type="text" name="email" /> <input type="submit" value="Submit" /> </form> </body> </html>
Action_cookie_main.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% Cookie username = new Cookie("username", request.getParameter("username")); Cookie email = new Cookie("email", request.getParameter("email")); username.setMaxAge(60*60*10); email.setMaxAge(60*60*10); // Add both the JSP Cookies in the response header. response.addCookie( username ); response.addCookie( email ); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie JSP</title> </head> <body> <b>Username:</b> <%= request.getParameter("username")%> <b>Email:</b> <%= request.getParameter("email")%> </body> </html>
Erklärung der Code
Action_cookie.jsp
Code Zeile 10 bis 15: Die Seite deklariert ein Formular, das an action_cookie_main.jsp übermittelt wird. Zwei Eingabefelder, Benutzername und E-Mail-Adresse, erfassen Daten vom Benutzer, und es gibt eine Schaltfläche zum Absenden.
Action_cookie_main.jsp
Code Zeile 6 bis 9: Es werden zwei Cookie-Objekte, username und email, mithilfe von request.getParameter erstellt, um die vom Formular übermittelten Werte auszulesen.
Code Zeile 12 bis 13: Die Methode setMaxAge wird mit 60 multipliziert mit 60 multipliziert mit 10 aufgerufen, wodurch die Lebensdauer jedes JSP-Cookies auf zehn Stunden festgelegt wird.
Code Zeile 16 bis 17: Die beiden Cookies werden mit response.addCookie an die Antwort angehängt. Der Browser sendet sie dann bei nachfolgenden Anfragen zurück, und der Server liest sie mit request.getCookies oder request.getParameter für die aktuelle Anfrage.
Ausgang
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.
Beim Ausführen von action_cookie.jsp zeigt der Browser die beiden Felder Benutzername und E-Mail-Adresse an. Nachdem der Benutzer diese ausgefüllt und auf „Absenden“ geklickt hat, erstellt action_cookie_main.jsp die entsprechenden JSP-Cookies auf dem Server, speichert sie auf dem Client und zeigt die Werte an, um die erfolgreiche Erstellung der Cookies zu bestätigen.
Best Practices für JSP-Cookies
Moderne Webanwendungen sollten JSP-Cookies als sicherheitsrelevante Daten behandeln. Die folgenden Vorgehensweisen entsprechen den aktuellen Servlet 4.x- und Servlet 5.x-Implementierungen.
- Verwenden Sie HttpOnly: Authentifizierungs-Cookies sollten als HttpOnly gekennzeichnet werden, damit clientseitige Skripte sie nicht lesen können.
- Sicher verwenden: Cookies werden nur über HTTPS gesendet, indem setSecure(true) aufgerufen wird.
- SameSite verwenden: Konfigurieren Sie das SameSite-Attribut (Lax oder Strict) über die Container- oder Antwortheader, um Cross-Site-Request-Forgery zu verhindern.
- Werte klein halten: Speichern Sie eine Kennung im Cookie und speichern Sie die Daten serverseitig.
- Explizites Ablaufdatum festlegen: Verwenden Sie setMaxAge, um ein vorhersehbares Verhalten in allen Browsern zu gewährleisten.



