SlideShare une entreprise Scribd logo
1
Développement WEB avec Java
JSP/ Servlet /javaBean
Fonctionnement du Web
2
3
4
Construction d'une application Web
Préparer une arborescence par exemple dans le répertoire SiteWebTP. A partir de la racine de
cette arborescence placer correctement :
 le répertoire WEB-INF
 le répertoire classes où seront placées les servlets compilés
 le fichier web.xml
5
Le déploiement est une étape essentielle de la mise en place d’une application web. En effet,
le serveur doit être capable de localiser les servlets et les JSP invoquées par le navigateur.
6
7
8
9
Application JSP/Servlet
Lorsque l'utilisateur soumet ce formulaire, son nom est envoyé au servlet Hello parce nous
avons mis l'attribut ACTION pointer vers le servlet. Le formulaire utilise la méthode Get,
de sorte que toutes les données sont ajoutées (appended) à la requête URL comme une requête
de chaîne.
Par exemple, si l'utilisateur entre le nom "Inigo Montoya," la requête URL est
http: //serveur: 8080 / servlet / Hello ? name = Inigo +Montoya .
10
L'espace dans le nom est spécialement codé comme un signe plus par le navigateur (browser),
car les URL ne peuvent pas contenir d'espaces
Une servlet qui sait à qui dit Hello
La méthode getServletInfo( ) donne des informations descriptives sur le servlet.
11
JSP
Traducteur sous forme Servlet (méthode Get)
Import java.io.* ;
Import javax.servlet.* ;
Import javax.servlet.http.* ;
public class traduire extends HttpServlet(
// traiter la requête avec doGet( )
Public void doGet (HttpServletRequest req, HttpServletResponse rep)
Throws IOException, ServletException(
12
//Initialisation du type de la réponse
rep.setContentType (text/html)
// Ouverture du flux de la réponse http
PrintWriter pw=rep.getWriter ( ) ;
// Envoyer le code HTML sur le flux http
pw.println (<html>) ;
pw.println (<head>) ;
pw.println (<title>Une servlet pour traduire </title> ) ;
pw.println (</head>) ;
pw.println (<body bgcolor=’white’>) ;
// Vérifier si une phrase est transmise avec la requête
If (req.getParameter (phrase) == null) {
pw.println (<font size=+1>) ;
pw.println (Je n’ai pas de phrase à traduire</font>) ;
}
else {
//traiter la phrase fournie en paramètre
String phrase = req.getParameter (phrase) ;
phrase = phrase.replace (‘a’,’*’) ;
phrase = phrase.replace (‘o’,’ !’) ;
phrase = phrase.replace (‘e’,’%’) ;
}
pw.println (</body>) ;
pw.println (</html>) ;
}
}
Traducteur sous la forme d’un JSP
<html>
<head>
<title> Un JSP pour traduire une phrase </title>
</head>
13
<%--debut de scriplet --%>
<%
<%--rechercher le paramètre phrase transmis avec la requête --%>
String p= request.getParameter (phrase) ;
if (p !=null) {
<%-- si p ne vaut pas null, un paramètre est transmis le traiter --%>
p = p.replace (‘a’,’*’) ;
p = p.replace (‘o’,’ !’) ;
p = p.replace (‘e’,’%’) ;
%>
<%-- fin du if, affichage à l’aide de balises HTML --%>
<%-- affichage du contenu de p --%>
<p> J’ai compris : <%=p%> </p>
<%-- debut du else --%>
<%-- si il n’y a pas de paramètre transmis p vaut null --%>
} else {
%>
<%-- affichage à l’aide de balises HTML --%>
<p> Erreur : vous avez oublié la phrase à traduire <BR>
Exemple : http://localhost:8080/jsp/traduire.jsp?phrase=cours JSP LST IGI </p>
<%-- fin de else, fin de la scriplet --%>
<%
}
14
%>
</body>
</html>
Traducteur avec javaBean
// Un javabean doit être sérialisable pour être envoyer sur un flux
Import java.io.Serializable
public class phrase implements java.io.Serializable (
// Définition de la propriété de javaBean
private string phrase ;
// Définition de la méthode d’accès à la propriété, en modification
// Cette méthode remplace les caractères de la propriété de l’objet
Public void setphrase (string p) {
Phrase=p ;
phrase = phrase.replace (‘a’,’*’) ;
phrase = phrase.replace (‘o’,’ !’) ;
phrase = phrase.replace (‘e’,’%’) ;
}
// Définition de la méthode d’accès à la propriété, en consultation
Public void getphrase ( ) {
Return phrase ;
}
}
Un JSP qui appelle le javaBean phrase
<html>
15
<head>
<title> Java Bean pour traduire une phrase </title>
</head>
<body>
<%--Utiliser phrase.class, comme JavaBean avec comme nom d’objet p --%>
<jsp :useBean id=p class= phrase/>
<%--Placer dans la propriété phrase de l’objet p --%>
<%--la valeur du paramètre transmis avec la requête --%>
<jsp :setProperty name=p property= phrase param= param />
<%--récupérer la valeur de la propriété de l’objet p --%>
<BR> J’ai compris : <jsp :getProperty name=p property= phrase />
</body>
</html>
16
Application : Résultat d’une enquête
Le servlet stocke les résultats d’une enquête concernant vos animaux de compagnie préférés
sur le serveur. Lorsqu’un utilisateur répond à l’enquête, le servlet HTTPPostServlet envoie
un document HTML au client qui résume les résultats de l’enquête jusqu’à ce stade.
L’utilisateur choisit son animal préféré dans un bouton radio de la page Web de la figure puis
appuie sur Soumettre. Le navigateur envoie une requête POST en HTTP au servlet; celui-ci
réagit en lisant les résultats précédents de l’enquête dans un fichier sur le serveur, il met les
résultats du sondage à jour, les réinscrit sur le fichier du serveur, et il envoie enfin une page
Web au client qui lui indique les résultats cumulés de l’enquête.
17
18
19
La méthode doPost commence par déterminer si le fichier sondage.txt existe sur le serveur.
La ligne 18 définit un objet File nommé f dans ce but. Le programme ne fournit pas
d’emplacement pour le fichier. Par défaut, les fichiers créés par un servlet exécuté par le
WebServer JSDK sont stockés dans le répertoire d’installation du JSDK (jsdk2.1). Vous
pouvez imposer l’emplacement de stockage du fichier au moment de la création de l’objet
File.
À la ligne 20, si le fichier existe, son contenu est lu par le servlet, de sorte que les résultats du
sondage seront mis à jour et renvoyés au client en cours. Si le fichier n’existe pas, c’est-à-dire
si la requête actuelle est la toute première réponse au sondage, la méthode doPost crée le
fichier un peu plus loin dans le code.
20
Le tableau d’entiers animaux stocke le nombre de réponses pour chaque type d’animal. Si le
fichier qui contient les résultats précédents au sondage existe, alors les lignes 23 à 30 ouvrent
un ObjectInputStream pour lire le tableau d’entiers animaux et totaliser le nombre de
réponses qui ont été reçues jusqu’à cette étape. Lorsque le servlet crée le fichier et stocke le
tableau d’entiers, il utilise un ObjectOutputStream pour écrire le fichier.
La ligne 42 incrémente le total pour indiquer qu’il y a une réponse de plus au sondage.
Les lignes 45 à 47 déterminent l’animal sélectionné par le client et mettent à jour le total de
l’animal adéquat. Les lignes 50 à 55 ouvrent un ObjectOutputStream pour stocker les
résultats mis à jour de l’enquête dans le fichier sondage.txt. Ce fichier garantit que, même si
le servlet est interrompu et redémarré, les résultats du sondage demeurent sur disque.
Les lignes 58 à 61 préparent le pourcentage du total des votes qui représentent chaque animal.
Ces résultats sont renvoyés à l’utilisateur dans une partie de la HttpServletResponse.
Nous préparons la réponse à partir de la ligne 64, où la méthode setContentType de
ServletResponse spécifie que le contenu sera du texte d’un document HTML (text/html).
La ligne 66 utilise la méthode getWriter de ServletResponse pour obtenir une référence à un
objet PrintWriter et affecte celle-ci à sortieReponse. Cette référence sert à envoyer la
réponse au client. Le StringBuffer tamp de la ligne 67 stocke le contenu de la réponse
pendant que le servlet prépare le document HTML. Les lignes 68 à 86 préparent son contenu
par une suite d’appels à la méthode append de StringBuffer.

