Registrando Logout

5 respostas
G

Como faço pra registrar um logout??

Toda vez q um usuário loga no meu sistema, eu gravo o acesso dele, mas como faço para registrar tb o logout? Nem sempre o usuário vai sair clicando em Logout, e qdo isso não acontece, como registro?

Abraços

5 Respostas

J

O que você chama de “registrar”? Você quer gravar alguma coisa em algum lugar quando usuario deslogar? Se for, tente usar um HttpSessionListener, ele tem um metodo que é chamado quando a sessão é destruida:

http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpSessionListener.html

Mas se você quer só retirar os dados dele da sessão, é só chamar um sessao.invalidate() quando ele clicar em logout, se ele simplesmente sair sem clicar em logout a sessão vai ser destruida.

G

Mas qdo esse método é chamado, a sessão já está inválida ou só invalida qdo termina o método?

Pois eu precisaria gravar informações da sessão no banco de dados, sempre que o usuário terminasse a sessão, clicando em logout, fechando o browser ou de qualquer outra maneira.

Por “registrar” entenda o seguinte:
Toda vez que um usuário loga no sistema, eu gravo na tabela de acessos quem acessou, de onde acessou e qdo acessou. O mesmo deve acontecer qdo o usuário sair do sistema.

Vlw!!

V

O único detalhe seria com o problema da cache do Browser,pois não é só dar invalidate() no objeto session que vai dar logout do usuário,exemplo classíco é você dar Ctrll+F5 e o usuário volta de novo ao sistema,pois o Browser se encarrega se criar uma nova sessão.

G

Entaum qual seria uma solução pra esse problema?
Você disse o problema, mas ñ falou nda de como resolver…
Tem alguma idéia??

M

cara … esse listener ele fica escutando a sessão antes dela ser destruida ele executa o que estiver dentro do metodo… mas acho que é mais facil vc inmplementar isso na chamada do botão logout !!!
uma vez que essa chamada ja deve existir
abraços…

Criado 1 de fevereiro de 2007
Ultima resposta 15 de fev. de 2007
Respostas 5
Participantes 4