Tomcat não finaliza a sessão

2 respostas
R

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 ?

2 Respostas

S

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
<aside class="quote no-group">
<blockquote>
edit_launch.jsp?local=free"
</blockquote>
</aside>
–>Invalidando a Sessão
<code>if &#40;request.getParameter&#40;"local"&#41;.equals&#40;"free"&#41;&#41;&#123;
	session.invalidate&#40;&#41;;
</code>
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,
R

Marcella Spirulit@

eu consegui “capturar” o evento de fechar o navegador pelo X da seguinte maneira:

na tag <body> eu coloquei assim:

&lt;BODY  onUnload="windowOnUnLoad&#40;window&#41;;"&gt;

e no método windowOnUnload eu escrevi o seguinte:

function windowOnUnLoad&#40;window&#41; &#123;
   	try&#123;
		if &#40;window.screenTop &gt; 9999&#41;&#123;
			window.open&#40;'EndSession.do','','width=1,height=1,scrollbars=0,status=0,toolbar=0,resizable=0,fullscreen=0'&#41;;
			return 1;
		&#125;
	   	return 0;
	&#125; catch &#40;e&#41;&#123;&#125;
&#125;

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 =]

Criado 6 de julho de 2005
Ultima resposta 6 de jul. de 2005
Respostas 2
Participantes 2