Evästeet JSP:ssä esimerkin avulla
⚡ Älykäs yhteenveto
JSP-evästeet ovat pieniä tekstitiedostoja, jotka tallennetaan asiakasselaimeen ja jotka auttavat JSP-sovelluksia track-istuntoja, muistaa käyttäjän asetukset ja mukauttaa vastauksia useissa HTTP-pyynnöissä käyttämällä javax.servlet.http.Cookie-rajapintaa ja vakiovastausotsikoita.

Mitä JSP-evästeet ovat?
JSP-evästeet ovat pieniä tekstitiedostoja, jotka JSP-pohjainen verkkopalvelin pyytää asiakasselainta tallentamaan käyttäjän laitteelle. Koska HTTP on tilaton protokolla, JSP-evästeet tarjoavat yksinkertaisen, standardeihin perustuvan tavan muistaa tietoja pyyntöjen välillä, kuten kirjautumistilan, kielivalinnan, teeman tai kaupan.ping ostoskorin tunnisteet.
- JSP-evästeet ovat tekstitiedostoja, jotka selain tallentaa asiakaskoneelle.
- He ovat tottuneet track-tiedot istunnonhallintaa, personointia ja analytiikkaa varten.
- JSP tukee HTTP-evästeitä pohjana olevan Servlet-teknologian ja javax.servlet.http.Cookie-luokan kautta.
- JSP-evästeet ovat transmitted HTTP-pyyntöjen ja -vastausten otsikoissa jokaisessa vastaavassa pyynnössä.
- Kun selain on määritetty hyväksymään evästeet, se tallentaa ne levylle setMaxAge-määrityksen asettamaan viimeiseen käyttöpäivään asti.
Miksi käyttää JSP-evästeitä?
JSP-kehittäjät käyttävät evästeitä, koska HTTP-pyynnöt ovat toisistaan riippumattomia. Ilman JSP-evästeitä palvelin ei tietäisi, että kaksi pyyntöä kuuluu samalle kävijälle. JSP:n evästeet ratkaisevat tämän ongelman minimoimalla palvelinpuolen tilan tarpeen.
- istunto trackuningas: JSESSIONID-eväste yhdistää useita sivukatseluja yhteen loogiseen istuntoon.
- personointi: JSP-evästeet voivat tallentaa kieli-, teema- tai asetteluasetuksia.
- Todennusapuohjelmat: Muista minut -tokenit ja kirjautumistiedot sijaitsevat usein evästeissä, joissa on käytössä HttpOnly- ja Secure-liput.
- Analytics: JSP-evästeet tallentavat palaavat kävijät, viittaavat sivustot ja konversioreitit.
JSP-evästeiden tyypit
- Pysyvä eväste: Pysyvä JSP-eväste pysyy tallennettuna laitteelle setMaxAge-määrityksellä asetetun ajan. Se auttaa sovellusta muistamaan asetukset ja kirjautumistiedot selaimen uudelleenkäynnistyksen jälkeen.
- Ei-pysyvä eväste: Ei-pysyvä JSP-eväste, jota kutsutaan myös istuntoevästeeksi, sijaitsee vain selaimen muistissa ja poistetaan, kun käyttäjä sulkee selaimen. Sitä käytetään enimmäkseen lyhytaikaisiin istuntoevästeisiin. trackuningas.
JSP-evästeiden menetelmät
javax.servlet.http.Cookie-luokka paljastaa seuraavat metodit, joita käytetään useimmiten JSP-evästeiden kanssa työskenneltäessä.
-
public void setDomain(String-toimialue)
Tämä JSP set cookie -metodi asettaa verkkotunnuksen, johon JSP-eväste liittyy.
-
julkinen merkkijono getDomain()
Tämä JSP:n get cookie -metodi palauttaa verkkotunnuksen, johon JSP-eväste liittyy.
-
public void setMaxIkä(int vanhenemispäivä)
Se asettaa enimmäisajan sekunteina ennen JSP-evästeen vanhenemista. Nolla-arvo poistaa evästeen ja negatiivinen arvo tekee siitä istuntoevästeen.
-
public int getMaxIkä()
Se palauttaa JSP-evästeen enimmäisiän sekunteina.
-
julkinen merkkijono getNimi()
Se palauttaa JSP-evästeen nimen.
-
public void setValue(String-arvo)
Asettaa JSP-evästeeseen liittyvän arvon.
-
julkinen merkkijono haeArvo()
Palauttaa JSP-evästeeseen liittyvän arvon.
-
public void setPath(String polku)
Tämä JSP-metodin evästeasetus asettaa URL polku, johon evästettä sovelletaan.
-
julkinen merkkijono getPath()
Se palauttaa URL polku, johon JSP-eväste liittyy.
-
public void setSecure(boolean-lippu)
Se merkitsee JSP-evästeen niin, että se lähetetään vain salattujen HTTPS-yhteyksien kautta.
-
public void setKommentti(String cmt)
Se kuvaa JSP-evästeen tarkoituksen.
-
julkinen merkkijono getComment()
Se palauttaa JSP-evästettä kuvaavan kommentin.
JSP-evästeiden käsittely
JSP-evästeiden kanssa työskentelyyn kuuluu kolme toistettavaa vaihetta. Samaa mallia käytetään kirjautumistilan, teeman vaihtamisen ja kaupan osalta.ping kärryt.
- Luo JSP Cookie -objekti Cookie-konstruktoria käyttäen.
- Määritä evästeen ominaisuudet, erityisesti enimmäisikä, polku ja suojausliput.
- Lähetä eväste selaimelle HTTP-vastausotsikoiden kautta käyttämällä response.addCookie-metodia.
JSP-evästeen luominen
Uusi JSP-eväste luodaan luomalla javax.servlet.http.Cookie-instanssi nimellä ja arvolla. Eväste liitetään sitten vastausobjektiin, jotta selain tallentaa sen.
JSP-evästeiden lukeminen
Jokaisella seuraavalla pyynnöllä selain lähettää vastaavat JSP-evästeet takaisin palvelimelle. Sivu lukee ne kutsumalla request.getCookies-funktiota, joka palauttaa taulukon evästeobjekteja. Sovellus käy sitten iteroiden läpi taulukon, etsii jokaisen evästeen nimen perusteella ja käyttää sen arvoa.
JSP-evästeen poistaminen
JSP-evästeen poistamiseksi palvelin luo uuden evästeen samalla nimellä, asettaa sen arvoksi tyhjän merkkijonon, kutsuu setMaxAge-funktiota nollalla ja lisää sen vastaukseen. Selain poistaa sitten tallennetun evästeen seuraavassa vastauksessa.
Esimerkki evästeistä JSP:ssä
Tässä JSP-eväste-esimerkissä sovellus luo kaksi evästettä käyttäjätunnukselle ja sähköpostiosoitteelle, pitää niitä voimassa kymmenen tuntia ja lukee sitten arvot takaisin toiselle sivulle nimeltä 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>
Selitys Code
Action_cookie.jsp
Code Rivi 10–15: Sivulla esitellään lomake, joka lähetetään action_cookie_main.jsp-tiedostoon. Kaksi syöttökenttää, käyttäjätunnus ja sähköpostiosoite, keräävät tietoja käyttäjältä sekä lähetyspainike.
Action_cookie_main.jsp
Code Rivi 6–9: Kaksi evästeobjektia, käyttäjätunnus ja sähköpostiosoite, luodaan käyttämällä request.getParameter-metodia lomakkeen lähettämien arvojen lukemiseen.
Code Rivi 12–13: setMaxAge-metodia kutsutaan luvulla 60 kerrottuna 60 kerrottuna 10, mikä asettaa kunkin JSP-evästeen elinkaaren kymmeneen tuntiin.
Code Rivi 16–17: Nämä kaksi evästettä liitetään vastaukseen response.addCookie-metodilla. Selain lähettää ne sitten takaisin seuraavissa pyynnöissä, ja palvelin lukee ne käyttämällä request.getCookies- tai request.getParameter-metodia nykyiselle pyynnölle.
ulostulo
Kun suoritat yllä olevan koodin, saat seuraavan tulosteen.
Kun action_cookie.jsp suoritetaan, selain näyttää kaksi kenttää, käyttäjätunnuksen ja sähköpostiosoitteen. Kun käyttäjä täyttää ne ja napsauttaa Lähetä-painiketta, action_cookie_main.jsp luo vastaavat JSP-evästeet palvelimelle, tallentaa ne asiakasohjelmaan ja näyttää arvot vahvistaen, että evästeet luotiin onnistuneesti.
JSP-evästeiden parhaat käytännöt
Nykyaikaisten verkkosovellusten tulisi käsitellä JSP-evästeitä arkaluonteisina tietoina. Seuraavat käytännöt ovat yhdenmukaisia nykyisten Servlet 4.x- ja Servlet 5.x -käyttöönottojen kanssa.
- Käytä vain Http:tä: Merkitse todennusevästeet HttpOnly-tilaan, jotta asiakaspuolen komentosarjat eivät voi lukea niitä.
- Käytä suojattua: Lähetä evästeet vain HTTPS:n kautta kutsumalla setSecure(true).
- Käytä SameSite-sivustoa: Määritä SameSite-attribuutti (Lax tai Strict) säilön tai vastausotsikoiden kautta sivustojen välisten pyyntöjen väärentämisen estämiseksi.
- Pidä arvot pieninä: Tallenna tunniste evästeeseen ja säilytä tiedot palvelimen puolella olevassa tallennustilassa.
- Aseta tarkka voimassaoloaika: Käytä setMaxAge-funktiota ennustettavan toiminnan saavuttamiseksi eri selaimissa.


