SlideShare une entreprise Scribd logo
HttpSession
(JEE)
Pr Abderrahim Marzouk
Département de Mathématiques et
Informatique
Master RSI 2019-2020
1
HTTP: un protocole non connecté
Le protocole HTTP est non connecté, c’est-à-dire qu’il
ne garde aucune information/trace concernant un
utilisateur entre deux requêtes.
Cela signifie que chaque requête est traitée
indépendamment des autres.
Comment faire alors le lien entre plusieurs requêtes
envoyées par un même utilisateur?
2
HttpSession
La session HTTP (classe HttpSession) est un moyen qui
permet de reconnaître les requêtes provenant d’un
même utilisateur pour une période limitée : la durée de
vie de la session.
- L’objet HttpSession peut être simplement considéré
comme un ensemble de requêtes/réponses
associées à un utilisateur donné.
- Une session permet de faire le lien entre les requêtes
d’un même utilisateur.
3
Fonctionnement des sessions
Lorsqu’un utilisateur accède pour la première fois à une
application web, le serveur Tomcat lui créé un nouvel
objet HttpSession avec un identifiant unique.
Cet identifiant va servir à Tomcat pour retrouver cet
objet HttpSession lors des requêtes suivantes
effectuées par cet utilisateur qui doivent
obligatoirement comporter cet identifiant.
4
Une session http est propre à chaque client du serveur
car elle est identifiée par un ID unique
Fonctionnement des sessions(suite)
5
L’objet HttpSession réside dans le serveur web et il est
dédié à un seul client.
Comment obtenir une session?
L’objet HttpSession s'obtient grâce à la
méthode getSession() de l'objet request argument des
méthodes doGet/Post(request, response):
HttpSession session=request.getSession()
La méthode getSession() retourne la session courante
associée à l’utilisateur effectuant la requête. Si
L’utilisateur n’a pas de session valide, cette méthode
demande la création d’une session si nécessaire.
6
Utilisation d’une session
Une session fonctionne comme une HashMap<String, Object>
 Stocker des objets dans une session:
session.setAttribute(String clé, Object valeur)
(si la clé existe déjà, la valeur existante est remplacée
par la nouvelle).
 Obtenir des objets d'une session
Object session.getAttribute(String clé)
(retourne l’objet associé à la clé ou la valeur null si la
clé n’existe pas).
7
Durée de vie d’une session
• Une session ne dure pas indéfiniment. Elle expire
après un certain temps paramétrable (un timeout).
• Par défaut, si l’utilisateur n’a effectué aucune
requête sur l’application web pendant 30 mn, alors le
serveur peut détruire sa session et également les
objets qu’elle contient.
8
Configuration du délai d'expiration de
la session HTTP
Le délai d'expiration (timeout) de la session en cours
peut être:
- Soit configuré dans le descripteur de déploiement
(web.xml) en ajoutant les balises :
<session-config>
<session-timeout>120</session-timeout>
</session-config>
- Soit être spécifié de façon programmatique :
HttpSession session=request.getSession();
session. setMaxInactiveInterval(120*60);
Contrairement à l' élément <session-timeout> qui avait une valeur en minutes,
la méthode setMaxInactiveInterval accepte une valeur en secondes .
9
Exemple d’utilisation
Considérons un site (simpliste) qui permet à un client de faire ses
courses en ligne. Il choisit des produits dans le formulaire suivant
et les transmet à un servlet pour qu'il les ajoute à son panier. Le
servlet va affecter un panier vide à chaque client quand il envoie
sa première requête.
10
Exemple d’utilisation (1)
- A chaque requête, le client sélectionne des produits et les
envoie au servlet pour les déposer dans son panier.
- Le servlet va faire ensuite une redirection vers une page JSP qui
affiche alors les produits sélectionnés par l’utilisateur et lui
permet grâce à un lien de retourner au formulaire pour en
ajouter d’autres à son panier.
11
Exemple d’utilisation (3)
On va d’abord stocker un panier dans l’objet request :
request.setAttribute("panier", panier)
Puis dans l’objet HttpSession:
session.setAttribute("panier", panier)
12
Exemple d’utilisation (4)
• Dans le premier cas, après chaque requête du
client, le container lui envoie une réponse et
détruit l’objet request avec les objets qu’il
contient. Donc le panier sera détruit et le
client perd ses produits sélectionnés entre
deux requêtes successives.
• Dans le deuxième cas, le panier reste
sauvegardé pendant une certaine durée dans
la session associée au client.
13

Contenu connexe

PPTX
Marzouk jsp
PDF
Marzouk une introduction à jdbc
PDF
Ajax (Asynchronous JavaScript and XML)
PDF
Ajax - GTI780 & MTI780 - ETS - A08
PPTX
Introduction à ajax
PPTX
Introduction à Angular JS
PDF
Rapport tp1 j2ee
PDF
cours j2ee -présentation
Marzouk jsp
Marzouk une introduction à jdbc
Ajax (Asynchronous JavaScript and XML)
Ajax - GTI780 & MTI780 - ETS - A08
Introduction à ajax
Introduction à Angular JS
Rapport tp1 j2ee
cours j2ee -présentation

Tendances (20)

PDF
les servlets-java EE
PDF
Jquery - introduction au langage
PDF
Rapport tp2 j2ee
PDF
Rapport tp3 j2ee
PDF
jQuery
PDF
Introduction a jQuery
PPT
Les Servlets et JSP
PPTX
Jboss Seam
PPTX
Introduction à React JS
PDF
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
PPT
Introductions Aux Servlets
PPTX
Introduction à AngularJS
PDF
Manualjquery
PPTX
Servlets et JSP
PDF
Cours design pattern m youssfi partie 3 decorateur
PDF
Jquery : les bases
PPTX
Introduction à spring boot
PDF
Tp java ee.pptx
PDF
Webserver tomcat-jboss-jrun-jonas doc
les servlets-java EE
Jquery - introduction au langage
Rapport tp2 j2ee
Rapport tp3 j2ee
jQuery
Introduction a jQuery
Les Servlets et JSP
Jboss Seam
Introduction à React JS
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
Introductions Aux Servlets
Introduction à AngularJS
Manualjquery
Servlets et JSP
Cours design pattern m youssfi partie 3 decorateur
Jquery : les bases
Introduction à spring boot
Tp java ee.pptx
Webserver tomcat-jboss-jrun-jonas doc
Publicité

Similaire à Marzouk-HTTP-SESSION-JEE (20)

PDF
Chapitre 2SAMIMNIFFFFFFFFFFFFFFFFFFFFFFFFFFFF.pdf
PDF
Chapitre Concepts avancés de Ja325vaEE.pdf
PDF
Support JEE Servlet Jsp MVC M.Youssfi
PPT
MEDBOULARESSMPIIIIIIIIIIIIIIIIIIIIIII.ppt
PDF
Support de cours angular
PPTX
Requêtes HTTP synchrones et asynchrones
PDF
cours web developpement statique AJAX 2024
PPTX
Advanced html5
PDF
Support Web Services SOAP et RESTful Mr YOUSSFI
PDF
Tp2 - WS avec JAXRS
PDF
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
DOCX
PPTX
Authentification la méthode get et post dans js.pptx
PPT
0554-programmation-web-ajax programmation web ajax
PDF
PDF
4 asynch task_services_thread
PDF
Cours design pattern m youssfi partie 6 proxy
PDF
04-Collaboration-JSP-Sebfbfhhfufucrvlet.pdf
PDF
Crud+tutorial+fr
PDF
Chapitre 1.pdf
Chapitre 2SAMIMNIFFFFFFFFFFFFFFFFFFFFFFFFFFFF.pdf
Chapitre Concepts avancés de Ja325vaEE.pdf
Support JEE Servlet Jsp MVC M.Youssfi
MEDBOULARESSMPIIIIIIIIIIIIIIIIIIIIIII.ppt
Support de cours angular
Requêtes HTTP synchrones et asynchrones
cours web developpement statique AJAX 2024
Advanced html5
Support Web Services SOAP et RESTful Mr YOUSSFI
Tp2 - WS avec JAXRS
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
Authentification la méthode get et post dans js.pptx
0554-programmation-web-ajax programmation web ajax
4 asynch task_services_thread
Cours design pattern m youssfi partie 6 proxy
04-Collaboration-JSP-Sebfbfhhfufucrvlet.pdf
Crud+tutorial+fr
Chapitre 1.pdf
Publicité

Dernier (16)

PPTX
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
PDF
Regles sur la gestion de l’Eclairage public
PDF
TP L’analyse granulométrique par tamisage
PDF
Visite de chantier – Projet de Polyclinique à Laghouat
PPTX
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
PDF
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf
PPTX
A Recurrent Neural Network (RNN)s a type of artificial neural network
PDF
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
PDF
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
PDF
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
PPTX
Logique séquentielle : les fondamentaux
PPTX
mon_expose_de_geophysique_disposotif_de_wener.pptx
PPTX
UMAPON Cours de traitement des minerais 2.pptx
PDF
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
PPTX
Introduction aux Systèmes temps réel.pptx
PDF
TP de La Masse Volumique apparente et absolue
COURS DE PROSPECTION MINIERE UTMSIRI - Copie.pptx
Regles sur la gestion de l’Eclairage public
TP L’analyse granulométrique par tamisage
Visite de chantier – Projet de Polyclinique à Laghouat
CH1-RMELLOULI-Données des problèmes d'ordonnancement de la production.pptx
FAQ_FORAGE_EAU_SUNRISE_ENGINEERING_GROUP_SARL2025.pdf
A Recurrent Neural Network (RNN)s a type of artificial neural network
CHAPITRE 3 Typologie des réseaux [Enregistrement automatique] 4.pdf
Expansion du Réseau de Gazoducs de Gaz Naturel au Brésil _ Analyse Technique ...
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
Logique séquentielle : les fondamentaux
mon_expose_de_geophysique_disposotif_de_wener.pptx
UMAPON Cours de traitement des minerais 2.pptx
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
Introduction aux Systèmes temps réel.pptx
TP de La Masse Volumique apparente et absolue

