SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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

Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
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 dependancesENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
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.youssfiENSET, Université Hassan II Casablanca
 
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...ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
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
 
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
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
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)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
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
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
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
 
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
 
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...
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 

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éesYassine Badri
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine 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
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine 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 relationellesYassine 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éesYassine 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 meriseYassine 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éesYassine 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 WarehouseAbderrahmane Filali
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 
Conception datawarehouse
Conception datawarehouseConception datawarehouse
Conception datawarehouseHassane Dkhissi
 

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
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
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
 

Similaire à cours j2ee -présentation

Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
 
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 JavaFrancois ANDRE
 
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 ajaxMarouaneMyyara2
 
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 asynchronesAbdoulaye Dieng
 
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllElalami8
 
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
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer FacesJS Bournival
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Mejdeddine Bouzouita
 
Rest ful architecture
Rest ful architectureRest ful architecture
Rest ful architecturezaghir
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye 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).pdfColombieColombie
 

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
 
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
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer Faces
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
 
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
 
.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 partie2Yassine 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

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 

Dernier (10)

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 

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.