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.

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
- 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.
- 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.
- Creați obiectul JSP Cookie folosind constructorul Cookie.
- Configurați atributele cookie-urilor, în special vârsta maximă, calea și semnalizatoarele de securitate.
- 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.
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.


