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?
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
gustavoknzPJ
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
TchePJ
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
gustavoknzPJ
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
gustavoknzPJ
mas será q vale a pena implementa um Listener soh pra isso??
Vc deu uma olhada lá?
No método public void sessionDestroyed(HttpSessionEvent arg0), você chama um método para atualizar o seu bd.
N
New_Radical
Na classe HttpSessionEvent tem o método getSession().
[]'s
N
New_Radical
Acho que sim!
N
New_Radical
“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!
N
New_Radical
“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.