Quando a sessão será expirada?
-
20-09-2019 - |
Pergunta
Defino o tempo limite da sessão como 5 minutos no web.xml. E depois que a sessão expirou sessionDestroyed () será executada.
Mas eu quero que a sessão esteja viva enquanto a janela do navegador ainda estiver lá. Portanto, em cada página JSP, há um código JavaScript que visita uma imagem no servidor a cada 100 segundos. Idéia básica sobre esta parte pode ser encontrada emhttp://www.intelliproject.net/articles/showarticle/index/js_session_expired
No entanto, o sessionDestroyed () ainda será executado em 5 minutos. Aqui está a minha pergunta, por que o evento SessionTimeout é acionado, embora eu continue visitando -o a cada 100 segundos?
Solução
Usando Firebug, abra a guia Net e observe a solicitação JavaScript. Você deveria estar recebendo HTTP 200
Para cada imagem, e cada URL deve ter números aleatórios anexados até o final. Você provavelmente deve apenas usar um registro de data e hora, em vez de números aleatórios, pois números aleatórios podem eventualmente repetir e registrar o usuário.
Você tem uma página de exemplo em que isso está acontecendo?
Outras dicas
- Verifique se a chamada JS é executada - não há erros de JS (console console de erros) e que 200 sejam retornados
- Não use o parâmetro aleatório no final da imagem - isso não é garantido para ignorar o cache. ISTead Defina os cabeçalhos de controle Expires / Cache do recurso acessado
- Não use uma imagem, use um arquivo de texto vazio (JSP). Você também pode definir manualmente os cabeçalhos para lá.