Cookie-uri în JSP cu exemplu

⚡ Rezumat inteligent

Cookie-urile JSP sunt fișiere text mici stocate în browserul clientului care ajută aplicațiile JSP track sesiuni, reține preferințele utilizatorilor și personalizează răspunsurile la mai multe cereri HTTP folosind API-ul javax.servlet.http.Cookie și anteturile de răspuns standard.

  • 🍪 Definiție: Cookie-urile JSP sunt fișiere text cu valoare cheie stocate pe dispozitivul client și citite prin obiectul solicitării la fiecare apel HTTP ulterior.
  • 🔐 Steaguri de securitate: Setarea atributelor Secure, HttpOnly și a atributului modern SameSite protejează cookie-urile JSP de interceptare, acces la scripturi și falsificare a cererilor între site-uri.
  • ⏱️ Control pe durata de viață: Metoda setMaxAge decide dacă un cookie JSP este persistent pe disc sau este eliminat automat la încheierea sesiunii de browser.
  • API standard: Clasa javax.servlet.http.Cookie împreună cu response.addCookie și request.getCookies acoperă crearea, transmiterea, regăsirea și ștergerea în Servlet 4.x și 5.x.
  • 🧪 Exemplu lucrat: O demonstrație pe două pagini cu numele de utilizator și adresa de e-mail arată cum sunt create, trimise, persistate timp de zece ore și recitite cookie-urile JSP la următoarea solicitare.

Cookie-uri în JSP cu exemplu

Ce sunt cookie-urile JSP?

Cookie-urile JSP sunt fișiere text mici pe care un server web bazat pe JSP solicită browserului clientului să le stocheze pe dispozitivul utilizatorului. Deoarece HTTP este un protocol fără stare, cookie-urile JSP oferă o modalitate simplă, bazată pe standarde, de a reține informații între solicitări, cum ar fi starea de conectare, alegerea limbii, tema sau magazinul.ping identificatori de coș.

  • Cookie-urile JSP sunt fișiere text simple stocate pe mașina clientului de către browser.
  • Sunt obișnuiți tracinformații k pentru gestionarea sesiunilor, personalizare și analiză.
  • JSP acceptă cookie-uri HTTP prin tehnologia Servlet subiacentă și clasa javax.servlet.http.Cookie.
  • Cookie-urile JSP sunt transmitted în anteturile de cerere și răspuns HTTP pentru fiecare cerere potrivită.
  • Când browserul este configurat să accepte cookie-uri, acesta le stochează pe disc până la data de expirare setată de setMaxAge.

De ce să folosim cookie-uri JSP?

Dezvoltatorii JSP se bazează pe cookie-uri deoarece cererile HTTP sunt independente una de cealaltă. Fără cookie-uri JSP, serverul nu ar ști că două cereri aparțin aceluiași vizitator. Cookie-urile din JSP rezolvă această problemă cu o stare minimă a serverului.

  • Sesiune tracrege: Un cookie JSESSIONID conectează mai multe vizualizări de pagină la o singură sesiune logică.
  • Personalizare: Cookie-urile JSP pot stoca preferințe de limbă, temă sau aspect.
  • Ajutoare de autentificare: Jetoanele „Ține-mă minte” și starea de conectare se află adesea în cookie-uri cu semnalizatoarele HttpOnly și Secure activate.
  • Google Analytics: Cookie-urile din JSP înregistrează vizitatorii care revin, sursele de referință și căile de conversie.

Tipuri de cookie-uri JSP

  1. Cookie persistent: Un cookie JSP persistent rămâne stocat pe dispozitiv pentru perioada setată cu setMaxAge. Acesta ajută aplicația să își amintească preferințele și detaliile de conectare după repornirea browserului.
  2. Cookie nepersistent: Un cookie JSP nepersistent, numit și cookie de sesiune, se află doar în memoria browserului și este eliminat când utilizatorul închide browserul. Este folosit mai ales pentru sesiuni de scurtă durată. tracrege.

Metode cookie JSP

Clasa javax.servlet.http.Cookie expune următoarele metode utilizate cel mai des atunci când se lucrează cu cookie-uri JSP.

  • public void setDomain(String domeniu)

    Această metodă JSP set cookie setează domeniul căruia i se aplică cookie-ul JSP.

  • public String getDomain()

    Această metodă JSP get cookie returnează domeniul căruia i se aplică cookie-ul JSP.

  • public void setMaxAge(int expirare)

    Setează timpul maxim în secunde înainte ca cookie-ul JSP să expire. O valoare zero șterge cookie-ul, iar o valoare negativă îl transformă într-un cookie de sesiune.

  • public int getMaxAge()

    Returnează vârsta maximă a cookie-ului JSP în secunde.

  • public String getName()

    Returnează numele cookie-ului JSP.

  • public void setValue(valoare tip String)

    Setează valoarea asociată cu cookie-ul JSP.

  • public String getValue()

    Returnează valoarea asociată cu cookie-ul JSP.

  • public void setPath(String cale)

    Acest cookie setat în metoda JSP setează URL calea căreia i se aplică cookie-ul.

  • public String getPath()

    Acesta returnează URL calea căreia i se aplică cookie-ul JSP.

  • public void setSecure(flag boolean)

    Marchează cookie-ul JSP astfel încât acesta să fie trimis doar prin conexiuni HTTPS criptate.

  • public void setComentariu(String cmt)

    Descrie scopul cookie-ului JSP.

  • public String getComent()

    Returnează comentariul care descrie cookie-ul JSP.

Cum se gestionează cookie-urile JSP