Contenu connexe

Tendances

Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
ENSET, Université Hassan II Casablanca
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
Lilia Sfaxi
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
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
ENSET, Université Hassan II Casablanca
 
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
ENSET, Université Hassan II Casablanca
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
Heithem Abbes
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
TP2 RMI
TP2 RMITP2 RMI
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring BatchAntoine Rey
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
Abdelouahed Abdou
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
Lilia Sfaxi
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
Lilia Sfaxi
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI
 

Tendances (20)

Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
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
 
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
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
TP2 RMI
TP2 RMITP2 RMI
TP2 RMI
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 

En vedette

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de données
Yassine Badri
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
Yassine Badri
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
Yassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
Yassine Badri
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
Yassine Badri
 
Cours php
Cours php Cours php
Cours php
Yassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
Yassine Badri
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
Yassine Badri
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
Yassine Badri
 
cours base de données
cours base de donnéescours base de données
cours base de données
Yassine Badri
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
Yassine Badri
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
Yassine Badri
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
Yassine Badri
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
Yassine Badri
 
Mise en place d'un Data Warehouse
Mise en place d'un Data WarehouseMise en place d'un Data Warehouse
Mise en place d'un Data Warehouse
Abderrahmane Filali
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
Yassine Badri
 
Educational Portal
Educational PortalEducational Portal
Educational Portal
Khouloud Ben Cheikh
 
