Expirar a Sessão + Operação

4 respostas
derheimen

Galera, tenho uma aplicação que controla o tempo que o usuário fica na aplicação sem realizar nenhuma requisição, se passar 10 minutos a sessão ira expirar.

Implementei este recurso no web.xml, segue o código abaixo:

<session-config>
	<session-timeout>10</session-timeout>
</session-config>

Funciona, mas só que quando a sessão expirar, preciso executar uma operação que faça um update no registro do usuário e coloca-o como não logado.

Depois que o usuário autenticou na aplicação adiciono um objeto na sessão contendo, as informações deste usuário(Codg, login, permissões, etc…)., mas quando a sessão expirar quero pegar este objeto da sesão e realizar esta operação de logoff.

Como faço para capturar este objeto e executar uma operação quando a sessão expirar ?

4 Respostas

derheimen

Achei aqui uma interface javax.servlet.http.HttpSessionListener.

Exitem dois métodos:
Um para quando a sessão é criada
E outro para quando a sessão é destruida.

Existe esta outra tb, javax.servlet.http.HttpSessionBindingListener.

Ela tem dois métodos:
Um para quando um objeto é vinculado na sessão
E outro para quando ele é desvinculado.

Mas não estou sanbendo como utilizar … Devo implementar a interface e mapear a classe no web.xml ?

furutani

No seu caso que voce quer executar algo quando a sessão expira use o HttpSessionListener.
Voce cria uma classe e implementa essa interface, ela te dá 2 metodos uma é a sessionDestroyed (HttpSessionEvent se)
dentro desse metodo vc implementa o update.
e depois vc declara ela no web.xml

<listener> <listener-class> com.listeners.MySessionListener </listener-class> </listener>

B

Ai galera, beleza?

Gostaria que me explicassem a diferença ou semelhança entre filter e listener.

Li alguns post em alguns sites, mas nao entendi.

Obrigado.

J

De uma olhada sobre HttpSessionActivationListener.
Implemente esses dois metodos
-sessionDidActivate(HttpSessionEvent se)
-sessionWillPassivate(HttpSessionEvent se)

Criado 4 de abril de 2007
Ultima resposta 4 de abr. de 2007
Respostas 4
Participantes 4