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 :
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.