Timer et servlet

Biggooch Messages postés 23 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 mars 2005 - 7 mars 2005 à 10:15
Biggooch Messages postés 23 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 mars 2005 - 7 mars 2005 à 19:41
Bonjour, j'ai un problème que je n'arrive pas à résoudre...

J'ai une servlet qui effectue une série d'opérations. Chaque "client"
qui se connecte à ma servlet doit s'authentifier. Une fois authentifié,
le client dipose d'une "session" de 5 minutes. Je dois faire deux
opérations :


<li>quand le client arrive à 30 secondes de la fin de sa session, la
servlet doit étendre la validité de la session en ajoutant 5 min.</li>
<li>Quand le client se déconnecte, la servlet doit tuer la session.</li>

Comment puis-je initialiser un timer dans une servlet ? Ne connaissant
pas vraiment le fonctionnement côté serveur, si il y a plusieurs
client, ils auront chacun leur timer perso ?



Merci d'avance,

2 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
7 mars 2005 à 11:32
Salut,

J2EE définit une session par utilisateur. Cette session a un timeout paramétrable (5 min par exemple). Ce timeout est remis à zéro pour chaque appel de la méthode request.getSession(). Donc tu n'as pas vraiment besoin d'un timer pour la gestion de la session. De plus je ne comprends pas l'intérêt du 1er point (extension de la validité de la session).
A la déconnexion, tu as la méthode session.invalidate() qui détruit la session de l'utilisateur.
0
Biggooch Messages postés 23 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 mars 2005
7 mars 2005 à 19:41
Pardon, je me suis mal exprimé... La session dont je parle n'est pas une session liée au navigateur. En fait, le client doit se logguer sur une DB distante, et il y a un mécanisme de protection. Si l'utilisateur se déconnecte brutalement, sans fermer la session ouverte sur la DB, le timeout de 5 minutes coupe la connexion. Tant que l'utilisateur travaille, et si le timeout arrive à 0, il faut "étendre" la session, en réinitialisant le timeout à 5 min. Je voudrais faire ça de manière invisible, pour éviter que l'utilisateur perde tout son travail si la session se ferme, et pour éviter aussi qu'il doive appuyer toutes les 5 minutes sur un bouton pour réinitialiser le timeout.

Je sais pas si c'est plus clair. Pour le moment, je "triche" en chargeant une applet contenant un timer. Enfin, j'essaie, car l'applet refuse de s'initialiser...
0
Rejoignez-nous