SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
DEUXIEME RAPPORT EN JAVA EE 
 Suivi de Session 
 L’objet HTTPSession 
 Définition 
 Fonctionnement d’une session 
 Méthode utilisées 
 Cycle de vie d’une session 
 Travaux Pratique 
Encadré Par : 
M Mohamed NAYA 
Préparé par 
Soukaina NAJIHI 
Soukaina BOUJADI 
d’une session 
ratique 
:
2 
2 
2 DEUXIEME RAPPORT EN JAVA EE 
Sommaire : 
Remerciements..………………………………………………………..….……4 
Suivi de session………..……………………….…………………………...…...5 
L’objet HTTPSession……………………….……………………………..…...5 
Définition d’une session……………………….…………………………..…...5 
Fonctionnement d’une session………………….………………………...…...5 
Méthode utilisées……………………….……………………………………...6 
Cycle de vie d’une session……………………….………………………..…...6 
Travaux Pratique……………………….…………………………….…..…...7 
Suivi de session pour un compteur dynamique……..........….…..……..…7 
Suivi de session pour un compteur statique……..........….………….……10 
Récapitulations …………………………………………………….…...……12
3 
3 
3 DEUXIEME RAPPORT EN JAVA EE 
Remerciement 
Au terme de ce travail, Nous tenons à remercier notre Cher 
professeur Monsieur Mohamed NAYA , pour ses 
précieuses directives et son suivi continu et pour tous les efforts qu'il 
a fournis en classe et qui ont porté leur fruits, et surtout pour son 
soutien continue et inconditionnel. 
Du fond du coeur, merci
4 DEUXIEME RAPPORT EN JAVA 
EE 
Le protocole HTTP est un protocole non connecté (on parle aussi de 
protocole sans états, en anglais stateless protocol 
requête est traité indépendamment des autres et qu'aucun historique des 
différentes requêtes n'est conservé. 
Ainsi le serveur web ne peut pas se « souvenir » de la requête précédente, 
ce qui est dommageable dans des utilisat 
lequel le serveur doit mémoriser les achats de l'utilisateur sur les différentes 
pages. Il s'agit donc de maintenir la cohésion entre l'utilisateur et la requête, 
c'est-à-dire reconnaître les requêtes provenant 
du même utilisateur, associer un profil à l'utilisateur, connaître les 
paramètres de l'application (nombre de produits vendus, ...). On appelle ce 
mécanisme de gestion des états le « suivi de session » (en anglais session 
tracking). 
Le protocole http en bref 
 Le protocole HTTP est un protocole sans 
le serveur ignore qu'une s 
provient d'un m 
 En mode HTTP, pour le serveur, 2 requ 
successives d'un m 
 Le serveur 
En effet une adresse IP n'est pas suffisante pour 
identifier un utilisateur 
e protocol), cela signifie que chaque 
utilisations telles que le e-commerce, pour 
: 
séquence de requ 
même client . 
requêtes 
même client sont indépendantes 
HTTP voit les requêtes, pas les clients. 
4 
4 
), état => 
quence requêtes 
tes 
pendantes . 
tes,
5 
5 
5 DEUXIEME RAPPORT EN JAVA EE 
L'objet HttpSession 
L'objet HttpSession permet de mémoriser les données de l'utilisateur, grâce à 
une structure similaire à une table de hachage, permettant de relier chaque id 
de session à l'ensemble des informations relatives à l'utilisateur. Ainsi en 
utilisant un mécanisme tel que les cookies, permettant d'associer une requête à 
un id, et l'objet HttpSession, permettant de relier des informations relatives à 
l'utilisateur à un id, il est possible d'associer facilement une requête aux 
informations de session ! 
Definition d’une session 
• Une session = Une suite d’interactions entre un client et 
Un serveur Web 
– Elle couvre plusieurs requêtes HTTP sur une période donnée 
• On peut utiliser les sessions pour 
– Mémoriser les actions d’un utilisateur unique 
– Exemples 
• achats en ligne (panier de commande) 
• examens à distance 
Fonctionnement d’une session 
 A la première requête vers une application web : 
 Un objet HttpSession est créé. 
 Ainsi qu’un identifiant unique pour cet objet. 
 L’identifiant est en général sauvegardé par un cookie appelé 
