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?

Foi útil?

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

  1. Verifique se a chamada JS é executada - não há erros de JS (console console de erros) e que 200 sejam retornados
  2. 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
  3. Não use uma imagem, use um arquivo de texto vazio (JSP). Você também pode definir manualmente os cabeçalhos para lá.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top