Notificar servidor antes de fechar a página

2 respostas
ruyoutor

Fala ai galera.

Existe alguma forma de eu enviar uma mensagem ao servidor apos o usuário clicar no X dá página ?
Porque se eu colocar um botão de fechar na página eu consigo, porem não posso contar que o infeliz vai clicar nesse botão toda vez que quiser fechar a página.

Se alguem souber eu agradeço.

vlw!

2 Respostas

sergiotaborda

ruyoutor:
Fala ai galera.

Existe alguma forma de eu enviar uma mensagem ao servidor apos o usuário clicar no X dá página ?
Porque se eu colocar um botão de fechar na página eu consigo, porem não posso contar que o infeliz vai clicar nesse botão toda vez que quiser fechar a página.

Se vc está fazendo isso para controlar a sessão o usuário de alguma forma ( por exemplo, terminá-la) dê uma olhada no listeners de sessão padrão da API de servlets.

ruyoutor

Ná verdade é exatamente para isso gerenciar a sessão.
O que quero fazer.
Tenho que impedir que o usuario se log mais de uma vez no sistema, então pensei em fazer da seguinte forma.
Toda vez que ele se logar eu incluo o objeto usuario na sessão e com isso o container executará o método attributeAdded da interface HttpSessionAttributeListener que foi implementada por uma classe minha. Nesse método eu vou atualizar o registro desse usuário no banco para logado e quando ele tentar logar de novo eu testo através do registro se ele está logado e se estiver eu não deixo ele logar de novo. Se ele fizar logout no sistema corretamente eu removo o objeto da sessão e o método attributeRemoved atualiza o registro no banco para não logado. Sendo que se ele fechar a página pelo browser o servidor não vai saber que ele saiu do sistema e então, eu vou precisar esperar até que a sessão expire para atualizar o registro no banco como não logado.Só que se esse infeliz tentar logar de novo antes da sessão antiga expirar o sistema não vai deixar.

O que eu pensei em fazer.
Eu iria guardar no banco o id da sessão quando ele fizesse logon e quando acontecer de ele tentar logar e o registro ainda estiver como logado eu localizo a sessão através do id e derrupo o logon antigo. Só que se por acaso ele tiver dado a senha dele para alguem e ao invez da sessão estar esperando para ser removida ela estiver sendo usada por outra pessoa que esteja logado no sistema com o mesmo login eu vou derrubar essa pessoa do sistema.

Por isso que queria uma forma de notificar o servidor quando ele fechar a aplicação no X dá pagina. á tentei utilizar o evento window.onclose mais não rolou.

Se não existir eu vou fazer da forma que eu pensei mesmo.

uffa! rsrsr
Obrigado.

Criado 27 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 2
Participantes 2