Marzouk-HTTP-SESSION-JEE

  • 1. HttpSession (JEE) Pr Abderrahim Marzouk Département de Mathématiques et Informatique Master RSI 2019-2020 1
  • 2. HTTP: un protocole non connecté Le protocole HTTP est non connecté, c’est-à-dire qu’il ne garde aucune information/trace concernant un utilisateur entre deux requêtes. Cela signifie que chaque requête est traitée indépendamment des autres. Comment faire alors le lien entre plusieurs requêtes envoyées par un même utilisateur? 2
  • 3. HttpSession La session HTTP (classe HttpSession) est un moyen qui permet de reconnaître les requêtes provenant d’un même utilisateur pour une période limitée : la durée de vie de la session. - L’objet HttpSession peut être simplement considéré comme un ensemble de requêtes/réponses associées à un utilisateur donné. - Une session permet de faire le lien entre les requêtes d’un même utilisateur. 3
  • 4. Fonctionnement des sessions Lorsqu’un utilisateur accède pour la première fois à une application web, le serveur Tomcat lui créé un nouvel objet HttpSession avec un identifiant unique. Cet identifiant va servir à Tomcat pour retrouver cet objet HttpSession lors des requêtes suivantes effectuées par cet utilisateur qui doivent obligatoirement comporter cet identifiant. 4 Une session http est propre à chaque client du serveur car elle est identifiée par un ID unique
  • 5. Fonctionnement des sessions(suite) 5 L’objet HttpSession réside dans le serveur web et il est dédié à un seul client.
  • 6. Comment obtenir une session? L’objet HttpSession s'obtient grâce à la méthode getSession() de l'objet request argument des méthodes doGet/Post(request, response): HttpSession session=request.getSession() La méthode getSession() retourne la session courante associée à l’utilisateur effectuant la requête. Si L’utilisateur n’a pas de session valide, cette méthode demande la création d’une session si nécessaire. 6
  • 7. Utilisation d’une session Une session fonctionne comme une HashMap<String, Object>  Stocker des objets dans une session: session.setAttribute(String clé, Object valeur) (si la clé existe déjà, la valeur existante est remplacée par la nouvelle).  Obtenir des objets d'une session Object session.getAttribute(String clé) (retourne l’objet associé à la clé ou la valeur null si la clé n’existe pas). 7
  • 8. Durée de vie d’une session • Une session ne dure pas indéfiniment. Elle expire après un certain temps paramétrable (un timeout). • Par défaut, si l’utilisateur n’a effectué aucune requête sur l’application web pendant 30 mn, alors le serveur peut détruire sa session et également les objets qu’elle contient. 8
  • 9. Configuration du délai d'expiration de la session HTTP Le délai d'expiration (timeout) de la session en cours peut être: - Soit configuré dans le descripteur de déploiement (web.xml) en ajoutant les balises : <session-config> <session-timeout>120</session-timeout> </session-config> - Soit être spécifié de façon programmatique : HttpSession session=request.getSession(); session. setMaxInactiveInterval(120*60); Contrairement à l' élément <session-timeout> qui avait une valeur en minutes, la méthode setMaxInactiveInterval accepte une valeur en secondes . 9
  • 10. Exemple d’utilisation Considérons un site (simpliste) qui permet à un client de faire ses courses en ligne. Il choisit des produits dans le formulaire suivant et les transmet à un servlet pour qu'il les ajoute à son panier. Le servlet va affecter un panier vide à chaque client quand il envoie sa première requête. 10
  • 11. Exemple d’utilisation (1) - A chaque requête, le client sélectionne des produits et les envoie au servlet pour les déposer dans son panier. - Le servlet va faire ensuite une redirection vers une page JSP qui affiche alors les produits sélectionnés par l’utilisateur et lui permet grâce à un lien de retourner au formulaire pour en ajouter d’autres à son panier. 11
  • 12. Exemple d’utilisation (3) On va d’abord stocker un panier dans l’objet request : request.setAttribute("panier", panier) Puis dans l’objet HttpSession: session.setAttribute("panier", panier) 12
  • 13. Exemple d’utilisation (4) • Dans le premier cas, après chaque requête du client, le container lui envoie une réponse et détruit l’objet request avec les objets qu’il contient. Donc le panier sera détruit et le client perd ses produits sélectionnés entre deux requêtes successives. • Dans le deuxième cas, le panier reste sauvegardé pendant une certaine durée dans la session associée au client. 13