Aller au contenu

Exercice 3 - Utilisation de la session⚓︎

Problématique : HTTP est un protocole sans état

Aucune information n'est conservée entre deux requêtes HTTP :

Exemples

La session en JEE

On souhaite avoir un objet "session" qui conserve en mémoire des informations liées à l'utilisateur. On souhaite par exemple pouvoir retenir son nom, qu'il a saisi lors de la connexion à l'application, sans avoir à lui redemander à chaque page.

JEE permet de faire cela grace à l'objet javax.servlet.http.HttpSession. Cet objet utilise en fait un cookie pour faire le lien entre les différentes requêtes HTTP, mais ceci est transparent pour le développeur qui l'utilise.

Pour obtenir cet objet, on passe par la requête, en effectuant request.getSession(). Cela permet d'obtenir la session de l'utilisateur, et éventuellement de la créer si elle n'existe pas encore.

De la même manière qu'avec l'objet javax.servlet.http.HttpServletRequest, il est ensuite possible :

  • de sauvegarder des informations, via void HttpSession.setAttribute(String name, Object value),
  • de les récupérer via Object getAttribute(String name).
Compteur de passage

Créer une servlet qui affiche un compteur qui est incrémenté à chaque accès sur cette servlet durant la navigation de l'utilisateur.

Il faut vérifier que l'utilisateur peut afficher d'autres pages (c'est-à-dire exécuter d'autres servlets), et que le compteur continue de s'incrémenter lorsqu'il exécute à nouveau cette servlet.