Domanda

Ho sempre dato per scontato il cookie JSESSIONID creato per ogni nuova richiesta di un determinato client quando si sviluppano applicazioni utilizzando le specifiche del Servlet.Ma dopo averlo dato un po 'di pensiero, non è più logico per il contenitore del servlet per creare solo un'intestazione di cookie dopo la sessione è stata richiesta e creata nel codice?Per i clienti che hanno i loro cookie disabilitati, non finiranno per la creazione di un nuovo HttpSession per ogni richiesta effettuata?

Per favore fammi sapere se la domanda non è ancora chiara in modo da poterlo modificare.Tia.

È stato utile?

Soluzione

Una nuova sessione non verrà creata dal contenitore del servlet per impostazione predefinita a meno che il servlet non lo crea effettivamente esplicitamente. Solo perché nell'intestazione un jseesionid è popolato non significa che ci deve essere una seesa sul server. Un'eccezione a questo è in JSPS che per impostazione predefinita crea una sessione se non si è lì a meno che <% @ Pagina session="false"%>

Per quanto non avesse i cookie accesi:

.

Un contenitore web può usare diversi Metodi per associare una sessione con a utente, tutti che comportano il passaggio di un identificativo tra il cliente e il server. L'identificatore può essere mantenuto sul cliente come biscotto, o il componente web può includere il identificatore in ogni URL che è restituito al cliente.

Se la tua applicazione utilizza la sessione Oggetti, devi assicurarti che la sessione Il monitoraggio è abilitato con il applicazione riscrivere gli URL ogni volta che il Il client disattiva i cookie. Tu lo fai chiamando la risposta Metodo encodeurl (URL) su tutti gli URL restituito da un servlet. Questo metodo include l'ID della sessione nell'URL Solo se i cookie sono disabilitati; Altrimenti, restituisce l'URL invariato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top