web-dev-qa-db-fra.com

Comment définir le délai d'expiration de la session en secondes dans web.xml?

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? 

6
user3488632

À 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

12
Juned Ahsan

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);
3
Sanjay Rabari

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.

0
Rahul Kumar
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.

0
Mohit Singh