Tomcat não finaliza a sessão

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:

&lt;BODY  onUnload=&quot;windowOnUnLoad&#40;window&#41;;&quot;&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 =]