Realmente o destroy nesse caso n�o funciona, pois s� existe uma instancia do servlet para todos os usu�rios. O que pode ser feito � criar um objeto que implemente a interface HttpSessionBindingListener e colocar esse objeto na sess�o do usu�rio. Qdo a sess�o expirar o m�todo valueUnbound dessa interface � chamado pelo WebContainer. Nele vc pode colocar o c�digo que remove o usu�rio do banco. Assim cada usu�rio possui um objeto pr�prio que pode ser executado ao final da sess�o, n�o importando se foi expirada (por tempo) ou invalidada (pelo usuario, chamando session.invalidate() ).
 
[]'s
Daniel Carneiro
----- Original Message -----
Sent: Wednesday, January 22, 2003 4:00 PM
Subject: Re: [enterprise-list] Java-Interbase

Sobre o uso de destroy(), acho que j� foram v�rias explica��es... agora, sobre saber se o indiv�duo est� on-line, d� pra controlar no contexto da aplica��o. At� o momento nunca precisei fazer isto, mas j� vi que � poss�vel. Se precisar de ajuda, posso ajud�-lo a pesquisar sobre o assunto.
 
[]'s
Cristofer
-----Mensagem Original-----
Enviada em: quarta-feira, 22 de janeiro de 2003 02:02
Assunto: [enterprise-list] Java-Interbase

Ol� estou montando uma p�gina para um trabalho de P�s Gradua��o, mas estou tendo alguns problemas.
Montei em servlet um esquema de seguran�a onde quando abro a p�gina principal, enviou para o banco Interbase o usu�rio que conectou e gero um n�mero aleat�rio, assim tenho controle de quem est� online no momento...
Mas quando fecho eu preciso tirar autom�ticamente o usu�rio que estava online do banco... coloquei o sequinte c�digo na fun��o destroy:
 
 public void destroy()
 {
  try
  {
  PreparedStatement ps3;
  ps3 = con.prepareStatement("Delete from ONLINE where LOGIN=?");
  ps3.clearParameters();
  ps3.setString(1,LOGIN);
  ps3.executeUpdate();
  ps3.close();
   con.close ();
  }
  catch (Exception e)
  {
   Mensagem = e.getMessage ();
   System.out.println(Mensagem);
  }
 }
 
funciona apenas quando reinicio o tomcat... como devo fazer para este comando funcionar no ato de fechar a p�gina???
 

Responder a