Kolačići u JSP-u s primjerom

⚡ Pametni sažetak

JSP kolačići su male tekstualne datoteke pohranjene u pregledniku klijenta koje pomažu JSP aplikacijama track sesija, pamte korisničke postavke i personaliziraju odgovore na više HTTP zahtjeva pomoću javax.servlet.http.Cookie API-ja i standardnih zaglavlja odgovora.

  • 🍪 Definicija: JSP kolačići su tekstualne datoteke s ključnom vrijednošću pohranjene na klijentskom uređaju i čitaju objekt zahtjeva pri svakom sljedećem HTTP pozivu.
  • 🔐 Sigurnosne zastavice: Postavljanje atributa Secure, HttpOnly i modernog atributa SameSite štiti JSP kolačiće od presretanja, pristupa skriptama i krivotvorenja zahtjeva s više web-mjesta.
  • 🇧🇷 Doživotna kontrola: Metoda setMaxAge odlučuje hoće li JSP kolačić ostati trajan na disku ili će se automatski ukloniti kada sesija preglednika završi.
  • ✅ Standardni API: Klasa javax.servlet.http.Cookie s response.addCookie i request.getCookies pokriva stvaranje, prijenos, dohvaćanje i brisanje u Servletu 4.x i 5.x.
  • 🧪 Obrađeni primjer: Demo s korisničkim imenom i e-poštom na dvije stranice prikazuje kako se JSP kolačići kreiraju, šalju, čuvaju deset sati i čitaju pri sljedećem zahtjevu.

Kolačići u JSP-u s primjerom

Što su JSP kolačići?

JSP kolačići su male tekstualne datoteke koje web poslužitelj temeljen na JSP-u traži od klijentskog preglednika da ih pohrani na korisničkom uređaju. Budući da je HTTP protokol bez stanja, JSP kolačići pružaju jednostavan, standardiziran način pamćenja informacija između zahtjeva, kao što su stanje prijave, odabir jezika, tema ili trgovina.ping identifikatori košarice.

  • JSP kolačići su obične tekstualne datoteke koje preglednik pohranjuje na klijentskom računalu.
  • Navikli su se track informacije za upravljanje sesijama, personalizaciju i analitiku.
  • JSP podržava HTTP kolačiće putem temeljne Servlet tehnologije i klase javax.servlet.http.Cookie.
  • JSP kolačići su transmitunutar HTTP zaglavlja zahtjeva i odgovora na svakom odgovarajućem zahtjevu.
  • Kada je preglednik konfiguriran za prihvaćanje kolačića, pohranjuje ih na disk do datuma isteka koji je postavio setMaxAge.

Zašto koristiti JSP kolačiće?

JSP programeri oslanjaju se na kolačiće jer su HTTP zahtjevi međusobno neovisni. Bez JSP kolačića, poslužitelj ne bi znao da dva zahtjeva pripadaju istom posjetitelju. Kolačići u JSP-u rješavaju ovaj problem minimalnim stanjem na strani poslužitelja.

  • Sjednica trackralj: Kolačić JSESSIONID povezuje više pregleda stranica u jednu logičku sesiju.
  • Personalizacija: JSP kolačići mogu pohraniti postavke jezika, teme ili izgleda.
  • Pomoćnici za autentifikaciju: Tokeni "Zapamti me" i stanje prijave često se nalaze u kolačićima s omogućenim oznakama HttpOnly i Secure.
  • Analitika: Kolačići u JSP-u bilježe povratne posjetitelje, preporuke i putove konverzije.

Vrste JSP kolačića

  1. Trajni kolačić: Trajni JSP kolačić ostaje pohranjen na uređaju tijekom vremena postavljenog s setMaxAge. Pomaže aplikaciji da zapamti postavke i podatke za prijavu nakon ponovnog pokretanja preglednika.
  2. Netrajni kolačić: Netrajni JSP kolačić, koji se naziva i kolačić sesije, nalazi se samo u memoriji preglednika i uklanja se kada korisnik zatvori preglednik. Uglavnom se koristi za kratkotrajne sesije. trackralj.

