Mon exigence est d'informer l'utilisateur avec une pop up affirmant que la session d'utilisateur est sur le point de s'éteindre en x secondes au cas où l'utilisateur n'effectue aucune activité sur la page Web. P>
L'ajout à cette exigence est de décrémenter la valeur x secondes de manière dynamique dans la fenêtre contextuelle. P>
L'environnement que j'utilise est Java Ee. P>
3 Réponses :
Je ne pense pas que Java / Java EE sera vraiment utile ici car il est nécessaire d'être traité sur le côté client (c'est-à-dire à l'aide de JavaScript). Une solution à laquelle je peux penser serait de définir une sorte de minuterie qui informerait l'utilisateur quelques minutes avant l'heure du serveur. P>
Tout en googling à ce sujet, j'ai trouvé eric Pascarello's Mettre à jour la session de l'utilisateur avec AJAX Blog Post (et la version rechargée Mise à jour de la session d'utilisateur avec AJAX - Tour 2 ) qui décrit précisément une telle solution (et utilisez un xmlhttprecest code> pour mettre à jour la session). Son script de gestion de session Ajax est disponible ici . P>
Le lien vers le script va bien et les deux autres peuvent être trouvés dans l'archive Web: web.archive.org/web/20081203190028/http://radio.javaranch.co m / ...
Utiliser httpsession # getmaxinActiveInterval () code>
et Settimeout ( ) code>
. Il n'y a pas besoin d'Ajax dans ce but particulier, à moins que vous ne souhaitiez reporter le délai d'attente sur chaque activité client (sondage).
Exemple de base: P>
<script> var secondsBeforeExpire = ${pageContext.session.maxInactiveInterval}; var timeToDecide = 15; // Give client 15 seconds to choose. setTimeout(function() { alert('Your session is about to timeout in ' + timeToDecide + ' seconds!') }, (secondsBeforeExpire - timeToDecide) * 1000); </script>
Vous avez raison, il n'y a pas de besoin strict pour Ajax, mais la bonne chose à propos de l'utilisation d'un XMLHTTPQUEST code> Pour mettre à jour la session est que l'utilisateur n'aura besoin de naviguer pour éviter le délai d'attente. Cela peut être pratique lorsque vous remplissez un formulaire par exemple.
"Si vous voulez vraiment avoir tous les JS dans un fichier distinct * .js, alors vous devez laisser le jspsservlet gérer toutes les demandes * .js aussi" - pouvez-vous expliquer cela, je ne connais pas avec JS, et Je dois mettre cette fonction dans un fichier * .js séparé, car j'ai beaucoup de pages JSP? Que dois-je faire pour que cela fonctionne comme ça? @Balusque
Soit, c'est peut-être un servlet simple, Spring-MVC ou Spring-Security Security Security n'est pas possible sans la logique côté client parfaite.
Considérant que l'application aura à la fois le type de demande
Déconnexion automatique a besoin de la logique très calculée. Présenter ma mise en œuvre de la fonctionnalité Autologut avec P>
P>
1. Aucun appel / demande supplémentaire n'est utilisé pour y parvenir. Considérant l'impact des performances Si plus de 10 000 utilisateurs actifs et des appels supplémentaires pour obtenir la déconnexion automatique.
2. Configuration d'une ligne à l'aide de la balise.
3. Fonctionne parfaitement même si l'utilisateur ouvre plusieurs onglet ou plusieurs fenêtres.
4. Il vous intime avant 30 secondes d'invalidation de la session. Si vous avez rempli le formulaire et non soumis, vous pouvez conserver la session en vie (prolongation d'une session en un clic). Donc, l'utilisateur moins susceptible de perdre des données non enregistrées. P>
<meta http-equiv="refresh" content="60; url=login.jsp">