HttpSessionListener

11 respostas
G

dae galera…

eu tenho um site q o usuario se loga, a sessão eh criada, tem um botao pra faze logoff td bonitinho… o problema eh qdo ele fecha o navegador ou simplismente da um reset, por exemplo!

Depois q a sessao do usuario fica invalida, eu tenho q altera um campo no meu Banco de Dados! Me falaram pra implementar o HttpSessionListener, mas como seria exatamente o código? Como ele atuaria? Estaria constantemente analisando as sessões e qdo elas se tornassem invalidas atualizaria meu BD?

Valeu!

11 Respostas

G

blz, mas eu quero saber como faço pra depois q a sessão expira (seja de QUALQUER forma) eu possa rodar um trexo de codigo atualizando meu BD.

Se o browser for fechado, o meu JSP eh morto o BD fica desatualizado, o q naum pode acontece de jeito nenhum!!!

G

o problema eh q pra atualiza-lo, eu necessito da identificação do usuario q estava logado (seu “nick”) e jah q a sessão tah inválida, como posso sabe qual usuario acabou de sair?!

T

Antes de mais nada, quero registrar aqui minha satisfação em entrar nessa comunidade. Espero que possamos trocar muitas idéias!

Vamos ao problema:
Criei o exemplo com a class Listener e ela funciona. No meu caso, a função dessa classe é simplesmente fechar a conexão com o BD ao terminar a sessão - utilizo uma design pattern para manter uma única conexão aberta com o BD durante toda a sessão. A minha pergunta é: será que a melhor maneira de fechar a conexão com o BD é através de um Listener? Claro que não estou utilizando pool do servidor, nem tão pouco frameworks de persistência.

Obrigado!

G

qual a vantagem de deixar a conexão aberta durante td a sessão?
no meu caso, sempre qdo tenho q fazer algo no BD, crio uma nova conexão e logo depois já fecho!

G

mas será q vale a pena implementa um Listener soh pra isso??

N

Dá uma olhada nessa Thread: http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=4454

N

Vc deu uma olhada lá?
No método public void sessionDestroyed(HttpSessionEvent arg0), você chama um método para atualizar o seu bd.

N

Na classe HttpSessionEvent tem o método getSession().

[]'s

N

Acho que sim!

N

“gustavoknz”:
qual a vantagem de deixar a conexão aberta durante td a sessão?
no meu caso, sempre qdo tenho q fazer algo no BD, crio uma nova conexão e logo depois já fecho!

A vantagem é não ficar criando e descriando novas conexões o tempo todo! :wink:

N

“gustavoknz”:
mas será q vale a pena implementa um Listener soh pra isso??
Tudo depende da aplicação que vc está fazendo.
Mas o que mais se usa, é um pool de conexões.

Criado 17 de maio de 2004
Ultima resposta 20 de mai. de 2004
Respostas 11
Participantes 3