Question

J'ai toujours pris pour acquis le JSESSIONID cookie créé pour chaque nouvelle demande d'un client donné lors du développement d'applications utilisant la spécification de servlet.Mais après y avoir réfléchi un peu, il n'est pas plus logique que le conteneur de servlet crée uniquement un en-tête de cookie. après la session a été demandée et créée en code ?Pour les clients dont les cookies sont désactivés, cela ne finira-t-il pas par créer un nouveau HttpSession pour chaque demande faite ?

Veuillez me faire savoir si la question n'est toujours pas claire afin que je puisse la modifier.TIA.

Était-ce utile?

La solution

Une nouvelle session ne sera pas créée par défaut par le conteneur de servlet à moins que le servlet ne la crée explicitement.Ce n'est pas parce que dans l'en-tête un JSEESIONID est renseigné qu'il doit y avoir une session sur le serveur.Une exception à cela concerne les JSP qui créent par défaut une session s'il n'y en a pas, sauf si <%@ page session="false" %>

Pour ce qui est de ne pas activer les cookies :

Un conteneur Web peut utiliser plusieurs méthodes pour associer une session à un utilisateur, qui impliquent tous le passage d'un identifiant entre le client et le serveur.L'identifiant peut être maintenu sur le client en tant que cookie, ou le composant Web peut inclure l'identifiant dans chaque URL qui est renvoyé au client.

Si votre application utilise des objets de session, vous devez vous assurer que le suivi de session est activé en ayant les URL de réécriture de l'application chaque fois que le client désactive les cookies.Vous le faites en appelant la méthode Encodeurl (URL) de la réponse sur toutes les URL renvoyées par un servlet.Cette méthode inclut l'ID de session dans l'URL uniquement si les cookies sont désactivés;Sinon, il renvoie l'URL inchangé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top