Encerrar session quando fechar página

Tenho uma aplicação que trabalha com session, funciona assim: como se fosse p/ disponibilizar informações de cidades entao tenho que saber qual cidade o usuario entrou p/ pegar o codigo da cidade no MB e listar as informações. Acontece que preciso encerrar automatico essa session quando o usuario fecha a página. Até criei um botão sair p/ encerrar e redirecionar e funciou certinho mas muitos usuario não clica nele e a session acaba ficando aberta carregando o site que chega a cair a vezes.
Estou trabalhando com jsf 2.1 e Primefaces.

esse problema ja eh antigo e nao resolvido

se vc usar html5 pode usar o websockets q avisa qndo o usuario fecha o navegador, nunca testei.

outra forma eh vc fazer um codigo javascript q fica avisando de tempos em tempos que o usuario esta com o navegador aberto, qndo o aviso nao vier mais quer dizer q ele fechou o navegador

[]'s

Fabricio,

Espero ter entendido certo, vc quer saber quando o usuário clicou no “X” do navegador?
Se for isso tem algumas soluções javascript. veja:

<html>
   <head>
      <title>Teste</title>
      <script language="javascript">
      function sair(){
         window.open('chama_alguma_acao');
      }
   </script>
   </head>
   <body onUnload="sair();">
   </body>
</html>

robinsonbsilva
Infelizmente isso não funciona, pois esse evento so é disparado quando o usuario troca de site, não quando clica no X (fechar) do navegador

[]'s

:oops:

Não deu!!