Metode JSP kolačića

Klasa javax.servlet.http.Cookie otkriva sljedeće metode koje se najčešće koriste pri radu s JSP kolačićima.

  • javni void setDomena(String domena)

    Ova metoda postavljanja JSP kolačića postavlja domenu na koju se primjenjuje JSP kolačić.

  • javni niz znakova getDomain()

    Ova JSP metoda za dobivanje kolačića vraća domenu na koju se JSP kolačić odnosi.

  • javni void setMaxAge(int istek)

    Postavlja maksimalno vrijeme u sekundama prije isteka JSP kolačića. Vrijednost nula briše kolačić, a negativna vrijednost ga pretvara u kolačić sesije.

  • javno int dohvatiMaksimalnuDob()

    Vraća maksimalnu starost JSP kolačića u sekundama.

  • javni niz znakova getName()

    Vraća naziv JSP kolačića.

  • javni void setValue(vrijednost niza)

    Postavlja vrijednost povezanu s JSP kolačićem.

  • javni niz getValue()

    Vraća vrijednost povezanu s JSP kolačićem.

  • javni void setPath(String put)

    Ovaj kolačić u JSP metodi postavlja URL put na koji se kolačić primjenjuje.

  • javni niz znakova getPath()

    Vraća URL put na koji se primjenjuje JSP kolačić.

  • javni void setSecure(boolean flag)

    Označava JSP kolačić tako da se šalje samo putem šifriranih HTTPS veza.

  • javni void setComment(String cmt)

    Opisuje svrhu JSP kolačića.

  • javni niz znakova getComment()

    Vraća komentar koji opisuje JSP kolačić.

Kako rukovati JSP kolačićima

Rad s JSP kolačićima uključuje tri ponovljiva koraka. Isti obrazac se koristi za stanje prijave, promjene tema i trgovinu.ping kolica.

  1. Kreirajte JSP objekt Cookie pomoću konstruktora Cookie.
  2. Konfigurirajte atribute kolačića, posebno maksimalnu starost, putanju i sigurnosne zastavice.
  3. Pošaljite kolačić pregledniku putem HTTP zaglavlja odgovora koristeći response.addCookie.

Kako stvoriti JSP kolačić

Novi JSP kolačić stvara se instanciranjem javax.servlet.http.Cookie s nazivom i vrijednošću. Kolačić se zatim pridružuje objektu odgovora kako bi ga preglednik pohranio.

Kako čitati JSP kolačiće

Na svaki sljedeći zahtjev, preglednik šalje odgovarajuće JSP kolačiće natrag poslužitelju. Stranica ih čita pozivom request.getCookies, koji vraća niz objekata Cookie. Aplikacija zatim iterira kroz niz, pretražuje svaki kolačić po imenu i koristi njegovu vrijednost.

Kako izbrisati JSP kolačić

Za brisanje JSP kolačića, poslužitelj stvara novi kolačić s istim nazivom, postavlja njegovu vrijednost na prazan niz, poziva setMaxAge s nulom i dodaje ga odgovoru. Preglednik zatim uklanja pohranjeni kolačić pri sljedećem odgovoru.

Primjer kolačića u JSP-u

U ovom primjeru JSP kolačića, aplikacija stvara dva kolačića za korisničko ime i e-poštu, drži ih aktivnima deset sati, a zatim čita vrijednosti natrag na drugoj stranici pod nazivom 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>

Objašnjenje za Code

Action_cookie.jsp

Code Redak 10 do 15: Stranica deklarira obrazac koji se šalje na action_cookie_main.jsp. Dva polja za unos, korisničko ime i e-pošta, prikupljaju podatke od korisnika zajedno s gumbom za slanje.

Action_cookie_main.jsp

Code Redak 6 do 9: Dva objekta kolačića, korisničko ime i e-pošta, kreiraju se pomoću request.getParameter za čitanje vrijednosti koje šalje obrazac.