JSESSIONID 
seul l’identifiant de session est envoyé au client. 
 Grâce à cet identifiant, le serveur détermine l’objet session 
correspondant à la requête courante. 
 A toute nouvelle requête émise par l’utilisateur, le cookie est transmis 
via le serveur web et accédé par la méthode :
6 DEUXIEME RAPPORT EN JAVA 
EE 
public String HttpSession.getId() 
Méthodes utilisées 
API de suivi de session HttpSession 
 Méthodes de création liées à la requête (HttpServletRequest) 
 HttpSession getSession() : retourne la session associée à l’utilisateur 
 HttpSession getSession(boolean p) : création selon la valeur de p 
 Gestion d’association (HttpSession) 
 Enumeration getAttributNames() : retourne les noms de tous les 
attributs 
 Object getAttribut(String name) : retourne l’objet associé au nom 
 setAttribut(String na, Object va) : modifie na par la valeur va 
 removeAttribut(String na) : supprime l’attribut associé à 
 Destruction (HttpSession) 
 invalidate() : expire la session 
 logout() : termine la session 
getAttribut("nom") renvoie un objet de type Object, qu’il 
faut donc caster. 
Cycle de vie d’une session 
 A sa création, une période de temps est affectée à 
la session. 
 Elle expire automatiquement à la fin de cette période (par défaut 30mns 
avec Tomcat). 
 Elle peut être invalidée explicitement par la servlet 
(HttpSession.invalidate()). Permet de fermer une session. 
 A l’expiration (invalidation), les données de 
l’objet session 
(HttpSession) sont retournées au moteur de servlets. 
 Les sessions ne sont donc pas invalidées à la fermeture du navigateur. 
