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.

  • 🍪 Definizione: I cookie JSP sono file di testo con valori chiave memorizzati sul dispositivo client e letti tramite l'oggetto richiesta a ogni successiva chiamata HTTP.
  • 🔐 Flag di sicurezza: L'impostazione degli attributi Secure, HttpOnly e del moderno SameSite protegge i cookie JSP da intercettazioni, accessi tramite script e falsificazione di richieste tra siti.
  • Controllo a vita: Il metodo setMaxAge decide se un cookie JSP deve rimanere memorizzato sul disco o essere rimosso automaticamente al termine della sessione del browser.
  • API standard: La classe javax.servlet.http.Cookie, con i metodi response.addCookie e request.getCookie, gestisce la creazione, la trasmissione, il recupero e la cancellazione dei cookie nelle servlet 4.x e 5.x.
  • 🧪 Esempio pratico: Una demo di due pagine relativa a nome utente ed e-mail mostra come vengono creati, inviati, mantenuti in memoria per dieci ore e letti alla richiesta successiva i cookie JSP.

Cookie in JSP con esempio

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

  1. 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.
  2. 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.

  1. Crea l'oggetto Cookie JSP utilizzando il costruttore Cookie.
  2. Configura gli attributi dei cookie, in particolare l'età massima, il percorso e i flag di sicurezza.
  3. 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.

Metodi relativi ai cookie JSP

Metodi relativi ai cookie JSP

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.

DOMANDE FREQUENTI

I cookie JSP sono piccoli file di testo che memorizzano dati nel browser del client. Le pagine JSP li utilizzano per la sessione. tracre, memorizza le preferenze dell'utente, supporta lo stato di accesso e potenzia l'analisi su più richieste HTTP alla stessa applicazione web.

Contrassegna i cookie come HttpOnly in modo che gli script non possano leggerli, chiama setSecure(true) in modo che viaggino solo tramite HTTPS e configura l'attributo SameSite come Lax o Strict per ridurre il rischio di cross-site request forgery nei browser moderni.

Crea un nuovo cookie con lo stesso nome e percorso, imposta il suo valore su una stringa vuota, chiama setMaxAge(0) e aggiungilo alla risposta con response.addCookie. Il browser rimuoverà quindi immediatamente il cookie corrispondente già memorizzato.

Un cookie JSP persistente ha una durata massima positiva e viene memorizzato su disco fino alla sua scadenza. Un cookie di sessione ha una durata massima negativa, risiede solo nella memoria del browser e viene rimosso alla chiusura della finestra del browser.

Le analisi basate sull'intelligenza artificiale possono valutare il traffico dei cookie in tempo reale, segnalare gli identificativi di sessione rubati, rilevare salti di geolocalizzazione anomali e attivare l'autenticazione a più fattori. I modelli di machine learning aiutano anche a ottimizzare le policy SameSite, HttpOnly e Secure in base ai modelli di attacco osservati.

Sì. Gli assistenti basati sull'IA possono analizzare il codice JSP e Servlet legacy, riscrivere le chiamate javax.servlet.http.Cookie per jakarta.servlet.http.Cookie in Servlet 5.x, aggiungere i flag SameSite e HttpOnly e suggerire metodi di archiviazione più sicuri per gli identificatori di sessione senza compromettere la logica applicativa esistente.

Riassumi questo post con: