Informasjonskapsler i JSP med eksempel
โก Smart oppsummering
JSP-informasjonskapsler er smรฅ tekstfiler som er lagret i klientens nettleser og som hjelper JSP-applikasjoner track-รธkter, huske brukerpreferanser og tilpasse svar pรฅ tvers av flere HTTP-forespรธrsler ved hjelp av javax.servlet.http.Cookie API og standard svaroverskrifter.

Hva er JSP-informasjonskapsler?
JSP-informasjonskapsler er smรฅ tekstfiler som en JSP-basert webserver ber klientnettleseren om รฅ lagre pรฅ brukerens enhet. Fordi HTTP er en tilstandslรธs protokoll, gir JSP-informasjonskapsler en enkel, standardbasert mรฅte รฅ huske informasjon mellom forespรธrsler, for eksempel pรฅloggingsstatus, sprรฅkvalg, tema eller nettbutikk.ping handlekurvidentifikatorer.
- JSP-informasjonskapsler er rene tekstfiler som lagres pรฅ klientmaskinen av nettleseren.
- De er vant til track-informasjon for รธktadministrasjon, personalisering og analyser.
- JSP stรธtter HTTP-informasjonskapsler gjennom den underliggende Servlet-teknologien og javax.servlet.http.Cookie-klassen.
- JSP-informasjonskapsler er transmitinne i HTTP-forespรธrsels- og svaroverskrifter pรฅ hver samsvarende forespรธrsel.
- Nรฅr nettleseren er konfigurert til รฅ godta informasjonskapsler, lagrer den dem pรฅ disk frem til utlรธpsdatoen som er angitt av setMaxAge.
Hvorfor bruke JSP-informasjonskapsler?
JSP-utviklere er avhengige av informasjonskapsler fordi HTTP-forespรธrsler er uavhengige av hverandre. Uten JSP-informasjonskapsler ville ikke serveren vite at to forespรธrsler tilhรธrer den samme besรธkende. Informasjonskapsler i JSP lรธser dette problemet med minimal serversidetilstand.
- Session trackonge: En JSESSIONID-informasjonskapsel kobler flere sidevisninger til รฉn logisk รธkt.
- Personalisering: JSP-informasjonskapsler kan lagre sprรฅk-, tema- eller layoutpreferanser.
- Autentiseringshjelpere: Husk meg-tokener og pรฅloggingsstatus ligger ofte i informasjonskapsler med HttpOnly- og Secure-flaggene aktivert.
- Analytics: Informasjonskapsler i JSP registrerer returnerende besรธkende, henvisende brukere og konverteringsbaner.
Typer JSP-informasjonskapsler
- Vedvarende informasjonskapsel: En permanent JSP-informasjonskapsel lagres pรฅ enheten i tiden som er angitt med setMaxAge. Den hjelper applikasjonen med รฅ huske preferanser og innloggingsdetaljer ved omstart av nettleseren.
- Ikke-permanent informasjonskapsel: En ikke-permanent JSP-informasjonskapsel, ogsรฅ kalt en รธktinformasjonskapsel, ligger kun i nettleserens minne og fjernes nรฅr brukeren lukker nettleseren. Den brukes hovedsakelig til kortvarige รธkter. trackonge.
JSP-informasjonskapsler-metoder
javax.servlet.http.Cookie-klassen eksponerer fรธlgende metoder som brukes oftest nรฅr man arbeider med JSP-informasjonskapsler.
-
public void setDomain(String domain)
Denne JSP-metoden for รฅ sette informasjonskapsler angir domenet som JSP-informasjonskapselen gjelder for.
-
offentlig String getDomain()
Denne JSP get cookie-metoden returnerer domenet som JSP-informasjonskapselen gjelder for.
-
public void setMaxAge(int utlรธpsdato)
Den angir maksimal tid i sekunder fรธr JSP-informasjonskapselen utlรธper. En verdi pรฅ null sletter informasjonskapselen, og en negativ verdi gjรธr den til en รธktinformasjonskapsel.
-
public int hentMaxAge()
Den returnerer den maksimale alderen til JSP-informasjonskapselen i sekunder.
-
public String getName()
Den returnerer navnet pรฅ JSP-informasjonskapselen.
-
public void setValue(String-verdi)
Angir verdien som er knyttet til JSP-informasjonskapselen.
-
offentlig String getValue()
Returnerer verdien som er knyttet til JSP-informasjonskapselen.
-
public void setPath(String path)
Denne informasjonskapselen i JSP-metoden angir URL banen som informasjonskapselen gjelder for.
-
offentlig String getPath()
Den returnerer URL banen som JSP-informasjonskapselen gjelder for.
-
public void setSecure(boolsk flagg)
Den markerer JSP-informasjonskapselen slik at den bare sendes over krypterte HTTPS-tilkoblinger.
-
public void setKommentar(String cmt)
Den beskriver formรฅlet med JSP-informasjonskapselen.
-
offentlig String getComment()
Den returnerer kommentaren som beskriver JSP-informasjonskapselen.
Slik hรฅndterer du JSP-informasjonskapsler
ร jobbe med JSP-informasjonskapsler innebรฆrer tre repeterbare trinn. Det samme mรธnsteret brukes for innloggingsstatus, temabytter og nettbutikk.ping vogner.
- Opprett JSP Cookie-objektet ved hjelp av Cookie-konstruktรธren.
- Konfigurer informasjonskapselattributtene, spesielt maksimal alder, sti og sikkerhetsflagg.
- Send informasjonskapselen til nettleseren via HTTP-svarhoder ved hjelp av response.addCookie.
Slik oppretter du en JSP-informasjonskapsel
En ny JSP-informasjonskapsel opprettes ved รฅ instansiere javax.servlet.http.Cookie med et navn og en verdi. Informasjonskapselen legges deretter til responsobjektet slik at nettleseren lagrer den.
Slik leser du JSP-informasjonskapsler
Pรฅ hver pรฅfรธlgende forespรธrsel sender nettleseren samsvarende JSP-informasjonskapsler tilbake til serveren. Siden leser dem ved รฅ kalle request.getCookies, som returnerer en matrise med informasjonskapselobjekter. Applikasjonen itererer deretter over matrisen, slรฅr opp hver informasjonskapsel etter navn og bruker verdien.
Slik sletter du en JSP-informasjonskapsel
For รฅ slette en JSP-informasjonskapsel, oppretter serveren en ny informasjonskapsel med samme navn, setter verdien til en tom streng, kaller setMaxAge med null og legger den til i svaret. Nettleseren fjerner deretter den lagrede informasjonskapselen i neste svar.
Eksempel pรฅ informasjonskapsler i JSP
I dette eksemplet med JSP-informasjonskapsler oppretter applikasjonen to informasjonskapsler for brukernavn og e-post, holder dem aktive i ti timer og leser deretter verdiene tilbake pรฅ en annen side kalt 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>
Forklaring av Code
Action_cookie.jsp
Code Linje 10 til 15: Siden deklarerer et skjema som sendes til action_cookie_main.jsp. To inndatafelt, brukernavn og e-post, samler inn data fra brukeren sammen med en send-knapp.
Action_cookie_main.jsp
Code Linje 6 til 9: To informasjonskapselobjekter, brukernavn og e-post, opprettes ved hjelp av request.getParameter for รฅ lese verdiene som sendes inn av skjemaet.
Code Linje 12 til 13: setMaxAge-metoden kalles med 60 multiplisert med 60 multiplisert med 10, som setter levetiden til hver JSP-informasjonskapsel til ti timer.
Code Linje 16 til 17: De to informasjonskapslene er knyttet til svaret med response.addCookie. Nettleseren sender dem deretter tilbake ved senere forespรธrsler, og serveren leser dem ved hjelp av request.getCookies eller request.getParameter for den gjeldende forespรธrselen.
Produksjon
Nรฅr du kjรธrer koden ovenfor, fรฅr du fรธlgende utdata.
Nรฅr action_cookie.jsp kjรธres, viser nettleseren de to feltene, brukernavn og e-post. Etter at brukeren har fylt dem ut og klikket pรฅ Send, oppretter action_cookie_main.jsp de samsvarende JSP-informasjonskapslene pรฅ serveren, lagrer dem pรฅ klienten og viser verdiene, som bekrefter at informasjonskapslene ble opprettet.
Beste praksis for JSP-informasjonskapsler
Moderne webapplikasjoner bรธr behandle JSP-informasjonskapsler som sikkerhetssensitive data. Fรธlgende praksis er i samsvar med gjeldende Servlet 4.x- og Servlet 5.x-distribusjoner.
- Bruk bare Http: Merk autentiseringskapsler som HttpOnly slik at klientsideskript ikke kan lese dem.
- Bruk sikker: Send informasjonskapsler kun over HTTPS ved รฅ kalle setSecure(true).
- Bruk SameSite: Konfigurer SameSite-attributtet (Lax eller Strict) gjennom container- eller svarhodene for รฅ redusere forfalskning av forespรธrsler pรฅ tvers av nettsteder.
- Hold verdiene smรฅ: Lagre en identifikator i informasjonskapselen og oppbevar dataene i lagring pรฅ serversiden.
- Angi eksplisitt utlรธp: Bruk setMaxAge for forutsigbar oppfรธrsel pรฅ tvers av nettlesere.