Conception datawarehouse
Conception datawarehouseConception datawarehouse
Conception datawarehouse
Hassane Dkhissi
 
Cahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medicalCahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medical
Vincent H. Hupertan
 

En vedette (20)

Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de données
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
 
Cours php
Cours php Cours php
Cours php
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
 
cours base de données
cours base de donnéescours base de données
cours base de données
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
 
La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
 
Mise en place d'un Data Warehouse
Mise en place d'un Data WarehouseMise en place d'un Data Warehouse
Mise en place d'un Data Warehouse
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
Educational Portal
Educational PortalEducational Portal
Educational Portal
 
Bddwdm
BddwdmBddwdm
Bddwdm
 
Conception datawarehouse
Conception datawarehouseConception datawarehouse
Conception datawarehouse
 
Cahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medicalCahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medical
 

Similaire à cours j2ee -présentation

Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
Mathieu Hicauber
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
Korteby Farouk
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
Francois ANDRE
 
ajax.pdf
ajax.pdfajax.pdf
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax
MarouaneMyyara2
 
Tester les applications Zend Framework
Tester les applications Zend FrameworkTester les applications Zend Framework
Tester les applications Zend FrameworkMickael Perraud
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
Abdoulaye Dieng
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
Soukaina Boujadi
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
Abdoulaye Dieng
 
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
Elalami8
 
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 - CoursHoracio Gonzalez
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaCamblor Frédéric
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Mejdeddine Bouzouita
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer Faces
JS Bournival
 
Spring 3.0
Spring 3.0Spring 3.0
Rest ful architecture
Rest ful architectureRest ful architecture
Rest ful architecture
zaghir
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
ColombieColombie
 

Similaire à cours j2ee -présentation (20)

Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
ajax.pdf
ajax.pdfajax.pdf
ajax.pdf
 
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax
 
Serveur http
Serveur httpServeur http
Serveur http
 
Tester les applications Zend Framework
Tester les applications Zend FrameworkTester les applications Zend Framework
Tester les applications Zend Framework
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
 
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
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets Java
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer Faces
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
Rest ful architecture
Rest ful architectureRest ful architecture
Rest ful architecture
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
 

Plus de Yassine Badri

exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
Yassine Badri
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
Yassine Badri
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
Yassine Badri
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
Yassine Badri
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
Yassine Badri
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
Yassine Badri
 

Plus de Yassine Badri (6)

exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 

Dernier

Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distanciel
M2i Formation
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
Txaruka
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
ImnaTech
 
cours-insemination-artificielle-porcine.pdf
cours-insemination-artificielle-porcine.pdfcours-insemination-artificielle-porcine.pdf
cours-insemination-artificielle-porcine.pdf
MBAHERVEPATRICK
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
schneiderbeatrice78
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
bibliogard
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieur
NdeyeAminataDond
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Martin M Flynn
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
Txaruka
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
BenotGeorges3
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
GERESO
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
SAIDALI701276
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
LamoussaPaulOuattara1
 

