O meu tomcat (5.0.28) segura a sessão depois que o usuário fecha o navegador.
Eu fiz o seguinte esquema: ao fechar o navegador, um código javascript é executado que chama uma action. Essa action fecha a sessão com o servidor Applinx (uma espécie de middleware que uso na empresa) e remove todos os atributos da request e da sessão. Mas, como disse, o tomcat “segura” essa sessão até dar timeout. Já tentei chamar session.invalidate() mas ele continua mantendo.
alguém sabe por que ?
Olá …
Para encerrar uma sessão da minha página eu criei um botão (Sair) que quando ele é "Clicado" , fecha a sessão da seguinte forma:
–> Quando botão é “Clicado” passo a seguinte URL
–>Invalidando a Sessão
if (request.getParameter("local").equals("free")){
session.invalidate();
Agora eu queria saber se existe alguma forma de realizar algum evento no momento que o usuário fecha o browser pelo x. Por exemplo, quando ele sair do sistema (pelo x do browser) apagar o id do usr no banco.
Abraços,[/code]
Marcella Spirulit@
eu consegui “capturar” o evento de fechar o navegador pelo X da seguinte maneira:
na tag <body> eu coloquei assim:
<BODY onUnload="windowOnUnLoad(window);">
e no método windowOnUnload eu escrevi o seguinte:
function windowOnUnLoad(window) {
try{
if (window.screenTop > 9999){
window.open('EndSession.do','','width=1,height=1,scrollbars=0,status=0,toolbar=0,resizable=0,fullscreen=0');
return 1;
}
return 0;
} catch (e){}
}
Não conheço esse atributo screenTop, mas ele só passou nesse if ao fechar a janela… nas outras vezes que o evento unload do body é disparado (navegar de uma pagina para outra) ele não passa no if…
mas isso só funcionou no internet explorer. no firefox nao funcionou…
no meu caso, o que eu fiz foi chamar uma action em uma janela pequena (por isso os atributos width=1 e height=1) ao fechar o iexplore.
e daí depois de executar essa action… eu dou um forward para uma página q executa um session.invalidate(); e um window.close();
e… voltando ao meu problema… ele mantém essa sessão
e eu quero q ele finalize ela =]