Cookies in JSP met voorbeeld
⚡ Slimme samenvatting
JSP-cookies zijn kleine tekstbestanden die in de browser van de gebruiker worden opgeslagen en die JSP-applicaties helpen. track sessies, gebruikersvoorkeuren onthouden en reacties personaliseren over meerdere HTTP-verzoeken met behulp van de javax.servlet.http.Cookie API en standaard responsheaders.

Wat zijn JSP-cookies?
JSP-cookies zijn kleine tekstbestanden die een op JSP gebaseerde webserver aan de clientbrowser vraagt om op het apparaat van de gebruiker op te slaan. Omdat HTTP een stateless protocol is, bieden JSP-cookies een eenvoudige, op standaarden gebaseerde manier om informatie tussen verzoeken te onthouden, zoals de inlogstatus, taalvoorkeur, thema of winkel.ping winkelwagen-identificaties.
- JSP-cookies zijn platte tekstbestanden die door de browser op de computer van de gebruiker worden opgeslagen.
- Ze zijn gewend om track-informatie voor sessiebeheer, personalisatie en analyses.
- JSP ondersteunt HTTP-cookies via de onderliggende Servlet-technologie en de klasse javax.servlet.http.Cookie.
- JSP-cookies zijn transmitted in de HTTP-verzoek- en antwoordheaders van elk overeenkomend verzoek.
- Wanneer de browser is geconfigureerd om cookies te accepteren, worden deze op de schijf opgeslagen tot de vervaldatum die is ingesteld met setMaxAge.
Waarom JSP-cookies gebruiken?
JSP-ontwikkelaars vertrouwen op cookies omdat HTTP-verzoeken onafhankelijk van elkaar zijn. Zonder JSP-cookies zou de server niet weten dat twee verzoeken van dezelfde bezoeker afkomstig zijn. Cookies in JSP lossen dit probleem op met minimale server-side state.
- Sessie trackoning: Een JSESSIONID-cookie koppelt meerdere paginaweergaven aan één logische sessie.
- Personalisatie: JSP-cookies kunnen taal-, thema- of lay-outvoorkeuren opslaan.
- Authenticatiehulpmiddelen: Onthoud mij-tokens en de inlogstatus worden vaak opgeslagen in cookies met de vlaggen HttpOnly en Secure ingeschakeld.
- Analytics: Cookies in JSP registreren terugkerende bezoekers, verwijzende websites en conversiepaden.
Soorten JSP-cookies
- Blijvende cookie: Een permanente JSP-cookie blijft op het apparaat opgeslagen gedurende de tijd die is ingesteld met setMaxAge. Hierdoor kan de applicatie voorkeuren en inloggegevens onthouden, ook na het opnieuw opstarten van de browser.
- Niet-permanente cookie: Een niet-permanente JSP-cookie, ook wel sessiecookie genoemd, blijft alleen in het geheugen van de browser bestaan en wordt verwijderd wanneer de gebruiker de browser sluit. Deze wordt meestal gebruikt voor kortdurende sessies. trackoning.
JSP-cookiemethoden
De klasse javax.servlet.http.Cookie biedt de volgende methoden, die het meest worden gebruikt bij het werken met JSP-cookies.
-
public void setDomain(String domain)
Deze JSP-methode voor het instellen van cookies bepaalt het domein waarop de JSP-cookie van toepassing is.
-
public String getDomain()
Deze JSP get cookie-methode retourneert het domein waarop de JSP-cookie van toepassing is.
-
public void setMaxAge(int expiry)
Hiermee wordt de maximale tijd in seconden ingesteld voordat de JSP-cookie verloopt. Een waarde van nul verwijdert de cookie en een negatieve waarde maakt er een sessiecookie van.
-
public int getMaxAge()
Het geeft de maximale leeftijd van de JSP-cookie in seconden weer.
-
public String getName()
Het retourneert de naam van de JSP-cookie.
-
public void setValue(String value)
Stelt de waarde in die is gekoppeld aan de JSP-cookie.
-
public String getValue()
Retourneert de waarde die is gekoppeld aan de JSP-cookie.
-
public void setPath(String path)
Deze methode voor het instellen van cookies in JSP stelt de URL pad waarop de cookie van toepassing is.
-
public String getPath()
Het geeft de terug URL pad waarop de JSP-cookie van toepassing is.
-
public void setSecure(boolean flag)
Het markeert de JSP-cookie zodat deze alleen via versleutelde HTTPS-verbindingen wordt verzonden.
-
public void setComment(String cmt)
Het beschrijft het doel van de JSP-cookie.
-
public String getComment()
Het retourneert de opmerking die de JSP-cookie beschrijft.
Hoe om te gaan met JSP-cookies
Het werken met JSP-cookies omvat drie herhaalbare stappen. Hetzelfde patroon wordt gebruikt voor de inlogstatus, themawisselingen en de webshop.ping karren.
- Maak het JSP Cookie-object aan met behulp van de Cookie-constructor.
- Configureer de cookie-eigenschappen, met name de maximale geldigheidsduur, het pad en de beveiligingsvlaggen.
- Verzend de cookie naar de browser via HTTP-antwoordheaders met behulp van response.addCookie.
Hoe maak je een JSP-cookie aan?
Een nieuwe JSP-cookie wordt aangemaakt door een instantie van javax.servlet.http.Cookie te maken met een naam en een waarde. De cookie wordt vervolgens aan het response-object toegevoegd, zodat de browser deze kan opslaan.
Hoe lees je JSP-cookies?
Bij elk volgend verzoek stuurt de browser overeenkomende JSP-cookies terug naar de server. De pagina leest deze cookies door de functie `request.getCookies` aan te roepen, die een array met cookie-objecten retourneert. De applicatie doorloopt vervolgens de array, zoekt elke cookie op naam op en gebruikt de bijbehorende waarde.
Hoe verwijder ik een JSP-cookie?
Om een JSP-cookie te verwijderen, maakt de server een nieuwe cookie met dezelfde naam aan, stelt de waarde ervan in op een lege tekenreeks, roept setMaxAge aan met nul en voegt deze toe aan het antwoord. De browser verwijdert vervolgens de opgeslagen cookie bij het volgende antwoord.
Voorbeeld van cookies in JSP
In dit JSP-cookievoorbeeld maakt de applicatie twee cookies aan voor gebruikersnaam en e-mailadres, bewaart deze tien uur lang en leest vervolgens de waarden uit op een tweede pagina genaamd action_cookie_main.jsp.
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>
Uitleg van de Code
Action_cookie.jsp
Code Regel 10 tot en met 15: De pagina declareert een formulier dat wordt verzonden naar action_cookie_main.jsp. Twee invoervelden, gebruikersnaam en e-mailadres, verzamelen gegevens van de gebruiker, samen met een verzendknop.
Action_cookie_main.jsp
Code Regel 6 tot en met 9: Met behulp van `request.getParameter` worden twee cookie-objecten aangemaakt, `username` en `email`, om de waarden uit het formulier te lezen.
Code Regel 12 tot en met 13: De methode setMaxAge wordt aangeroepen met 60 vermenigvuldigd met 60 vermenigvuldigd met 10, waardoor de levensduur van elke JSP-cookie op tien uur wordt ingesteld.
Code Regel 16 tot en met 17: De twee cookies worden aan het antwoord toegevoegd met response.addCookie. De browser stuurt ze vervolgens mee met volgende verzoeken, en de server leest ze uit met request.getCookies of request.getParameter voor het huidige verzoek.
uitgang
Wanneer je de bovenstaande code uitvoert, krijg je de volgende uitvoer.
Wanneer action_cookie.jsp wordt uitgevoerd, toont de browser de twee velden, gebruikersnaam en e-mailadres. Nadat de gebruiker deze heeft ingevuld en op 'Verzenden' klikt, maakt action_cookie_main.jsp de bijbehorende JSP-cookies aan op de server, slaat deze op aan de clientzijde en toont de waarden, waarmee wordt bevestigd dat de cookies succesvol zijn aangemaakt.
Aanbevolen werkwijzen voor JSP-cookies
Moderne webapplicaties zouden JSP-cookies als beveiligingsgevoelige gegevens moeten behandelen. De volgende werkwijzen sluiten aan bij de huidige implementaties van Servlet 4.x en Servlet 5.x.
- Gebruik HttpOnly: Markeer authenticatiecookies als HttpOnly zodat client-side scripts ze niet kunnen lezen.
- Gebruik Secure: Verzend cookies alleen via HTTPS door setSecure(true) aan te roepen.
- Gebruik SameSite: Configureer het SameSite-attribuut (Lax of Strict) via de container of de responseheaders om cross-site request forgery te voorkomen.
- Houd de waarden klein: Sla een identificatiecode op in de cookie en bewaar de gegevens in de serveropslag.
- Stel een expliciete vervaldatum in: Gebruik setMaxAge voor voorspelbaar gedrag in verschillende browsers.


