Verificar quando o sistema for fechado

Olá a todos, estou desenvolvendo um sistema e nesse sistema tenho um contador de horas, quando o usuario inicia o seu contador, o tempo começa a corre, tipo um cronometro, mas tenho q controlar quando o usuario tentar fechar o browser verificar se o contador de horas está rolando, caso esteja eu exibo uma msg ou faço qq outra coisa.
Alguem tem idéia de como fazer isso? sites, tutoriais, artigos, caminho a pesquisar… qq coisa q ajude!!

acho q um listener do tomcat resolveria, mas não sei como fazer…

obrigado!

mcbarsotti,

Eu não tenho certeza, mas eu acho que você não tem como controlar a ação de fechar do brownser.

Acredito que o ideal era você controlar pelas ações Login/Logout. Talvez através de um atributo que ficasse na sessão.

Tipo: Quando você faz login seta esse atributo com a hora atual, e quando faz o logoff, você compara e as datas e verifica o tempo que o usuário ficou logado, e salva no banco ou trata a informação da maneira que você achar melhor.

Esta é uma dica.

Caso tenha um jeito de trata a ação de fechar do brownser, eu também gostaria de saber como.

Boa sorte.

a ação de verificar quando o browser for fechado da para fazer via javascript, a idéia do login e logout o sistema já está utilizando, mas quem garante q o usuario vai clicar no logout…

obrigado pela dica, e fico no aguardo de mais dicas!!!

Obrigado!

Veja as propriedades onUnload e onBeforeUnload da tag body.

Até!

já conheço essas propriedades e elas não satisfazem oque estou precisando!

Obrigado pela dica, e que venham mais dicas :lol:

Quando ele for fechar, vai ter que chamar o evento onBeforeUnLoad, nesse evento, faça uma chamada a uma servlet que retorne o valor do contador e se quiser que não feche o browser, retorne false para o browser.

Até!

sim, mas quando ele clicar em um link qualquer dentro da aplicação, esse evento tb será disparado não é?
ou estou enganado?? :?: :stuck_out_tongue:

Obrigado!

[quote=mcbarsotti]sim, mas quando ele clicar em um link qualquer dentro da aplicação, esse evento tb será disparado não é?
ou estou enganado?? :?: :stuck_out_tongue:

Obrigado![/quote]
Sim.
Use a sua aplicação dentro de um frame e o evento onUnLoad() fica atrelado ao body do frame.

hummm, não tem nenhuma maneira mais elegante de se fazer isso, pois acho q não é viavel colocar a aplicação inteira dentro de um iframe, e caso eu coloque, com toda a certesa na homologação será barrado!! :cry:

mais alguma idéia pessoal??

Obrigado!

Não é iframe, é um frame normal que se monta com 3 ou mais htmls, talvez de o mesmo feito.
Eu não vejo outra maneira e nem o pessoal da equipe senão eles não tinham usado frames.

opa, escrevi errado, é frame msm… foi mal…

vou ver se consigo fazer de outra maneira, tem que ter alguma… caso eu consiga, posto a solução aqui!!!

Obrigado, e caso alguem tenha mais alguma dica, será muito bem vinda!!!

Obrigado!