Cookie in JSP con esempio
⚡ Riepilogo intelligente
I cookie JSP sono piccoli file di testo memorizzati nel browser del client che aiutano le applicazioni JSP track sessioni, memorizza le preferenze dell'utente e personalizza le risposte su più richieste HTTP utilizzando l'API javax.servlet.http.Cookie e le intestazioni di risposta standard.

Cosa sono i cookie JSP?
I cookie JSP sono piccoli file di testo che un server web basato su JSP chiede al browser del client di memorizzare sul dispositivo dell'utente. Poiché HTTP è un protocollo senza stato, i cookie JSP forniscono un modo semplice e standardizzato per ricordare informazioni tra le richieste, come lo stato di accesso, la scelta della lingua, il tema o il negozio.ping parametri del carrello.
- I cookie JSP sono file di testo semplice memorizzati sul computer del client dal browser.
- Sono abituati a track informazioni per la gestione delle sessioni, la personalizzazione e l'analisi.
- JSP supporta i cookie HTTP tramite la tecnologia Servlet sottostante e la classe javax.servlet.http.Cookie.
- I cookie JSP sono transmitinserito all'interno delle intestazioni di richiesta e risposta HTTP su ogni richiesta corrispondente.
- Quando il browser è configurato per accettare i cookie, li memorizza sul disco fino alla data di scadenza impostata tramite setMaxAge.
Perché utilizzare i cookie JSP?
Gli sviluppatori JSP si affidano ai cookie perché le richieste HTTP sono indipendenti l'una dall'altra. Senza i cookie JSP, il server non saprebbe che due richieste appartengono allo stesso visitatore. I cookie in JSP risolvono questo problema con uno stato lato server minimo.
- Sessione tracre: Un cookie JSESSIONID collega più visualizzazioni di pagina a un'unica sessione logica.
- Personalizzazione: I cookie JSP possono memorizzare le preferenze relative a lingua, tema o layout.
- Funzioni di supporto per l'autenticazione: I token "Ricordami" e lo stato di accesso spesso risiedono nei cookie con i flag HttpOnly e Secure abilitati.
- Analytics: I cookie in JSP registrano i visitatori di ritorno, i referrer e i percorsi di conversione.
Tipi di cookie JSP
- Cookie persistente: Un cookie JSP persistente rimane memorizzato sul dispositivo per il tempo impostato con setMaxAge. Aiuta l'applicazione a ricordare le preferenze e i dati di accesso anche dopo il riavvio del browser.
- Cookie non persistente: Un cookie JSP non persistente, chiamato anche cookie di sessione, risiede solo nella memoria del browser e viene rimosso quando l'utente chiude il browser. Viene utilizzato principalmente per sessioni di breve durata. tracre.
Metodi relativi ai cookie JSP
La classe javax.servlet.http.Cookie espone i seguenti metodi, utilizzati più frequentemente quando si lavora con i cookie JSP.
-
pubblico void setDomain(String domain)
Questo metodo JSP per impostare i cookie definisce il dominio a cui si applica il cookie JSP.
-
pubblica String getDomain()
Questo metodo JSP per ottenere i cookie restituisce il dominio a cui si applica il cookie JSP.
-
public void setMaxAge(int expiry)
Imposta il tempo massimo in secondi prima della scadenza del cookie JSP. Un valore pari a zero elimina il cookie, mentre un valore negativo lo trasforma in un cookie di sessione.
-
pubblico int getMaxAge()
Restituisce l'età massima del cookie JSP in secondi.
-
pubblica String getName()
Restituisce il nome del cookie JSP.
-
pubblico void setValue(String value)
Imposta il valore associato al cookie JSP.
-
public String getValue()
Restituisce il valore associato al cookie JSP.
-
pubblico void setPath(String path)
Questo metodo set cookie in JSP imposta il URL percorso a cui si applica il cookie.
-
public String getPath()
Restituisce il URL percorso a cui si applica il cookie JSP.
-
pubblico void setSecure(flag booleano)
Questo meccanismo contrassegna il cookie JSP in modo che venga inviato solo tramite connessioni HTTPS crittografate.
-
pubblico void setComment(String cmt)
Descrive lo scopo del cookie JSP.
-
pubblica String getComment()
Restituisce il commento che descrive il cookie JSP.
Come gestire i cookie JSP
Lavorare con i cookie JSP prevede tre passaggi ripetibili. Lo stesso schema viene utilizzato per lo stato di accesso, i cambi di tema e il negozio.ping carrelli.
- Crea l'oggetto Cookie JSP utilizzando il costruttore Cookie.
- Configura gli attributi dei cookie, in particolare l'età massima, il percorso e i flag di sicurezza.
- Invia il cookie al browser tramite le intestazioni di risposta HTTP utilizzando response.addCookie.
Come creare un cookie JSP
Un nuovo cookie JSP viene creato istanziando javax.servlet.http.Cookie con un nome e un valore. Il cookie viene quindi allegato all'oggetto di risposta in modo che il browser lo memorizzi.
Come leggere i cookie JSP
Ad ogni richiesta successiva, il browser invia al server i cookie JSP corrispondenti. La pagina li legge chiamando request.getCookies, che restituisce un array di oggetti Cookie. L'applicazione quindi scorre l'array, cerca ciascun cookie per nome e ne utilizza il valore.
Come eliminare un cookie JSP
Per eliminare un cookie JSP, il server crea un nuovo cookie con lo stesso nome, ne imposta il valore su una stringa vuota, chiama il metodo setMaxAge con valore zero e lo aggiunge alla risposta. Il browser rimuove quindi il cookie memorizzato alla risposta successiva.
Esempio di Cookie in JSP
In questo esempio di JSP Cookies, l'applicazione crea due cookie per nome utente ed email, li mantiene attivi per dieci ore e poi ne legge i valori in una seconda pagina chiamata 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>
Spiegazione di Code
Action_cookie.jsp
Code Dalla riga 10 alla 15: La pagina dichiara un modulo che viene inviato a action_cookie_main.jsp. Due campi di input, username ed email, raccolgono i dati dell'utente, insieme a un pulsante di invio.
Action_cookie_main.jsp
Code Dalla riga 6 alla 9: Vengono creati due oggetti Cookie, username ed email, utilizzando request.getParameter per leggere i valori inviati dal modulo.
Code Dalla riga 12 alla 13: Il metodo setMaxAge viene chiamato con 60 moltiplicato per 60 moltiplicato per 10, che imposta la durata di ciascun JSP Cookie a dieci ore.
Code Dalla riga 16 alla 17: I due cookie vengono allegati alla risposta tramite response.addCookie. Il browser li rimanda quindi alle richieste successive e il server li legge utilizzando request.getCookies o request.getParameter per la richiesta corrente.
Uscita
Eseguendo il codice sopra riportato si ottiene il seguente output.
Quando viene eseguito il file action_cookie.jsp, il browser mostra i due campi, username ed email. Dopo che l'utente li ha compilati e ha cliccato su Invia, il file action_cookie_main.jsp crea i corrispondenti cookie JSP sul server, li memorizza sul client e ne visualizza i valori, confermando che i cookie sono stati creati correttamente.
Migliori pratiche per i cookie JSP
Le moderne applicazioni web dovrebbero trattare i cookie JSP come dati sensibili dal punto di vista della sicurezza. Le seguenti pratiche sono in linea con le attuali implementazioni di Servlet 4.x e Servlet 5.x.
- Utilizzare HttpOnly: Contrassegna i cookie di autenticazione come HttpOnly in modo che gli script lato client non possano leggerli.
- Utilizza un sistema sicuro: Invia i cookie solo tramite HTTPS chiamando setSecure(true).
- Utilizza SameSite: Configura l'attributo SameSite (Lax o Strict) tramite le intestazioni del contenitore o della risposta per mitigare gli attacchi di cross-site request forgery.
- Mantieni i valori bassi: Memorizza un identificatore nel cookie e conserva i dati nella memoria lato server.
- Imposta una data di scadenza esplicita: Utilizza setMaxAge per ottenere un comportamento prevedibile su tutti i browser.