Code Redak 12 do 13: Metoda setMaxAge poziva se s vrijednošću 60 pomnoženom sa 60 pomnoženom s 10, što postavlja životni vijek svakog JSP kolačića na deset sati.

Code Redak 16 do 17: Dva kolačića pridružuju se odgovoru pomoću response.addCookie. Preglednik ih zatim šalje natrag na sljedeće zahtjeve, a poslužitelj ih čita pomoću request.getCookies ili request.getParameter za trenutni zahtjev.

Izlaz

Kada izvršite gornji kod, dobit ćete sljedeći izlaz.

Metode JSP kolačića

Metode JSP kolačića

Kada se izvrši action_cookie.jsp, preglednik prikazuje dva polja, korisničko ime i e-poštu. Nakon što ih korisnik ispuni i klikne Pošalji, action_cookie_main.jsp stvara odgovarajuće JSP kolačiće na poslužitelju, pohranjuje ih na klijentu i prikazuje vrijednosti, potvrđujući da su kolačići uspješno kreirani.

Najbolje prakse za JSP kolačiće

Moderne web aplikacije trebale bi tretirati JSP kolačiće kao sigurnosno osjetljive podatke. Sljedeće prakse usklađene su s trenutnim implementacijama Servleta 4.x i Servleta 5.x.

  • Koristi samo Http: Označite kolačiće za autentifikaciju kao HttpOnly kako ih klijentske skripte ne bi mogle čitati.
  • Koristite sigurno: Kolačiće šaljite samo putem HTTPS-a pozivom funkcije setSecure(true).
  • Koristite SameSite: Konfigurirajte atribut SameSite (Lax ili Strict) putem spremnika ili zaglavlja odgovora kako biste ublažili krivotvorenje zahtjeva na više web-mjesta.
  • Održavajte male vrijednosti: Pohranite identifikator u kolačić i čuvajte podatke u pohrani na strani poslužitelja.
  • Postavi eksplicitni istek: Koristite setMaxAge za predvidljivo ponašanje u različitim preglednicima.

Pitanja i odgovori

JSP kolačići su male tekstualne datoteke koje pohranjuju podatke u pregledniku klijenta. JSP stranice ih koriste za sesiju trackralj, pamćenje korisničkih postavki, podrška za stanje prijave i omogućavanje analitike putem više HTTP zahtjeva prema istoj web aplikaciji.

Označite kolačiće kao HttpOnly kako ih skripte ne bi mogle čitati, pozovite setSecure(true) kako bi putovali samo putem HTTPS-a i konfigurirajte atribut SameSite kao Lax ili Strict kako biste smanjili rizik krivotvorenja zahtjeva između web-mjesta u modernim preglednicima.

Izradite novi kolačić s istim nazivom i putanjom, postavite njegovu vrijednost na prazan niz, pozovite setMaxAge(0) i dodajte ga u odgovor pomoću response.addCookie. Preglednik zatim odmah uklanja odgovarajući pohranjeni kolačić.

Trajni JSP kolačić ima pozitivnu maksimalnu starost i pohranjuje se na disku dok to vrijeme ne istekne. Sesijski kolačić ima negativnu maksimalnu starost, nalazi se samo u memoriji preglednika i uklanja se kada se prozor preglednika zatvori.

Analitika vođena umjetnom inteligencijom može u stvarnom vremenu ocjenjivati ​​promet kolačića, označavati ukradene identifikatore sesija, otkrivati ​​neobične skokove geolokacije i pokretati pojačanu autentifikaciju. Modeli strojnog učenja također pomažu u podešavanju SameSite, HttpOnly i Secure politika na temelju uočenih obrazaca napada.

Da. AI asistenti mogu skenirati naslijeđeni JSP i Servlet kod, prepisati pozive javax.servlet.http.Cookie za jakarta.servlet.http.Cookie u Servletu 5.x, dodati zastavice SameSite i HttpOnly te predložiti sigurnije pohranjivanje identifikatora sesije bez narušavanja postojeće logike aplikacije.

Sažmite ovu objavu uz: