Comment vérifier si une session est invalide
-
10-07-2019 - |
Question
Comment vérifier si une session est invalide ou non? Il n'y a pas de méthode dans la API .
Est-ce la même chose que isNew ()
? Et quelle est la différence sinon?
La solution
Si vous souhaitez savoir s'il est valide en fonction d'une requête:
request.isRequestedSessionIdValid()
or
HttpSession sess = request.getSession(false);
if (sess != null) {
// it's valid
}
Si vous avez stocké une référence à la session et devez valider, je le ferais
try {
long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
// it's invalid
}
Autres conseils
isNew ()
est vrai uniquement si cette session n'a pas encore été acceptée par le client (c'est-à-dire qu'elle vient d'être créée et que JSESSIONID n'a pas encore été envoyée, ou si elle a été envoyée, le client n'a pas t le renvoyer, donc le serveur ne le sait pas et a créé une autre session)
À toutes fins utiles, oui. Cependant, une exception IllegalStateException sera levée si elle est appelée dans une session invalidée au cours du même cycle de requête-réponse.