6 
6 
na
7 
7 
7 DEUXIEME RAPPORT EN JAVA EE 
Travaux Pratique : 
1- Suivi de session pour un compteur dynamique 
Dans cet exemple, nous allons savoir comment nous pouvons realiser un 
programme qui gardera la trace combien de fois la servlet a été consultée. 
Pour rédiger ce programme tout d'abord nous devons créer une classe 
CounterServlet . Le nom de la classe doit suivre la convention de 
nommage. N'oubliez pas de garder le nom de la classe de telle sorte qu'il 
devient facile de comprendre ce que le programme va faire juste en 
voyant le nom de la classe. Après avoir fait une classe définit un 
compteur de variable qui va garder une trace de combien de fois le servlet 
a été consultée. Maintenant, utilisez la méthode soit doGet () ou doPost () 
pour écrire une logique du programme. Notre logique du programme est 
simple. Nous devons tout simplement incrémenter la valeur du compteur 
de 1. Pour afficher la sortie utiliser la méthode de l'objet de la réponse qui 
sera à son tour renvoyer l'objet de la classe PrintWrite méthode getWriter 
(). Maintenant, afficher la valeur du compteur. 
Le code du programme est donné ci-dessous: 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
@WebServlet(urlPatterns = {"/CounterServlet"}) 
public class CounterServlet extends HttpServlet { 
int counter = 0; 
public void doGet(HttpServletRequest req, HttpServletResponseres) 
throws ServletException, IOException { 
res.setContentType("text/html"); 
PrintWriter pw = res.getWriter(); 
counter++; 
pw.println(" à present le nombre du compteur est : " + counter); 
} 
}
8 DEUXIEME RAPPORT EN JAVA 
EE 
configuration dans web.xml 
<?xml version="1.0" encoding="UTF 
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web 
app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web 
id="WebApp_ID" version="2.5"> 
<display-name>CounterServlet</display 
<servlet> 
<servlet-name>CounterServlet</servlet 
<servlet-class>CounterServlet</servlet 
</servlet> 
<servlet-mapping> 
<servlet-name>CounterServlet</servlet 
<url-pattern>/CounterServlet</url 
</servlet-mapping> 
<welcome-file 
<welcome-file>in 
</welcome-file 
</web-app> 
Dans notre cas le fichier web.xml n'est pas créer par 
netbeans et on doit l'ajouter clique droit sur 
l'application '' ApplicationWeb_SousUbuntu'', 
Nouveau , 
Autre / Web, 
StandardDeployementDescriptor(web.xml) 
UTF-8"?> 
XMLSchema-xmlns=" 
web-app_2_5.xsd" 
display-name> 
servlet-name> 
servlet-class> 
servlet-name> 
url-pattern> 
file-list> 
index.jsp</welcome-file> 
file-list> 
8 
8 
-instance" 
web-xsi:
9 
9 
9 DEUXIEME RAPPORT EN JAVA EE 
Apres creation et configuration de web.xml vous pouvez exécuter la servlet .
10 
10 
10 DEUXIEME RAPPORT EN JAVA EE 
2- suivi de session pour un compteur satatique 
Implémenter la méthode doGet pour gérer le suivi de 
session: 
Affiche un compteur qui est incrémenté 
à chaque accès sur cette servlet 
pendant une session.
11 DEUXIEME RAPPORT EN JAVA 
EE 
Cette servlet recupere d'abord l'objet HttpSession associé au client courant. 
En passant true à getSession() , elle demande la reation d'une session si 
nécessaire. LA servlet obtient ensuite un objet Integer lié au nom 
tracker.count. Si cet objet n'existe pas , la servlet 
démarre un nouveau 
compteur .sinon ,elle remplace l'Integer par un nouveau dont 
la valeur a été 
incrémentée de 1 . Enfin , la servlet affiche le compteur courant et toutes les 
paires nom/valeur de la session . 
11 
11
12 
12 
12 DEUXIEME RAPPORT EN JAVA EE 
 Mécanisme très puissant permettant de stocker des objets et non de 
simples chaînes de caractères comme les cookies. 
 Méthode de création (de HttpServletRequest) : 
 HttpSession getSession() : retourne la session associée à 
l’utilisateur. 
 Gestion d’association (de HttpSession) : 
 Enumération getAttributNames() : retourne les noms de tous les 
attributs. 
 Object getAttribut(String name) : retourne l’objet associé au 
nom. 
 setAttribut(String na, Object va) : donne la valeur va à l’attribut 
na. 
 removeAttribut(String na) : supprime l’attribut de nom na. 
 Destruction (de HttpSession) : 
 logout() : termine la session.

Contenu connexe

Tendances

Tendances (20)

Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Conception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learningConception et réalisation d'une plateforme social learning
Conception et réalisation d'une plateforme social learning
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Tp4 - PHP
Tp4 - PHPTp4 - PHP
Tp4 - PHP
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Architecture Client-Serveur
Architecture Client-Serveur Architecture Client-Serveur
Architecture Client-Serveur
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Java RMI
Java RMIJava RMI
Java RMI
 
Présentation pfe Conception et Réalisation application web
Présentation pfe Conception et Réalisation application webPrésentation pfe Conception et Réalisation application web
Présentation pfe Conception et Réalisation application web
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 

En vedette

PresentacióN Arq En Red Mirador
PresentacióN Arq En Red MiradorPresentacióN Arq En Red Mirador
PresentacióN Arq En Red Mirador
domdela
 
Las claves para un negocio sostenible
Las claves para un negocio sostenibleLas claves para un negocio sostenible
Las claves para un negocio sostenible
Hosteltur
 
