J'ai l'obligation de définir un délai d'expiration de session de 40 secondes. Je sais que nous nous en tenons normalement à 20 minutes . Mais mon exigence actuelle est de garder le délai d'expiration de la session à 40 secondes. Le fichier web.xml prend uniquement la valeur entière sous la forme 1, mais pas la valeur 0.6. Est-il possible d'écrire cela? Nous exécutons notre application Web Java sur le serveur Apache Tomcat.
Alors, comment définir le délai d'expiration de la session en secondes dans web.xml?
À l'aide du descripteur de déploiement, vous pouvez uniquement définir le délai d'expiration en quelques minutes:
<session-config>
<session-timeout>1</session-timeout>
</session-config>
mais en utilisant l'API HttpSession, vous pouvez définir le délai d'expiration de la session en secondes pour un servlet:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(40*60);
Lecture suggérée: http://docs.Oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275
bien dans le fichier web.xml vous pouvez fournir en quelques minutes
<session-config>
<session-timeout>Minutes</session-timeout>
</session-config>
mais vous fournissez par programme des valeurs en secondes
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
vous pouvez remplacer le délai d'expiration de la session via "setMaxInactiveInterval ()".
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20000);
ici, cela prendra du temps en millisecondes, ce qui signifie que dans les 20 prochaines secondes, la session va arriver à expiration.
1) Timeout in the deployment descriptor (web.xml)
- Spécifiez la valeur de délai d'attente en "minute", entourez-la avec l'élément "session-config".
Markup
<web-app ...>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
Le paramètre ci-dessus s’applique à l’ensemble de l’application Web et la session sera détruite par conteneur si le client n’effectue aucune demande après 20 minutes.
2) Timeout with setMaxInactiveInterval()
- Vous pouvez spécifier manuellement la valeur de délai d'attente en «seconde» pour une session particulière.
Java
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
Le paramètre ci-dessus s’applique uniquement à la session qui appelle la méthode «setMaxInactiveInterval ()», et la session sera détruite par le conteneur si le client n’effectue aucune demande après 20 minutes.