Java – Les variables de session

- Article inspiré d’un cours OpenClassroom -

Le principe de la session

Pourquoi les sessions existent-elles ?

Une application web basée sur le protocole HTTP, qui est un protocole dit “sans état”. Cela signifie que le serveur, une fois qu’il a envoyé une réponse à la requête d’un client, ne conserve pas les données le concernant. Autrement dit, le serveur traite les clients requête par requête et est absolument incapable de faire un rapprochement entre leur origine : pour lui, chaque nouvelle requête émane d’un nouveau client, puisqu’il oublie le client après l’envoi de chaque réponse…

C’est pour pallier cette lacune que le concept de session a été créé : il permet au serveur de mémoriser des informations relatives au client, d’une requête à l’autre.

Qu’est-ce qu’une session en Java EE ?

  • la session représente un espace mémoire alloué pour chaque utilisateur, permettant de sauvegarder des informations tout le long de leur visite ;

  • le contenu d’une session est conservé jusqu’à ce que l’utilisateur ferme son navigateur, reste inactif trop longtemps, ou encore lorsqu’il se déconnecte du site ;

  • l’objet Java sur lequel se base une session est l’objet HttpSession ;

  • il existe un objet implicite sessionScope permettant d’accéder directement au contenu de la session depuis une expression EL dans une page JSP.

Comment manipuler cet objet depuis une servlet ?

Pour commencer, il faut le récupérer depuis l’objet HttpServletRequest. Cet objet propose en effet une méthode getSession(), qui permet de récupérer la session associée à la requête HTTP en cours si elle existe, ou d’en créer une si elle n’existe pas encore :

HttpSession session = request.getSession();

Ensuite, lorsque nous étudions attentivement la documentation de cet objet, nous remarquons entre autres :

  • qu’il propose un couple de méthodes setAttribute() / getAttribute(), permettant la mise en place d’objets au sein de la session et leur récupération, tout comme dans l’objet HttpServletRequest ;

  • qu’il propose une méthode getId(), retournant un identifiant unique permettant de déterminer à qui appartient telle session.

Nous savons donc maintenant qu’il nous suffit d’appeler le code suivant pour enregistrer un objet en session depuis notre servlet, puis le récupérer :

 

 

Le début et la suite de ce cours sont disponible sur OpenClassroom

 

3480 Total Views 20 Views Today
This entry was posted in Développement, Informatique, Memo Prog and tagged , , , , . Bookmark the permalink.