Como verificar se a sessão é inválida
-
10-07-2019 - |
Pergunta
Como verificar se uma sessão é inválido ou não? Não existe um método no API .
É o mesmo que isNew()
? E qual é a diferença se não for?
Solução
Se você quer saber se é válido com base em um pedido:
request.isRequestedSessionIdValid()
or
HttpSession sess = request.getSession(false);
if (sess != null) {
// it's valid
}
Se você tiver armazenado uma referência para a sessão e necessidade de validar eu faria
try {
long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
// it's invalid
}
Outras dicas
isNew()
só é verdade se esta sessão ainda não foi aceite pelo cliente (ou seja, ele acabou de ser criada, e JSESSIONID não foi enviada ainda, ou se ele foi enviado, o cliente não enviá-lo de volta, então doesn servidor' t saber sobre isso e criou outra sessão)
Para todos os efeitos, sim. No entanto, ele irá lançar uma IllegalStateException se chamado em uma sessão invalidada no mesmo ciclo de solicitação-resposta.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow