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?? :?: 
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?? :?: 
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!! 
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!