Libertad y responsabilidad de información
Libertad y responsabilidad de informaciónLibertad y responsabilidad de información
Libertad y responsabilidad de información
Espacio Público
 
18 vem6 quoi de neuf dans mes adwords
18 vem6 quoi de neuf dans mes adwords18 vem6 quoi de neuf dans mes adwords
18 vem6 quoi de neuf dans mes adwords
Salon e-tourisme #VeM
 

En vedette (20)

Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Prog commune
Prog communeProg commune
Prog commune
 
Aao tract internet. janv juin 2013
Aao tract internet. janv juin 2013Aao tract internet. janv juin 2013
Aao tract internet. janv juin 2013
 
PresentacióEc2g
PresentacióEc2gPresentacióEc2g
PresentacióEc2g
 
Coopération Barreur Equipier - Etude de cas
Coopération Barreur Equipier - Etude de casCoopération Barreur Equipier - Etude de cas
Coopération Barreur Equipier - Etude de cas
 
PresentacióN Arq En Red Mirador
PresentacióN Arq En Red MiradorPresentacióN Arq En Red Mirador
PresentacióN Arq En Red Mirador
 
Que déléguer à son assistant virtuel, quand on est E-commerçant !
Que déléguer à son assistant virtuel, quand on est E-commerçant !Que déléguer à son assistant virtuel, quand on est E-commerçant !
Que déléguer à son assistant virtuel, quand on est E-commerçant !
 
Panorámica de los recursos de la biblioteca cursos especialización en derecho
Panorámica de los recursos de la biblioteca cursos especialización en derechoPanorámica de los recursos de la biblioteca cursos especialización en derecho
Panorámica de los recursos de la biblioteca cursos especialización en derecho
 
El Trabajo
El TrabajoEl Trabajo
El Trabajo
 
Tecnología China
Tecnología ChinaTecnología China
Tecnología China
 
Histoire et construction
Histoire et constructionHistoire et construction
Histoire et construction
 
[DevoxxFr] Les bronzés font du dev
[DevoxxFr] Les bronzés font du dev[DevoxxFr] Les bronzés font du dev
[DevoxxFr] Les bronzés font du dev
 
Las claves para un negocio sostenible
Las claves para un negocio sostenibleLas claves para un negocio sostenible
Las claves para un negocio sostenible
 
Carnaval de venise 2007 mail n° 13
Carnaval de venise 2007 mail n° 13Carnaval de venise 2007 mail n° 13
Carnaval de venise 2007 mail n° 13
 
Jazz festival Billets gratuits
Jazz festival Billets gratuitsJazz festival Billets gratuits
Jazz festival Billets gratuits
 
9eme edition de l observatoire de l e-pub
9eme edition de l observatoire de l e-pub9eme edition de l observatoire de l e-pub
9eme edition de l observatoire de l e-pub
 
Libertad y responsabilidad de información
Libertad y responsabilidad de informaciónLibertad y responsabilidad de información
Libertad y responsabilidad de información
 
18 vem6 quoi de neuf dans mes adwords
18 vem6 quoi de neuf dans mes adwords18 vem6 quoi de neuf dans mes adwords
18 vem6 quoi de neuf dans mes adwords
 
Escuchame
EscuchameEscuchame
Escuchame
 
Cryptovirology - Basics
Cryptovirology - BasicsCryptovirology - Basics
Cryptovirology - Basics
 

Similaire à Rapport tp2 j2ee

ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
Horacio Gonzalez
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
Souf212
 
173544 introduction-aux-sockets
173544 introduction-aux-sockets173544 introduction-aux-sockets
173544 introduction-aux-sockets
naimanaima1
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas doc
Winslo Nwan
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
François Charoy
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologies
Sébastien Letélié
 

Similaire à Rapport tp2 j2ee (20)

Marzouk-HTTP-SESSION-JEE
Marzouk-HTTP-SESSION-JEEMarzouk-HTTP-SESSION-JEE
Marzouk-HTTP-SESSION-JEE
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
 
