Maison >Java >javaDidacticiel >Comment générer un jsessionid
Jsessionid est juste le nom de Tomcat pour sessionid, qui est en fait sessionid, il ne peut pas être appelé jsessionid dans d'autres conteneurs.
Tout d'abord, parlons de la création d'objets de session dans le développement Web et du mécanisme opérationnel de génération et de renvoi de l'ID de session au client.
Le L'objet de session est accédé pour la première fois par le client. Lorsque, créez un nouvel objet de session. Et générez un sessionId en même temps, et dans cette réponse, le sessionId est renvoyé à la mémoire du navigateur client sous la forme d'un message de réponse ou renvoyé au client sous la forme d'une réécriture de l'URL pour maintenir la session entière, tant que l'objet de session côté serveur n'est pas détruit, lorsque request.getSession() est appelé à l'avenir, l'objet de session généré par le Le côté serveur sera directement récupéré en fonction du sessionId du client et renvoyé. Il ne sera pas recréé à moins que l'objet de session sessionId ne soit récupéré.
Ce qui suit est testé sous IE, car un BUG de IE6.0 est que les paramètres de confidentialité d'IE utiliseront toujours des cookies de session pour enregistrer l'ID de session même lorsque tous les cookies sont bloqués. Par conséquent, les éléments suivants sont tous basés sur la session. les cookies.
(1). Lorsque le serveur n'est pas fermé et pendant le délai de destruction de l'objet de session, lorsque le client demande à nouveau le servlet ou le jsp côté serveur, l'ID de session généré dans la première requête sera ajouté dans le fichier. en-tête de requête et envoyé au serveur, après avoir reçu le sessionId, le serveur recherchera (ce processus est transparent) l'objet de session correspondant au serveur et renverra directement l'objet de session. A ce moment, il ne recréera pas de sessionId. .Nouvel objet de session.
(2). Lorsque le serveur est fermé (l'objet de session précédemment généré mourra également), ou une fois que l'objet de session aura dépassé son temps de destruction, la fenêtre du navigateur ne se fermera pas et se fermera. être parcouru ici. Lorsque la fenêtre du serveur demande à nouveau le servlet et le jsp côté serveur, le sessionId (le sessionId généré lorsque le serveur est fermé ou la session est détruite) sera également envoyé au côté serveur. objet de session correspondant basé sur le sessionId, mais à ce moment l'objet de session n'existe plus. À ce moment, un nouvel objet de session sera régénéré, un nouveau sessionId sera généré et le sessionId nouvellement généré sera également envoyé au navigateur. mémoire sous la forme d'un message de réponse.
(3) . Lorsque le serveur n'est pas fermé et que l'objet de session est dans son délai de destruction, lorsqu'une page jsp est demandée au client, la fenêtre du navigateur est affichée. fermé. À ce moment, le sessionId dans sa mémoire est également détruit et le serveur est à nouveau demandé lors de l'utilisation d'un servlet ou de jsp, un sessionId sera régénéré dans le navigateur client et stocké dans la mémoire de navigation
. En résumé, le workflow de jsessionid peut être simplement représenté par le schéma suivant :
Recommandations d'apprentissage associées : bases de Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!