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?

Foi útil?

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
scroll top