Atelier gwt
Atelier gwtAtelier gwt
Atelier gwt
 
Introduction aux-sockets
Introduction aux-socketsIntroduction aux-sockets
Introduction aux-sockets
 
173544 introduction-aux-sockets
173544 introduction-aux-sockets173544 introduction-aux-sockets
173544 introduction-aux-sockets
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas doc
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Crud+tutorial+fr
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+fr
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
Marzouk jsp
Marzouk jspMarzouk jsp
Marzouk jsp
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Advanced html5
Advanced html5Advanced html5
Advanced html5
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologies
 
CocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock ObjectsCocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock Objects
 

Plus de Soukaina Boujadi

Open erp le reporting avec jasper reports
Open erp  le reporting avec jasper reportsOpen erp  le reporting avec jasper reports
Open erp le reporting avec jasper reports
Soukaina Boujadi
 

Plus de Soukaina Boujadi (13)

Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
Rapport XMI To SVG
Rapport XMI To SVGRapport XMI To SVG
Rapport XMI To SVG
 
Conformiq
ConformiqConformiq
Conformiq
 
Composants hardware du mainframe
Composants hardware du mainframeComposants hardware du mainframe
Composants hardware du mainframe
 
Open erp le reporting avec jasper reports
Open erp  le reporting avec jasper reportsOpen erp  le reporting avec jasper reports
Open erp le reporting avec jasper reports
 
Comment lancer une entreprise
Comment lancer une entrepriseComment lancer une entreprise
Comment lancer une entreprise
 
Rapport comment lancer une entreprise
Rapport comment lancer une entrepriseRapport comment lancer une entreprise
Rapport comment lancer une entreprise
 
Présentation open bravo
Présentation open bravoPrésentation open bravo
Présentation open bravo
 
Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de données
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
Rapport Sockets en Java
Rapport Sockets en JavaRapport Sockets en Java
Rapport Sockets en Java
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFI
 
Programmation shell
Programmation shellProgrammation shell
Programmation shell
 

Dernier

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (19)

Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 

