Délai de session Java

Délai de session Java

1. Vue d'ensemble

Ce didacticiel montrera comment configurersession timeout in a Servlet based web application.

2. Délai d'expiration de session global dans lesweb.xml

Le délai d'expiration de toutes les sessions Http peut être configuré dans lesweb.xml de l'application Web:




    ...
    
        10
    

Notez que la valeur du délai d'expiration est définie enin minutes, pas en secondes.

Un sidenode intéressant est que, dans un environnement Servlet 3.0 où les annotations peuvent être utilisées à la place du descripteur de déploiement XML, il y ano way to programmatically set the global session timeout. La configuration par programme pour le délai d'attente de session a un problème ouvert sur le servlet Spec JIRA - mais le problème n'a pas encore été planifié.

3. Timeout programmatique par session individuelle

Le délai d'expiration dethe current session only peut être spécifié par programmation via l'API desjavax.servlet.http.HttpSession:

HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60);

Contrairement à l'élément<session-timeout> qui avait une valeur en minutes, la méthodesetMaxInactiveInterval accepte une valeurin seconds.

4. Délai d'expiration de la session Tomcat

Tous les serveurs Tomcat fournissent desa default web.xml file qui peuvent être configurés globalement pour l'ensemble du serveur Web - il se trouve dans:

$tomcat_home/conf/web.xml

Ce descripteur de déploiement par défaut configure un<session-timeout> avec une valeur de 30 minutes.

Les applications déployées individuelles, fournissant leurs propres valeurs de délai d'expiration dans leurs propres descripteursweb.xml auront la priorité sur la configuration etwill override this global web.xml.

Notez que la même chose estpossible in Jetty as well: le fichier se trouve dans:

$jetty_home/etc/webdefault.xml

5. Conclusion

Ce didacticiel a abordé les aspects pratiques dehow to configure the timeout of the HTTP Session dans une application Java Servlet. Nous avons également illustré la manière dont cela peut être défini au niveau du serveur Web, à la fois dans Tomcat et dans Jetty.

L'implémentation de ces exemples peut être trouvée dansthe github project - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.

Lorsque le projet s'exécute localement, la page d'accueil html est accessible à l'adresse suivante: