Soubory cookie v JSP s příkladem
⚡ Chytré shrnutí
JSP cookies jsou malé textové soubory uložené v klientském prohlížeči, které pomáhají JSP aplikacím track relací, pamatovat si uživatelské preference a personalizovat odpovědi napříč více HTTP požadavky pomocí rozhraní API javax.servlet.http.Cookie a standardních hlaviček odpovědí.

Co jsou JSP soubory cookie?
JSP cookies jsou malé textové soubory, které webový server založený na JSP požádá klientský prohlížeč o uložení na uživatelském zařízení. Protože HTTP je bezstavový protokol, poskytují JSP cookies jednoduchý, standardizovaný způsob, jak si mezi požadavky zapamatovat informace, jako je stav přihlášení, výběr jazyka, téma nebo obchod.ping identifikátory košíků.
- JSP soubory cookie jsou textové soubory ukládané prohlížečem na klientském počítači.
- Jsou zvyklí tracinformace k pro správu relací, personalizaci a analýzy.
- JSP podporuje HTTP cookies prostřednictvím základní technologie Servlet a třídy javax.servlet.http.Cookie.
- JSP soubory cookie jsou transmituvnitř hlaviček HTTP požadavků a odpovědí u každého odpovídajícího požadavku.
- Pokud je prohlížeč nakonfigurován tak, aby přijímal soubory cookie, ukládá je na disk do data vypršení platnosti nastaveného parametrem setMaxAge.
Proč používat soubory cookie JSP?
Vývojáři JSP se spoléhají na soubory cookie, protože HTTP požadavky jsou na sobě nezávislé. Bez souborů cookie JSP by server nevěděl, že dva požadavky patří stejnému návštěvníkovi. Soubory cookie v JSP tento problém řeší s minimálním stavem na straně serveru.
- Zasedání trackrál: Soubor cookie JSESSIONID propojuje více zobrazení stránek do jedné logické relace.
- Přizpůsobení: Soubory cookie JSP mohou ukládat předvolby jazyka, motivu nebo rozvržení.
- Pomocníci pro ověřování: Tokeny funkce „Zapamatovat si mě“ a stav přihlášení se často nacházejí v souborech cookie s povolenými příznaky HttpOnly a Secure.
- Analytics: Soubory cookie v JSP zaznamenávají vracející se návštěvníky, odkazující stránky a konverzní cesty.
Typy souborů cookie JSP
- Trvalý soubor cookie: Trvalý soubor cookie JSP zůstává v zařízení uložen po dobu nastavenou parametrem setMaxAge. Pomáhá aplikaci zapamatovat si předvolby a přihlašovací údaje i po restartu prohlížeče.
- Dočasný soubor cookie: Netrvalý soubor cookie JSP, nazývaný také soubor cookie relace, se ukládá pouze v paměti prohlížeče a je odstraněn, když uživatel zavře prohlížeč. Většinou se používá pro krátkodobé sezení. trackrál.
Metody souborů cookie JSP
Třída javax.servlet.http.Cookie nabízí následující metody, které se nejčastěji používají při práci s JSP cookies.
-
public void setDomain(Řetězec doména)
Tato metoda nastavení souborů cookie JSP nastavuje doménu, na kterou se soubor cookie JSP vztahuje.
-
veřejný řetězec getDomain()
Tato metoda JSP get cookie vrací doménu, na kterou se JSP cookie vztahuje.
-
public void setMaxAge(int expirace)
Nastavuje maximální dobu v sekundách před vypršením platnosti souboru JSP Cookie. Hodnota nula soubor cookie smaže a záporná hodnota z něj udělá soubor cookie relace.
-
public int getMaxAge()
Vrací maximální stáří JSP cookie v sekundách.
-
veřejný řetězec getName()
Vrací název JSP cookie.
-
public void setHodnota(řetězec hodnota)
Nastavuje hodnotu přidruženou k souboru cookie JSP.
-
public String getHodnota()
Vrátí hodnotu přidruženou k souboru cookie JSP.
-
public void setPath(Řetězec cesta)
Tato metoda set cookie v JSP nastavuje URL cesta, na kterou se soubor cookie vztahuje.
-
veřejný řetězec getPath()
Vrací to URL cesta, na kterou se vztahuje soubor JSP Cookie.
-
public void setSecure(boolean flag)
Označí soubor JSP Cookie tak, aby byl odesílán pouze přes šifrovaná připojení HTTPS.
-
public void setComment(String cmt)
Popisuje účel souboru JSP Cookie.
-
veřejný řetězec getComment()
Vrací komentář popisující soubor cookie JSP.
Jak zacházet s JSP cookies
Práce s JSP cookies zahrnuje tři opakovatelné kroky. Stejný vzorec se používá pro stav přihlášení, přepínání motivů a obchod.ping vozíky.
- Vytvořte objekt JSP Cookie pomocí konstruktoru Cookie.
- Nakonfigurujte atributy souborů cookie, zejména maximální stáří, cestu a bezpečnostní příznaky.
- Odešlete soubor cookie do prohlížeče prostřednictvím záhlaví odpovědi HTTP pomocí response.addCookie.
Jak vytvořit soubor cookie JSP
Nový JSP soubor cookie se vytvoří vytvořením instance javax.servlet.http.Cookie s názvem a hodnotou. Soubor cookie se poté připojí k objektu response, aby si jej prohlížeč uložil.
Jak číst soubory cookie JSP
Při každém dalším požadavku prohlížeč odešle zpět na server odpovídající soubory JSP Cookies. Stránka je přečte voláním metody request.getCookies, která vrátí pole objektů Cookie. Aplikace poté iteruje přes pole, vyhledá každou cookie podle názvu a použije její hodnotu.
Jak odstranit soubor cookie JSP
Pro odstranění souboru cookie JSP server vytvoří nový soubor cookie se stejným názvem, nastaví jeho hodnotu na prázdný řetězec, zavolá funkci setMaxAge s nulou a přidá ji do odpovědi. Prohlížeč poté uložený soubor cookie odstraní při další odpovědi.
Příklad souborů cookie v JSP
V tomto příkladu souborů cookie JSP aplikace vytvoří dva soubory cookie pro uživatelské jméno a e-mail, uchová je aktivní deset hodin a poté načte hodnoty zpět na druhé stránce s názvem 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>
Vysvětlení Code
Action_cookie.jsp
Code Řádek 10 až 15: Stránka deklaruje formulář, který se odesílá do action_cookie_main.jsp. Dvě vstupní pole, uživatelské jméno a e-mail, shromažďují data od uživatele spolu s tlačítkem pro odeslání.
Action_cookie_main.jsp
Code Řádek 6 až 9: Dva objekty cookie, username a email, jsou vytvořeny pomocí request.getParameter pro čtení hodnot odeslaných formulářem.
Code Řádek 12 až 13: Metoda setMaxAge se volá s číslem 60 vynásobeným 60 vynásobeným 10, což nastaví životnost každé JSP cookie na deset hodin.
Code Řádek 16 až 17: Tyto dva soubory cookie jsou k odpovědi připojeny pomocí response.addCookie. Prohlížeč je poté odešle zpět při následných požadavcích a server je načte pomocí request.getCookies nebo request.getParameter pro aktuální požadavek.
Výstup
Po spuštění výše uvedeného kódu získáte následující výstup.
Po spuštění souboru action_cookie.jsp prohlížeč zobrazí dvě pole, uživatelské jméno a e-mail. Poté, co je uživatel vyplní a klikne na tlačítko Odeslat, soubor action_cookie_main.js vytvoří na serveru odpovídající soubory cookie JSP, uloží je na klienta a zobrazí hodnoty, čímž potvrdí, že soubory cookie byly úspěšně vytvořeny.
Nejlepší postupy pro soubory cookie JSP
Moderní webové aplikace by měly zacházet s JSP cookies jako s citlivými bezpečnostními daty. Následující postupy jsou v souladu se současnými nasazeními Servlet 4.x a Servlet 5.x.
- Použít pouze Http: Označte ověřovací soubory cookie jako HttpOnly, aby je skripty na straně klienta nemohly číst.
- Použijte Zabezpečené: Odesílejte soubory cookie pouze přes HTTPS voláním setSecure(true).
- Použijte SameSite: Nakonfigurujte atribut SameSite (Lax nebo Strict) prostřednictvím kontejneru nebo záhlaví odpovědi, abyste zmírnili riziko padělání požadavků napříč weby.
- Udržujte malé hodnoty: Uložte identifikátor do souboru cookie a uchovávejte data v úložišti na straně serveru.
- Nastavit explicitní platnost platnosti: Pro předvídatelné chování napříč prohlížeči použijte setMaxAge.


