Avertir l'utilisateur de délai d'expiration de session dans Java EE
Mon exigence est d'informer l'utilisateur avec un popup disant que la session de l'utilisateur est sur le point d'expirer dans les x secondes dans le cas où l'utilisateur n'effectue aucune activité sur la page web.
Outre à cette exigence consiste à décrémenter la valeur de x secondes de façon dynamique dans la liste déroulante.
L'environnement que j'utilise est de Java EE.
Vous devez vous connecter pour publier un commentaire.
Faire usage de
HttpSession#getMaxInactiveInterval()
etsetTimeout()
. Il n'y a pas besoin d'Ajax dans ce but, sauf si vous voulez reporter le délai d'attente sur chaque client de l'activité (polling).Exemple de base:
Pour décrémenter le temps à l'intérieur du message, comme par magie, alors au lieu de la base
alert()
vous aurez besoin d'une superposition avec un div dans lequel vous avez le contrôle sur le contenu, à travers les DOM HTML arbre et de faire usage d'une autresetTimeout()
sur 1 seconde pour changer le texte de façon dynamique.Noter que ce script doit être servi par le
JspServlet
pour obtenir le EL au travail. Ainsi, vous avez besoin de mettre le script dans le code HTML<head>
de la page JSP, ou si vous voulez vraiment avoir tous les JS dans un autre*.js
fichier, alors vous devez laisser leJspServlet
gérer tout*.js
demandes.XMLHttpRequest
pour mettre à jour la session, c'est que l'utilisateur n'aurez pas besoin de naviguer à l'écart pour éviter le délai d'attente. Cela peut être pratique quand le remplissage d'un formulaire par exemple.Je ne pense pas que Java/Java EE sera vraiment utile ici que ce besoin d'être traitées sur le côté client (c'est à dire à l'aide de JavaScript). Une seule solution je pense, serait de créer une sorte de minuteur qui en avisera l'utilisateur quelques minutes avant que le serveur du délai d'attente.
Alors que les recherches sur google à ce sujet, j'ai trouvé Eric Pascarello de Mise à jour de la Session de l'Utilisateur avec l'AJAX blog (et la version reloaded La mise à jour de Session de l'Utilisateur avec Ajax - Round 2) qui décrit avec précision une telle solution (et utiliser un
XMLHttpRequest
pour mettre à jour la session). Son Ajax Gestion de Session script est disponible ici.