Rapport tp2 j2ee

  • 1. DEUXIEME RAPPORT EN JAVA EE  Suivi de Session  L’objet HTTPSession  Définition  Fonctionnement d’une session  Méthode utilisées  Cycle de vie d’une session  Travaux Pratique Encadré Par : M Mohamed NAYA Préparé par Soukaina NAJIHI Soukaina BOUJADI d’une session ratique :
  • 2. 2 2 2 DEUXIEME RAPPORT EN JAVA EE Sommaire : Remerciements..………………………………………………………..….……4 Suivi de session………..……………………….…………………………...…...5 L’objet HTTPSession……………………….……………………………..…...5 Définition d’une session……………………….…………………………..…...5 Fonctionnement d’une session………………….………………………...…...5 Méthode utilisées……………………….……………………………………...6 Cycle de vie d’une session……………………….………………………..…...6 Travaux Pratique……………………….…………………………….…..…...7 Suivi de session pour un compteur dynamique……..........….…..……..…7 Suivi de session pour un compteur statique……..........….………….……10 Récapitulations …………………………………………………….…...……12
  • 3. 3 3 3 DEUXIEME RAPPORT EN JAVA EE Remerciement Au terme de ce travail, Nous tenons à remercier notre Cher professeur Monsieur Mohamed NAYA , pour ses précieuses directives et son suivi continu et pour tous les efforts qu'il a fournis en classe et qui ont porté leur fruits, et surtout pour son soutien continue et inconditionnel. Du fond du coeur, merci
  • 4. 4 DEUXIEME RAPPORT EN JAVA EE Le protocole HTTP est un protocole non connecté (on parle aussi de protocole sans états, en anglais stateless protocol requête est traité indépendamment des autres et qu'aucun historique des différentes requêtes n'est conservé. Ainsi le serveur web ne peut pas se « souvenir » de la requête précédente, ce qui est dommageable dans des utilisat lequel le serveur doit mémoriser les achats de l'utilisateur sur les différentes pages. Il s'agit donc de maintenir la cohésion entre l'utilisateur et la requête, c'est-à-dire reconnaître les requêtes provenant du même utilisateur, associer un profil à l'utilisateur, connaître les paramètres de l'application (nombre de produits vendus, ...). On appelle ce mécanisme de gestion des états le « suivi de session » (en anglais session tracking). Le protocole http en bref  Le protocole HTTP est un protocole sans le serveur ignore qu'une s provient d'un m  En mode HTTP, pour le serveur, 2 requ successives d'un m  Le serveur En effet une adresse IP n'est pas suffisante pour identifier un utilisateur e protocol), cela signifie que chaque utilisations telles que le e-commerce, pour : séquence de requ même client . requêtes même client sont indépendantes HTTP voit les requêtes, pas les clients. 4 4 ), état => quence requêtes tes pendantes . tes,
  • 5. 5 5 5 DEUXIEME RAPPORT EN JAVA EE L'objet HttpSession L'objet HttpSession permet de mémoriser les données de l'utilisateur, grâce à une structure similaire à une table de hachage, permettant de relier chaque id de session à l'ensemble des informations relatives à l'utilisateur. Ainsi en utilisant un mécanisme tel que les cookies, permettant d'associer une requête à un id, et l'objet HttpSession, permettant de relier des informations relatives à l'utilisateur à un id, il est possible d'associer facilement une requête aux informations de session ! Definition d’une session • Une session = Une suite d’interactions entre un client et Un serveur Web – Elle couvre plusieurs requêtes HTTP sur une période donnée • On peut utiliser les sessions pour – Mémoriser les actions d’un utilisateur unique – Exemples • achats en ligne (panier de commande) • examens à distance Fonctionnement d’une session  A la première requête vers une application web :  Un objet HttpSession est créé.  Ainsi qu’un identifiant unique pour cet objet.  L’identifiant est en général sauvegardé par un cookie appelé JSESSIONID seul l’identifiant de session est envoyé au client.  Grâce à cet identifiant, le serveur détermine l’objet session correspondant à la requête courante.  A toute nouvelle requête émise par l’utilisateur, le cookie est transmis via le serveur web et accédé par la méthode :
  • 6. 6 DEUXIEME RAPPORT EN JAVA EE public String HttpSession.getId() Méthodes utilisées API de suivi de session HttpSession  Méthodes de création liées à la requête (HttpServletRequest)  HttpSession getSession() : retourne la session associée à l’utilisateur  HttpSession getSession(boolean p) : création selon la valeur de p  Gestion d’association (HttpSession)  Enumeration getAttributNames() : retourne les noms de tous les attributs  Object getAttribut(String name) : retourne l’objet associé au nom  setAttribut(String na, Object va) : modifie na par la valeur va  removeAttribut(String na) : supprime l’attribut associé à  Destruction (HttpSession)  invalidate() : expire la session  logout() : termine la session getAttribut("nom") renvoie un objet de type Object, qu’il faut donc caster. Cycle de vie d’une session  A sa création, une période de temps est affectée à la session.  Elle expire automatiquement à la fin de cette période (par défaut 30mns avec Tomcat).  Elle peut être invalidée explicitement par la servlet (HttpSession.invalidate()). Permet de fermer une session.  A l’expiration (invalidation), les données de l’objet session (HttpSession) sont retournées au moteur de servlets.  Les sessions ne sont donc pas invalidées à la fermeture du navigateur. 6 6 na
  • 7. 7 7 7 DEUXIEME RAPPORT EN JAVA EE Travaux Pratique : 1- Suivi de session pour un compteur dynamique Dans cet exemple, nous allons savoir comment nous pouvons realiser un programme qui gardera la trace combien de fois la servlet a été consultée. Pour rédiger ce programme tout d'abord nous devons créer une classe CounterServlet . Le nom de la classe doit suivre la convention de nommage. N'oubliez pas de garder le nom de la classe de telle sorte qu'il devient facile de comprendre ce que le programme va faire juste en voyant le nom de la classe. Après avoir fait une classe définit un compteur de variable qui va garder une trace de combien de fois le servlet a été consultée. Maintenant, utilisez la méthode soit doGet () ou doPost () pour écrire une logique du programme. Notre logique du programme est simple. Nous devons tout simplement incrémenter la valeur du compteur de 1. Pour afficher la sortie utiliser la méthode de l'objet de la réponse qui sera à son tour renvoyer l'objet de la classe PrintWrite méthode getWriter (). Maintenant, afficher la valeur du compteur. Le code du programme est donné ci-dessous: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = {"/CounterServlet"}) public class CounterServlet extends HttpServlet { int counter = 0; public void doGet(HttpServletRequest req, HttpServletResponseres) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter pw = res.getWriter(); counter++; pw.println(" à present le nombre du compteur est : " + counter); } }
  • 8. 8 DEUXIEME RAPPORT EN JAVA EE configuration dans web.xml <?xml version="1.0" encoding="UTF <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web id="WebApp_ID" version="2.5"> <display-name>CounterServlet</display <servlet> <servlet-name>CounterServlet</servlet <servlet-class>CounterServlet</servlet </servlet> <servlet-mapping> <servlet-name>CounterServlet</servlet <url-pattern>/CounterServlet</url </servlet-mapping> <welcome-file <welcome-file>in </welcome-file </web-app> Dans notre cas le fichier web.xml n'est pas créer par netbeans et on doit l'ajouter clique droit sur l'application '' ApplicationWeb_SousUbuntu'', Nouveau , Autre / Web, StandardDeployementDescriptor(web.xml) UTF-8"?> XMLSchema-xmlns=" web-app_2_5.xsd" display-name> servlet-name> servlet-class> servlet-name> url-pattern> file-list> index.jsp</welcome-file> file-list> 8 8 -instance" web-xsi:
  • 9. 9 9 9 DEUXIEME RAPPORT EN JAVA EE Apres creation et configuration de web.xml vous pouvez exécuter la servlet .
  • 10. 10 10 10 DEUXIEME RAPPORT EN JAVA EE 2- suivi de session pour un compteur satatique Implémenter la méthode doGet pour gérer le suivi de session: Affiche un compteur qui est incrémenté à chaque accès sur cette servlet pendant une session.
  • 11. 11 DEUXIEME RAPPORT EN JAVA EE Cette servlet recupere d'abord l'objet HttpSession associé au client courant. En passant true à getSession() , elle demande la reation d'une session si nécessaire. LA servlet obtient ensuite un objet Integer lié au nom tracker.count. Si cet objet n'existe pas , la servlet démarre un nouveau compteur .sinon ,elle remplace l'Integer par un nouveau dont la valeur a été incrémentée de 1 . Enfin , la servlet affiche le compteur courant et toutes les paires nom/valeur de la session . 11 11
  • 12. 12 12 12 DEUXIEME RAPPORT EN JAVA EE  Mécanisme très puissant permettant de stocker des objets et non de simples chaînes de caractères comme les cookies.  Méthode de création (de HttpServletRequest) :  HttpSession getSession() : retourne la session associée à l’utilisateur.  Gestion d’association (de HttpSession) :  Enumération getAttributNames() : retourne les noms de tous les attributs.  Object getAttribut(String name) : retourne l’objet associé au nom.  setAttribut(String na, Object va) : donne la valeur va à l’attribut na.  removeAttribut(String na) : supprime l’attribut de nom na.  Destruction (de HttpSession) :  logout() : termine la session.