Dernier (18)

Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distanciel
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
cours-insemination-artificielle-porcine.pdf
cours-insemination-artificielle-porcine.pdfcours-insemination-artificielle-porcine.pdf
cours-insemination-artificielle-porcine.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieur
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
 

cours j2ee -présentation

  • 1. 1 Développement WEB avec Java JSP/ Servlet /javaBean Fonctionnement du Web
  • 2. 2
  • 3. 3
  • 4. 4 Construction d'une application Web Préparer une arborescence par exemple dans le répertoire SiteWebTP. A partir de la racine de cette arborescence placer correctement :  le répertoire WEB-INF  le répertoire classes où seront placées les servlets compilés  le fichier web.xml
  • 5. 5 Le déploiement est une étape essentielle de la mise en place d’une application web. En effet, le serveur doit être capable de localiser les servlets et les JSP invoquées par le navigateur.
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9 Application JSP/Servlet Lorsque l'utilisateur soumet ce formulaire, son nom est envoyé au servlet Hello parce nous avons mis l'attribut ACTION pointer vers le servlet. Le formulaire utilise la méthode Get, de sorte que toutes les données sont ajoutées (appended) à la requête URL comme une requête de chaîne. Par exemple, si l'utilisateur entre le nom "Inigo Montoya," la requête URL est http: //serveur: 8080 / servlet / Hello ? name = Inigo +Montoya .
  • 10. 10 L'espace dans le nom est spécialement codé comme un signe plus par le navigateur (browser), car les URL ne peuvent pas contenir d'espaces Une servlet qui sait à qui dit Hello La méthode getServletInfo( ) donne des informations descriptives sur le servlet.
  • 11. 11 JSP Traducteur sous forme Servlet (méthode Get) Import java.io.* ; Import javax.servlet.* ; Import javax.servlet.http.* ; public class traduire extends HttpServlet( // traiter la requête avec doGet( ) Public void doGet (HttpServletRequest req, HttpServletResponse rep) Throws IOException, ServletException(
  • 12. 12 //Initialisation du type de la réponse rep.setContentType (text/html) // Ouverture du flux de la réponse http PrintWriter pw=rep.getWriter ( ) ; // Envoyer le code HTML sur le flux http pw.println (<html>) ; pw.println (<head>) ; pw.println (<title>Une servlet pour traduire </title> ) ; pw.println (</head>) ; pw.println (<body bgcolor=’white’>) ; // Vérifier si une phrase est transmise avec la requête If (req.getParameter (phrase) == null) { pw.println (<font size=+1>) ; pw.println (Je n’ai pas de phrase à traduire</font>) ; } else { //traiter la phrase fournie en paramètre String phrase = req.getParameter (phrase) ; phrase = phrase.replace (‘a’,’*’) ; phrase = phrase.replace (‘o’,’ !’) ; phrase = phrase.replace (‘e’,’%’) ; } pw.println (</body>) ; pw.println (</html>) ; } } Traducteur sous la forme d’un JSP <html> <head> <title> Un JSP pour traduire une phrase </title> </head>
  • 13. 13 <%--debut de scriplet --%> <% <%--rechercher le paramètre phrase transmis avec la requête --%> String p= request.getParameter (phrase) ; if (p !=null) { <%-- si p ne vaut pas null, un paramètre est transmis le traiter --%> p = p.replace (‘a’,’*’) ; p = p.replace (‘o’,’ !’) ; p = p.replace (‘e’,’%’) ; %> <%-- fin du if, affichage à l’aide de balises HTML --%> <%-- affichage du contenu de p --%> <p> J’ai compris : <%=p%> </p> <%-- debut du else --%> <%-- si il n’y a pas de paramètre transmis p vaut null --%> } else { %> <%-- affichage à l’aide de balises HTML --%> <p> Erreur : vous avez oublié la phrase à traduire <BR> Exemple : http://localhost:8080/jsp/traduire.jsp?phrase=cours JSP LST IGI </p> <%-- fin de else, fin de la scriplet --%> <% }
  • 14. 14 %> </body> </html> Traducteur avec javaBean // Un javabean doit être sérialisable pour être envoyer sur un flux Import java.io.Serializable public class phrase implements java.io.Serializable ( // Définition de la propriété de javaBean private string phrase ; // Définition de la méthode d’accès à la propriété, en modification // Cette méthode remplace les caractères de la propriété de l’objet Public void setphrase (string p) { Phrase=p ; phrase = phrase.replace (‘a’,’*’) ; phrase = phrase.replace (‘o’,’ !’) ; phrase = phrase.replace (‘e’,’%’) ; } // Définition de la méthode d’accès à la propriété, en consultation Public void getphrase ( ) { Return phrase ; } } Un JSP qui appelle le javaBean phrase <html>
  • 15. 15 <head> <title> Java Bean pour traduire une phrase </title> </head> <body> <%--Utiliser phrase.class, comme JavaBean avec comme nom d’objet p --%> <jsp :useBean id=p class= phrase/> <%--Placer dans la propriété phrase de l’objet p --%> <%--la valeur du paramètre transmis avec la requête --%> <jsp :setProperty name=p property= phrase param= param /> <%--récupérer la valeur de la propriété de l’objet p --%> <BR> J’ai compris : <jsp :getProperty name=p property= phrase /> </body> </html>
  • 16. 16 Application : Résultat d’une enquête Le servlet stocke les résultats d’une enquête concernant vos animaux de compagnie préférés sur le serveur. Lorsqu’un utilisateur répond à l’enquête, le servlet HTTPPostServlet envoie un document HTML au client qui résume les résultats de l’enquête jusqu’à ce stade. L’utilisateur choisit son animal préféré dans un bouton radio de la page Web de la figure puis appuie sur Soumettre. Le navigateur envoie une requête POST en HTTP au servlet; celui-ci réagit en lisant les résultats précédents de l’enquête dans un fichier sur le serveur, il met les résultats du sondage à jour, les réinscrit sur le fichier du serveur, et il envoie enfin une page Web au client qui lui indique les résultats cumulés de l’enquête.
  • 17. 17
  • 18. 18
  • 19. 19 La méthode doPost commence par déterminer si le fichier sondage.txt existe sur le serveur. La ligne 18 définit un objet File nommé f dans ce but. Le programme ne fournit pas d’emplacement pour le fichier. Par défaut, les fichiers créés par un servlet exécuté par le WebServer JSDK sont stockés dans le répertoire d’installation du JSDK (jsdk2.1). Vous pouvez imposer l’emplacement de stockage du fichier au moment de la création de l’objet File. À la ligne 20, si le fichier existe, son contenu est lu par le servlet, de sorte que les résultats du sondage seront mis à jour et renvoyés au client en cours. Si le fichier n’existe pas, c’est-à-dire si la requête actuelle est la toute première réponse au sondage, la méthode doPost crée le fichier un peu plus loin dans le code.
  • 20. 20 Le tableau d’entiers animaux stocke le nombre de réponses pour chaque type d’animal. Si le fichier qui contient les résultats précédents au sondage existe, alors les lignes 23 à 30 ouvrent un ObjectInputStream pour lire le tableau d’entiers animaux et totaliser le nombre de réponses qui ont été reçues jusqu’à cette étape. Lorsque le servlet crée le fichier et stocke le tableau d’entiers, il utilise un ObjectOutputStream pour écrire le fichier. La ligne 42 incrémente le total pour indiquer qu’il y a une réponse de plus au sondage. Les lignes 45 à 47 déterminent l’animal sélectionné par le client et mettent à jour le total de l’animal adéquat. Les lignes 50 à 55 ouvrent un ObjectOutputStream pour stocker les résultats mis à jour de l’enquête dans le fichier sondage.txt. Ce fichier garantit que, même si le servlet est interrompu et redémarré, les résultats du sondage demeurent sur disque. Les lignes 58 à 61 préparent le pourcentage du total des votes qui représentent chaque animal. Ces résultats sont renvoyés à l’utilisateur dans une partie de la HttpServletResponse. Nous préparons la réponse à partir de la ligne 64, où la méthode setContentType de ServletResponse spécifie que le contenu sera du texte d’un document HTML (text/html). La ligne 66 utilise la méthode getWriter de ServletResponse pour obtenir une référence à un objet PrintWriter et affecte celle-ci à sortieReponse. Cette référence sert à envoyer la réponse au client. Le StringBuffer tamp de la ligne 67 stocke le contenu de la réponse pendant que le servlet prépare le document HTML. Les lignes 68 à 86 préparent son contenu par une suite d’appels à la méthode append de StringBuffer.