Lucrul cu cookie-uri JSP implică trei pași repetitivi. Același model este utilizat pentru starea de conectare, comutatoarele de temă și magazin.ping cărucioare.

  1. Creați obiectul JSP Cookie folosind constructorul Cookie.
  2. Configurați atributele cookie-urilor, în special vârsta maximă, calea și semnalizatoarele de securitate.
  3. Trimiteți cookie-ul către browser prin intermediul antetelor de răspuns HTTP folosind response.addCookie.

Cum se creează un cookie JSP

Un nou cookie JSP este creat prin instanțierea obiectului javax.servlet.http.Cookie cu un nume și o valoare. Cookie-ul este apoi atașat obiectului de răspuns, astfel încât browserul să îl stocheze.

Cum se citesc cookie-urile JSP

La fiecare solicitare ulterioară, browserul trimite cookie-uri JSP corespunzătoare înapoi la server. Pagina le citește apelând request.getCookies, care returnează o matrice de obiecte Cookie. Aplicația iterează apoi peste matrice, caută fiecare cookie după nume și utilizează valoarea sa.

Cum se șterge un cookie JSP

Pentru a șterge un cookie JSP, serverul creează un cookie nou cu același nume, îi setează valoarea la un șir gol, apelează setMaxAge cu zero și îl adaugă la răspuns. Browserul elimină apoi cookie-ul stocat la următorul răspuns.

Exemplu de cookie-uri în JSP

În acest exemplu de cookie-uri JSP, aplicația creează două cookie-uri pentru numele de utilizator și adresa de e-mail, le menține active timp de zece ore, apoi citește valorile înapoi pe o a doua pagină numită 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>

Explicație a Code

Action_cookie.jsp

Code Liniile 10-15: Pagina declară un formular care este trimis către action_cookie_main.jsp. Două câmpuri de introducere, numele de utilizator și adresa de e-mail, colectează date de la utilizator, împreună cu un buton de trimitere.

Action_cookie_main.jsp

Code Liniile 6-9: Două obiecte Cookie, numele de utilizator și adresa de e-mail, sunt create folosind request.getParameter pentru a citi valorile trimise de formular.

Code Liniile 12-13: Metoda setMaxAge este apelată cu 60 înmulțit cu 60 înmulțit cu 10, ceea ce setează durata de viață a fiecărui cookie JSP la zece ore.

Code Liniile 16-17: Cele două cookie-uri sunt atașate răspunsului cu response.addCookie. Browserul le trimite apoi înapoi la solicitările ulterioare, iar serverul le citește folosind request.getCookies sau request.getParameter pentru solicitarea curentă.

producție

Când executați codul de mai sus, obțineți următorul rezultat.

Metode cookie JSP

Metode cookie JSP

Când se execută action_cookie.jsp, browserul afișează cele două câmpuri, numele de utilizator și adresa de e-mail. După ce utilizatorul le completează și dă clic pe Trimitere, action_cookie_main.jsp creează cookie-urile JSP corespunzătoare pe server, le stochează pe client și afișează valorile, confirmând că cookie-urile au fost create cu succes.

Cele mai bune practici pentru cookie-urile JSP

Aplicațiile web moderne ar trebui să trateze cookie-urile JSP ca date sensibile din punct de vedere al securității. Următoarele practici sunt aliniate cu implementările actuale Servlet 4.x și Servlet 5.x.

  • Folosește doar Http: Marcați cookie-urile de autentificare ca HttpOnly, astfel încât scripturile de pe partea clientului să nu le poată citi.
  • Utilizați Securitate: Trimiteți cookie-uri doar prin HTTPS apelând setSecure(true).
  • Folosește SameSite: Configurați atributul SameSite (Lax sau Strict) prin intermediul antetelor containerului sau ale răspunsului pentru a atenua falsificarea cererilor între site-uri.
  • Păstrați valori mici: Stochează un identificator în cookie și păstrează datele în memoria de pe server.
  • Setați expirarea explicită: Folosește setMaxAge pentru un comportament previzibil în diferite browsere.

Întrebări frecvente

Cookie-urile JSP sunt fișiere text mici care stochează date în browserul clientului. Paginile JSP le folosesc pentru sesiuni tracking, reținând preferințele utilizatorului, acceptând starea de conectare și alimentând analizele pentru mai multe cereri HTTP către aceeași aplicație web.

Marcați cookie-urile ca HttpOnly pentru ca scripturile să nu le poată citi, apelați setSecure(true) pentru ca acestea să circule doar prin HTTPS și configurați atributul SameSite ca Lax sau Strict pentru a reduce riscul de falsificare a cererilor între site-uri în browserele moderne.

Creați un nou Cookie cu același nume și aceeași cale, setați-i valoarea la un șir gol, apelați setMaxAge(0) și adăugați-l la răspuns cu response.addCookie. Browserul elimină apoi imediat cookie-ul stocat corespunzător.

Un cookie JSP persistent are o vârstă maximă pozitivă și este stocat pe disc până la expirarea acestui interval de timp. Un cookie de sesiune are o vârstă maximă negativă, rămâne doar în memoria browserului și este eliminat atunci când fereastra browserului este închisă.

Analizele bazate pe inteligență artificială pot evalua traficul de tip cookie în timp real, pot semnala identificatori de sesiune furați, pot detecta schimbări neobișnuite în geolocalizare și pot declanșa autentificarea avansată. Modelele de învățare automată ajută, de asemenea, la ajustarea politicilor SameSite, HttpOnly și Secure pe baza tiparelor de atac observate.

Da. Asistenții inteligenți artificiali pot scana codul JSP și Servlet vechi, pot rescrie apelurile javax.servlet.http.Cookie pentru jakarta.servlet.http.Cookie în Servlet 5.x, pot adăuga semnalizatoare SameSite și HttpOnly și pot sugera stocarea mai sigură a identificatorilor de sesiune fără a încălca logica existentă a aplicației.

Rezumați această postare cu: