Domanda

Come verificare se una sessione non è valida o no? Non esiste alcun metodo nell' API .

È lo stesso di isNew () ? E qual è la differenza se no?

È stato utile?

Soluzione

Se vuoi sapere se è valido in base a una richiesta:

request.isRequestedSessionIdValid()

  or

HttpSession sess = request.getSession(false);
if (sess != null) {
   // it's valid
}

Se hai memorizzato un riferimento alla sessione e devi convalidarlo, lo farei

try {
  long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
  // it's invalid
}

Altri suggerimenti

isNew () è vero solo se questa sessione non è stata ancora accettata dal client (ovvero è stata appena creata e JSESSIONID non è stata ancora inviata o se è stata inviata, il client non ha fatto ' t rispedirlo, quindi il server non lo conosce e ha creato un'altra sessione)

A tutti gli effetti, sì. Tuttavia, genererà IllegalStateException se chiamato in una sessione invalidata nello stesso ciclo richiesta-risposta.

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