SlideShare une entreprise Scribd logo
FORMATION JAVA/J2EE
2014/2015
DEF (DÉVELOPPEMENT/ENCADREMENT/FORMATION)
JAVA/J2EE: Objet/Connexion
JDBC/Hibernate/JPA/Servlet/JSP/Spring MVC
/Serveur d’application Tomcat
1
Java/J2EE
PLAN DU COURS
1. Mise en place de l’environnement de travail
2. Création et manipulations des objets en Java
3. TP1 : Connexion JDBC à la base de données
4. TP2 : Framework
5. TP3 : Application web J2EE
6. TP4 : Implémentation et Utilisation de Spring
MVC
7. TP5 : Développement d’un site de commerce
électronique en J2EE avec Spring MVC,
Hibernate, JPA, JSP , MySql…
2014/2015
12
Java/J2EE
QU’EST CE QUE JAVA? (1)
 Langage de programmation orienté objet (Classe, Objet,
Héritage, Encapsulation et Polymorphisme)
 Avec java on peut créer des application
multiplateformes. Les applications java sont portables.
C’est-à-dire, on peut créer une application java dans une
plateforme donnée et on peut l’exécuter sur n’importe
quelle autre plateforme.
 Le principe de java est : Write Once Run Every Where
 Open source: On peut récupérer le code source de java.
Ce qui permet aux développeurs, en cas de besoin, de
développer ou modifier des fonctionnalités de java.
2014/2015
3
Java/J2EE
QU’EST CE QUE JAVA? (2)
 Java est utilisé pour créer :
 Des applications Desktop
 Des applets java (applications java destinées à s’exécuter dans une
page web)
 Des applications pour les smart phones
 Des applications embarquées dans des cartes à puces
 Des application JEE (Java Entreprise Edition)
 Pour créer une application java, il faut installer un kit de
développement java
 JSDK : Java Standard Developpement Kit, pour développer les
application DeskTop
 JME : Java Mobile Edition, pour développer les applications pour
les téléphones potables
 JEE : Java Entreprise Edition, pour développer les applications qui
vont s’exécuter dans un serveur d’application JEE (Web Sphere Web
Logic, JBoss).
 JCA : Java Card Edition, pour développer les applications qui vont
s’éxécuter dans des cartes à puces.
2014/2015
4
Java/J2EE
MÉTHODE ORIENTÉ OBJET
 La méthode orientée objet permet de concevoir une
application sous la forme d'un ensemble d'objets reliés entre
eux par des relations
 Lorsque que l'on programme avec cette méthode, la
première question que l’on se pose plus souvent est :
 «qu'est-ce que je manipule ? »,
 Au lieu de « qu'est-ce que je fait ? ».
 L'une des caractéristiques de cette méthode permet de
concevoir de nouveaux objets à partir d'objets existants.
 On peut donc réutiliser les objets dans plusieurs applications.
 La réutilisation du code fut un argument déterminant pour
venter les avantages des langages à objets.
 Pour faire la programmation orientée objet il faut maitriser
les fondamentaux de l’orienté objet à savoir:
 Objet et classe
 Héritage
 Encapsulation (Accessibilité)
 Polymorphisme
2014/2015
5
Java/J2EE
OBJET JAVA
 Un objet est une structure informatique définie par un
état et un comportement
 Objet=état + comportement
 L’état regroupe les valeurs instantanées de tous les
attributs de l’objet.
 Le comportement regroupe toutes les compétences
et décrit les actions et les réactions de l’objet.
Autrement dit le comportement est défini par les
opérations que l’objet peut effectuer.
 L’état d’un objet peut changer dans le temps.
 Généralement, c’est le comportement qui modifie l’état
de l’objet
2014/2015
6
Java/J2EE
LES CLASSES
 Les objets qui ont des caractéristiques communes sont
regroupés dans une entité appelé classe.
 La classe décrit le domaine de définition d’un ensemble
d’objets.
 Chaque objet appartient à une classe
 Les généralités sont contenues dans les classes et les
particularités dans les objets.
 Les objets informatique sont construits à partir de leur
classe par un processus qui s’appelle l’instanciation.
 Tout objet est une instance d’une classe.
2014/2015
7
Java/J2EE
CARACTÉRISTIQUES D’UNE CLASSE
 Une classe est définit par: ses attributs & ses méthodes
 Les attributs permettent de décrire l’état de des objets de cette
classe. Chaque attribut est défini par:
 Son nom
 Son type
 Éventuellement sa valeur initiale
 Les méthodes permettent de décrire le comportement des objets de
cette classe.
 Une méthode représente une procédure ou une fonction qui
permet d’exécuter un certain nombre d’instructions.
 Parmi les méthode d’une classe, existe deux méthodes particulières:
 Une méthode qui est appelée au moment de la création d’un objet
de cette classe. Cette méthode est appelée CONSTRUCTEUR
 Une méthode qui est appelée au moment de la destruction d’un
objet. Cette méthode s’appelle le DESTRUCTEUR
2014/2015
8
Java/J2EE
PROBLÈME
 On souhaite créer un site web de commerce électronique qui se
compose de deux parties :
 Une partie back office qui nécessite une authentification et qui permet
de gérer les produits et les catégories
 L’administrateur a la possibilités de gérer les catégories et les produits
(Ajout, suppression, Edition, Modification et consultation) ainsi que les
droits d’accès
 Une partie front office qui représentent la boutique virtuelle qui
ne nécessite pas d’authentification. Dans cette partie l’utilisateur
a la possibilités de :
 Consulter toutes les catégories
 Consulter les produits d’une catégorie
 Consulter les produits sélectionnés
 Chercher des produits par mot clé
 Ajouter un produit avec une quantité au panier
 Supprimer un produit du panier
 Enregistrer le client et la commande des produits de son panier.
2014/2015
9
Java/J2EE
ARCHITECTURE
2014/2015
10
Java/J2EE
DIAGRAMME DE CLASSE
2014/2015
11
Java/J2EE
MAPPING OBJET/RELATIONNEL (1)
 Dans la pratique, on cherche toujours à séparer la logique de
métier de la logique de présentation.
 On peut dire qu’on peut diviser une application en 3
couches:
 La couche d’accès aux données: DAO
Partie de l’application qui permet d’accéder aux
données de l’applications . Ces données sont souvent
stockées dans des bases de données relationnelles .
 La couche Métier:
Regroupe l’ensemble des traitements que l’application
doit effectuer.
 La couche présentation:
S’occupe de la saisie des données et de l’affichage des
résultats;
2014/2015
12
Java/J2EE
MAPPING OBJET/RELATIONNEL (2)
 D’une manière générale les applications sont orientée objet :
 Manipulation des objet et des classes
 Utilisation de l’héritage et de l’encapsulation
 Utilisation du polymorphisme
 D’autres part les données persistantes sont souvent
stockées dans des bases de données relationnelles.
 Le mapping Objet relationnel consiste à faire correspondre
un enregistrement d’une table de la base de données à un
objet d’une classe correspondante.
 Dans ce cas on parle d’une classe persistante.
 Une classe persistante est une classe dont l’état de ses
objets sont stockés dans une unité de sauvegarde (Base de
données, Fichier, etc..)
2014/2015
13
Java/J2EE
ARCHITECTURE D’UNE APPLICATION
 Une application se compose de plusieurs couches:
 La couche DAO qui s’occupe de l’accès aux bases de données.
 La couche métier qui s’occupe des traitements.
 La couche présentation qui s’occupe de la saisie, le contrôle et
l’affichage des résultats. Généralement la couche présentation
respecte le pattern MVC qui fonctionne comme suit:
1. La vue permet de saisir les données, envoie ces données au
contrôleur
2. Le contrôleur récupère les données saisies. Après la validation de
ces données, il fait appel à la couche métier pour exécuter des
traitements.
3. Le contrôleur stocke le résultat de le modèle.
4. Le contrôleur fait appel à la vue pour afficher les résultats.
5. La vue récupère les résultats à partir du modèle et les affiche.
2014/2015
14
Java/J2EE
ARCHITECTURE D’UNE APPLICATION
2014/2015
15
Java/J2EE
2014/2015
ACCÈS AUX BASES DE
DONNÉES VIA JDBC
16
Java/J2EE
PILOTES JDBC
 Pour qu’une application java puisse communiquer avec un serveur
de bases de données, elle a besoin d’utiliser les pilotes JDBC (Java
Data Base Connectivity)
 Les Pilotes JDBC est une bibliothèque de classes java qui permet,
à une application java, de communiquer avec un SGBD via le
réseau en utilisant le protocole TCP/IP
 Chaque SGBD possède ses propres pilotes JDBC.
 Il existe un pilote particulier « JdbcOdbcDriver » qui permet à une
application java communiquer avec n’importe quelle source de
données via les pilotes ODBC (Open Data Base Connectivity)
 Les pilotes ODBC permettent à une application Windows de
communiquer une base de données quelconque (Access, Excel,
MySQL, Oracle, SQL SERVER etc…)
 La bibliothèque JDBC a été conçu comme interface pour
l’exécution de requêtes SQL.Une application JDBC est isolée des
caractéristiques particulières du système de base de données
utilisé.
2014/2015
17
Java/J2EE
JAVA & JDBC
2014/2015
18
Java/J2EE
CRÉER UNE APPLICATION JDBC
 Pour créer une application élémentaire de manipulation
d’une base de données il faut suivre les étapes suivantes :
 Chargement du Pilote JDBC ;
 Identification de la source de données ;
 Allocation d’un objet Connection
 Allocation d’un objet Instruction Statement ou
PreparedStatement
 Exécution d’une requête à l’aide de l’objet Statement ;
 Récupération de données à partir de l’objet renvoyé ResultSet ;
 Fermeture de l’objet ResultSet ;
 Fermeture de l’objet Statement ;
 Fermeture de l’objet Connection.
19
Java/J2EE2014/2015
CRÉER UNE APPLICATION JDBC
20
Java/J2EE2014/2015
DÉMARCHE JDBC
 Charger les pilotes JDBC :
 Utiliser la méthode forName de la classe Class, en
précisant le nom de la classe pilote.
 Exemples:
 Pour charger le pilote JdbcOdbcDriver:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
 Pour charger le pilote jdbc de MySQL:
Class.forName("com.mysql.jdbc.Driver") ;
21
Java/J2EE2014/2015
CRÉER UNE CONNEXION
 Pour créer une connexion à une base de données, il faut
utiliser la méthode statique getConnection() de la classe
DriverManager. Cette méthode fait appel aux pilotes JDBC
pour établir une connexion avec le SGBDR, en utilisant les
sockets.
 Pour un pilote com.mysql.jdbc.Driver :
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/DB", "user", "pass" );
 Pour un pilote sun.jdbc.odbc.JdbcOdbcDriver :
Connectio conn= DriverManager.getConnection
("jdbc:odbc:dsnSCO", "user", "pass" );
22
Java/J2EE2014/2015
OBJETS STATEMENT & RESULTSET
 Pour exécuter une requête SQL, on peut créer l’objet
Statement en utilisant la méthode createStatement() de
l’objet Connection.
Statement st=conn.createStatement();
 Pour exécuter une requête SQL de type select, on peut utiliser
la méthode executeQuery() de l’objet Statement. Cette
méthode exécute la requête et stocke le résultat de la requête
dans l’objet ResultSet:
ResultSet rs=st.executeQuery("select * from produit");
 Pour exécuter une requête SQL de type insert, update et
delete on peut utiliser la méthode executeUpdate() de l’objet
Statement :
st.executeUpdate("insert into produit(…) values(…)"); 23
Java/J2EE2014/2015
OBJET PREPAREDSTATEMENT
 Pour exécuter une requête SQL, on peut également créer l’objet
PreparedStatement en utilisant la méthode prepareStatement()
de l’objet Connection.
PreparedStatement ps=conn.prepareStatement("select *
from PRODUITS where NOM_PROD like ? AND PRIX<?");
 Définir les valeurs des paramètres de la requête:
ps.setString(1,"%"+motCle+"%");
ps.setString(2, p);
 Pour exécuter une requête SQL de type select, on peut utiliser la
méthode executeQuery() de l’objet Statement. Cette méthode
exécute la requête et stocke le résultat de la requête dans l’objet
ResultSet:
ResultSet rs=ps.executeQuery();
 Pour exécuter une requête SQL de type insert, update et delete
on peut utiliser la méthode executeUpdate() de l’objet Statement :
ps.executeUpdate(); 24
Java/J2EE2014/2015
LES DONNÉES D’UN RESULTSET
 Pour parcourir un ResultSet, on utilise sa méthode next() qui
permet de passer d’une ligne à l’autre. Si la ligne suivante
existe, la méthode next() retourne true. Si non elle retourne
false.
 Pour récupérer la valeur d’une colonne de la ligne courante du
ResultSet, on peut utiliser les méthodes getInt(colonne),
getString(colonne), getFloat(colonne), getDouble(colonne),
getDate(colonne), etc… colonne représente le numéro ou le
nom de la colonne de la ligne courante.
 Syntaxte:
while(rs.next()){
System.out.ptintln(rs.getInt(1));
System.out.ptintln(rs.getString("NOM_PROD"));
System.out.ptintln(rs.getDouble("PRIX"));
}
25
Java/J2EE2014/2015
2014/2015
LE FRAMEWORK
HIBERNATE
26
Java/J2EE
INTRODUCTION
 Travailler dans les deux univers que sont l'orienté objet
et la base de données relationnelle peut être lourd et
consommateur en temps dans le monde de l'entreprise
d'aujourd'hui.
 Hibernate est un outil de mapping objet/relationnel
pour le monde Java.
 Le terme mapping objet/relationnel (ORM) décrit la
technique consistant à faire le lien entre la
représentation objet des données et sa représentation
relationnelle basée sur un schéma SQL.
2014/2015
27
Java/J2EE
HIBERNATE?
 Hibernate s'occupe du transfert des objets Java dans les
tables de la base de données
 En plus, il permet de requêter les données et propose des
moyens de les récupérer.
 Il peut donc réduire de manière significative le temps de
développement qui aurait été autrement perdu dans une
manipulation manuelle des données via SQL et JDBC
 Le but d'Hibernate est de libérer le développeur de 95% des
tâches de programmation liées à la persistance des données
communes.
 Hibernate assure la portabilité de votre application si vous
changer de SGBD.
 Hibernate propose au développeur des méthodes d’accès
aux bases de données plus efficace ce qui devrait rassurer les
développeurs.
2014/2015
28
Java/J2EE
ARCHITECTURE HIBERNTE
 Hibernate permet d’assurer la persistance des
objets de l’application dans un entrepôt de
données.
 Cet entrepôt de données est dans la majorité des
cas une base de données relationnelle, mais il peut
être un fichier XML.
 Le mapping des objets est effectuée par Hibernate
en se basant sur des fichiers de configuration en
format texte ou souvent XML.
2014/2015
29
Java/J2EE
ARBORESCENCE DU PROJET
 Package def.hibernate.dto
 Produit.java
 Produit.hbm.xml (fichier de mapping xml)
 Package def.hibernate.presentation
 Classe principal main de test
 Package def.hibernate.metier
 IProduitService (interface)
 ProduitServiceImpl (implémentation)
 Package def.hibernate.dao
 IProduitDAO
 ProduitDAOImpl
 Package def.hibernate.utils
 HibernateUtil
Le fichier de configuration Hibernate hibernate.cfg.xml
2014/2015
30
Java/J2EE
MAPPER LA CLASSE PRODUIT
 Chaque classe persistante doivent être mapper à l’aide
d’un fichier hbm.xml.
 Créer un fichier Produit.hbm.xml pour mapper la classe
Produit.java
 Le fichier doit définir le nom de la table ainsi que les
champs correspondants.
2014/2015
31
Java/J2EE
FICHIER DE CONFIGURATION
 Création du fichier hibernate.cfg.xml sous la racine du
projet.
 Configuration des données liées à la base:driver, url, le
login et le mot de passe.
 Définir l’ensemble des fichiers de Mapping hbm.xml
2014/2015
32
Java/J2EE
CLASSE D’ACCÈS AUX DONNÉES DAO (1)
 Définir les méthodes à implémenter dans une interface:
IProduitDAO (pas d’implémentation)
 Méthode d’ajout insertProduit (objet chargé en paramètre
d’entré)
 Méthode de modification updateProduit
 Méthode de Suppression deleteProduit
 Méthode de recherche exemple: listProduitByMC (type de
retour liste de produit)
2014/2015
33
Java/J2EE
 Implémenter la méthode d’insertion d’un produit:
 Ouvrir une session de sessionFactory d’Hibernate
 Commencer une transaction
 Enregistrer l’objet produit avec la méthode save
d’hibernate
 Commiter la transaction
 Fermer la session d’hibernate.
2014/2015
34
Java/J2EE
CLASSE D’ACCÈS AUX DONNÉES DAO (2)
2014/2015
LE FRAMEWORK SPRING
MVC
35
Java/J2EE
FRAMEWORK SPRING
 Spring est un framework open source JEE pour les applications
ntiers, dont il facilite le développement et les tests.
 Il est considéré comme un conteneur dit « léger », c’est-à-dire
une infrastructure similaire à un serveur d’application J2EE.
 Il prend donc en charge la création d’objets et la mise en
relation d’objets par l’intermédiaire d’un fichier de
configuration qui décrit les objets à fabriquer et les relations de
dépendances entre ces objets.
 Il permet de séparer le code métier du code technique Spring
s’appuie principalement sur l’intégration de trois concepts clés:
 l’inversion de contrôle ou injection de dépendance (IoC).
 la programmation orientée aspect (AOP).
 une couche d’abstraction.
 Ce framework, grâce à sa couche d’abstraction, ne concurrence
pas d’autres frameworks dans une couche spécifique d’un
modèle architectural MVC mais s’avère un framework multi-
couches pouvant s’insérer au niveau de toutes les couches.
2014/2015
36
Java/J2EE
INJECTION DES DÉPENDANCES AVEC SPRING
(1)
 L’injection des dépendance, ou l’inversion de
contrôle est un concept qui intervient
généralement au début de l’exécution de
l’application.
 Spring IOC commence par lire un fichier XML
qui déclare quelles sont différentes classes à
instancier et d’assurer les dépendances entre les
différentes instances.
 Quand on a besoin d’intégrer une nouvelle
implémentation à une application, il suffirait de
la déclarer dans le fichier xml de beans spring.
2014/2015
37
Java/J2EE
INJECTION DES DÉPENDANCES AVEC SPRING (2)
 Dans une application web, SpringIOC est appelé au
démarrage du serveur en déclarant le listener
ContextLoaderListener dans le fichier web.xml
 Dans cette déclaration, CotextLoaderListener est appelé
par Tomcat au moment du démarrage de l’application.
Ce listener cherchera le fichier de beans spring « spring-
beans.xml » stocké dans le dossier WEB-INF. ce qui
permet de faire l’injection des dépendances entre
MetierImpl et DaoImpl
2014/2015
38
Java/J2EE
ARCHITECTURE SPRING MVC
2014/2015
39
Java/J2EE
SPRING MVC (1)
1. le client fait une demande au contrôleur. Celui-ci voit passer
toutes les demandes des clients. C'est la porte d'entrée de
l'application. C'est le C de MVC. Ici le contrôleur est assuré par
une servlet générique :
org.springframework.web.servlet.DispatcherServlet
2. le contrôleur principal [DispatcherServlet] fait exécuter l'action
demandée par l'utilisateur par une classe implémentant
l'interface : org.springframework.web.servlet.mvc.Controller
 A cause du nom de l'interface, nous appellerons une telle classe un contrôleur
secondaire pour le distinguer du contrôleur principal [DispatcherServlet] ou
simplement contrôleur lorsqu'il n'y a pas d'ambiguïté.
3. le contrôleur [Controller] traite une demande particulière de
l'utilisateur. Pour ce faire, il peut avoir besoin de l'aide de la
couche métier. Une fois la demande du client traitée, celle-ci peut
appeler diverses réponses. Un exemple classique est :
 une page d'erreurs si la demande n'a pu être traitée correctement
 une page de confirmation sinon
2014/2015
40
Java/J2EE
SPRING MVC (2)
4. Le contrôleur choisit la réponse (= vue) à envoyer au client.
Choisir la réponse à envoyer au client nécessite plusieurs
étapes :
 choisir l'objet qui va générer la réponse. C'est ce qu'on appelle la
vue V, le V de MVC. Ce choix dépend en général du résultat de
l'exécution de l'action demandée par l'utilisateur.
 lui fournir les données dont il a besoin pour générer cette réponse.
En effet, celle-ci contient le plus souvent des informations
calculées par la couche métier ou le contrôleur lui-même. Ces
informations forment ce qu'on appelle le modèle M de la vue, le
M de MVC.
 Cette étape consiste donc en le choix d'une vue V et la
construction du modèle M nécessaire à celle-ci.
2014/2015
41
Java/J2EE
SPRING MVC (3)
5. Le contrôleur DispatcherServlet demande à la vue
choisie de s'afficher. Il s'agit d'une classe
implémentant l'interface
org.springframework.web.servlet.View
 Spring MVC propose différentes implémentations de cette
interface pour générer des flux HTML, Excel, PDF, ...
6. le générateur de vue View utilise le modèle Map
préparé par le contrôleur Controller pour initialiser les
parties dynamiques de la réponse qu'il doit envoyer au
client.
7. la réponse est envoyée au client. La forme exacte de
celle-ci dépend du générateur de vue. Ce peut être un
flux HTML, XML, PDF, Excel, ...
2014/2015
42
Java/J2EE
FONCTIONNEMENT
2014/2015
43
Java/J2EE
LE FICHIER ROOT-CONTEXT.XML
 Ce fichier est lu par ContextLoaderListener, au démarrage
du serveur .
 C’est un fichier dans lequel contexte de l’application sera
construit ContextLoaderListener représente Spring IOC
 C’est donc un fichier pour l’injection des dépendances
 Pour le moment, il est vide
2014/2015
44
Java/J2EE

Contenu connexe

PDF
Support JEE Servlet Jsp MVC M.Youssfi
PPSX
Fondamentaux java
PDF
Appalications JEE avec Servlet/JSP
PDF
TD2 - UML - Correction
PPTX
Le diagnostic logistique final
PPT
ASP.NET MVC Presentation
PPTX
Java beans
PDF
Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Support JEE Servlet Jsp MVC M.Youssfi
Fondamentaux java
Appalications JEE avec Servlet/JSP
TD2 - UML - Correction
Le diagnostic logistique final
ASP.NET MVC Presentation
Java beans
Présentation intelligence artificielle et domaines d'applications - #DigitalT...

Tendances (20)

PDF
Support de cours Spring M.youssfi
PDF
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
PDF
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
PDF
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
PPTX
Chp2 - Vers les Architectures Orientées Services
PDF
Support POO Java première partie
PDF
Support de cours entrepise java beans ejb m.youssfi
PPTX
Architectures n-tiers
PDF
Support developpement applications mobiles avec ionic v3 et v4
PDF
Architecture jee principe de inversion de controle et injection des dependances
PPTX
Introduction aux architectures des SI
PDF
Support JEE Spring Inversion de Controle IOC et Spring MVC
PPTX
Introduction à spring boot
PDF
Tp3 - Application SOA avec BPEL
PDF
Support de cours angular
PPT
Présentation SOA
PPTX
Architectures 3-tiers (Web)
PPTX
Chp1- Introduction aux Technologies Web et SOA
PDF
Sécurité des Applications Web avec Json Web Token (JWT)
PDF
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Support de cours Spring M.youssfi
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Chp2 - Vers les Architectures Orientées Services
Support POO Java première partie
Support de cours entrepise java beans ejb m.youssfi
Architectures n-tiers
Support developpement applications mobiles avec ionic v3 et v4
Architecture jee principe de inversion de controle et injection des dependances
Introduction aux architectures des SI
Support JEE Spring Inversion de Controle IOC et Spring MVC
Introduction à spring boot
Tp3 - Application SOA avec BPEL
Support de cours angular
Présentation SOA
Architectures 3-tiers (Web)
Chp1- Introduction aux Technologies Web et SOA
Sécurité des Applications Web avec Json Web Token (JWT)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Publicité

Similaire à Formation JAVA/J2EE (20)

PDF
Introduction à Hibernate p.1
PPTX
Presentation JEE et son écossystéme
PDF
Présentation de JEE et de son écosysteme
PDF
Architecture java j2 ee a partager
PDF
Springioc
PDF
CHOUGDALI_CoursJEE.pdfhjkhjjjjjjjjjjjjjjjjjjjjjjjjjj
PDF
PPTX
Support cours j2_ee
PDF
Connexion jdbc
PPTX
JPA est middleware
PPT
PDF
Java Server Faces 2
PDF
Introduction jdbc
PDF
Certification java oracle java se 7 programmer
PDF
Framework Spring_ In!!!!!!!troduction.pdf
PDF
Framework Hibernate
PPTX
Introduction JavaEE
PPT
Java uik-chap2-dev java
PDF
Gradle_LyonJUG
PPTX
Ejb3 2-session-beans fr
Introduction à Hibernate p.1
Presentation JEE et son écossystéme
Présentation de JEE et de son écosysteme
Architecture java j2 ee a partager
Springioc
CHOUGDALI_CoursJEE.pdfhjkhjjjjjjjjjjjjjjjjjjjjjjjjjj
Support cours j2_ee
Connexion jdbc
JPA est middleware
Java Server Faces 2
Introduction jdbc
Certification java oracle java se 7 programmer
Framework Spring_ In!!!!!!!troduction.pdf
Framework Hibernate
Introduction JavaEE
Java uik-chap2-dev java
Gradle_LyonJUG
Ejb3 2-session-beans fr
Publicité

Plus de Ines Ouaz (17)

PDF
Cv ines ouaz
PPSX
Java & Etat de l'art
PDF
Prototype rapport
PDF
Cv Ouaz Ines
PDF
Environnement java
PDF
Application Spring MVC/IOC & Hibernate
PDF
Examen principal + Correction ASD
PDF
Examen principal - Algorithme & Structures de données
PDF
Examen principal- php - correction
PDF
Examen principal - PHP
DOCX
Examen principal - Fondement Multimedia - correction
DOCX
Examen Principal - Fondement Multimedia Janvier 2015
PDF
Travaux dirigés 1: algorithme & structures de données (corrigés)
PDF
Travaux dirigés 1: algorithme & structures de données
PPSX
Algorithme & structures de données Chap III
PPSX
Algorithme & structures de données Chap II
PPSX
Algorithme & structures de données Chap I
Cv ines ouaz
Java & Etat de l'art
Prototype rapport
Cv Ouaz Ines
Environnement java
Application Spring MVC/IOC & Hibernate
Examen principal + Correction ASD
Examen principal - Algorithme & Structures de données
Examen principal- php - correction
Examen principal - PHP
Examen principal - Fondement Multimedia - correction
Examen Principal - Fondement Multimedia Janvier 2015
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données
Algorithme & structures de données Chap III
Algorithme & structures de données Chap II
Algorithme & structures de données Chap I

Dernier (20)

PPTX
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
PDF
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
PPTX
Conception de documents et d'interfaces numériques.pptx
PPTX
risque environnema et mesure protect.pptx
PPTX
le subjonctif présent, Conjugaison français
PPTX
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Le tableau volé.pptx Film françaisde pascal Bonitzer
PDF
🎓 Le Secret des Profs Captivants - 💡 Pourquoi l’oral est stratégique en class...
PPTX
Formation Equipement de protection .pptx
PPTX
Bienvenido slides about the first steps in spanish.pptx
PPTX
Marketing de l'Artisanat et la technique
PPT
le-subjonctif-présent, Grammaire, français
PPTX
Séminaire protection des personnes vulnérables.pptx
PPTX
SESSION2-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
PPTX
Informatique pour débutants niveau 1.pptx
PPT
مبادئ و هدف الحركة الكشفية عرض تقديمي.ppt
PPTX
Le rendez-vous de l'été.pptx Film français
PPTX
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Hopital bonne sante.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
Conception de documents et d'interfaces numériques.pptx
risque environnema et mesure protect.pptx
le subjonctif présent, Conjugaison français
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Le tableau volé.pptx Film françaisde pascal Bonitzer
🎓 Le Secret des Profs Captivants - 💡 Pourquoi l’oral est stratégique en class...
Formation Equipement de protection .pptx
Bienvenido slides about the first steps in spanish.pptx
Marketing de l'Artisanat et la technique
le-subjonctif-présent, Grammaire, français
Séminaire protection des personnes vulnérables.pptx
SESSION2-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
Informatique pour débutants niveau 1.pptx
مبادئ و هدف الحركة الكشفية عرض تقديمي.ppt
Le rendez-vous de l'été.pptx Film français
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Hopital bonne sante.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Formation JAVA/J2EE

  • 1. FORMATION JAVA/J2EE 2014/2015 DEF (DÉVELOPPEMENT/ENCADREMENT/FORMATION) JAVA/J2EE: Objet/Connexion JDBC/Hibernate/JPA/Servlet/JSP/Spring MVC /Serveur d’application Tomcat 1 Java/J2EE
  • 2. PLAN DU COURS 1. Mise en place de l’environnement de travail 2. Création et manipulations des objets en Java 3. TP1 : Connexion JDBC à la base de données 4. TP2 : Framework 5. TP3 : Application web J2EE 6. TP4 : Implémentation et Utilisation de Spring MVC 7. TP5 : Développement d’un site de commerce électronique en J2EE avec Spring MVC, Hibernate, JPA, JSP , MySql… 2014/2015 12 Java/J2EE
  • 3. QU’EST CE QUE JAVA? (1)  Langage de programmation orienté objet (Classe, Objet, Héritage, Encapsulation et Polymorphisme)  Avec java on peut créer des application multiplateformes. Les applications java sont portables. C’est-à-dire, on peut créer une application java dans une plateforme donnée et on peut l’exécuter sur n’importe quelle autre plateforme.  Le principe de java est : Write Once Run Every Where  Open source: On peut récupérer le code source de java. Ce qui permet aux développeurs, en cas de besoin, de développer ou modifier des fonctionnalités de java. 2014/2015 3 Java/J2EE
  • 4. QU’EST CE QUE JAVA? (2)  Java est utilisé pour créer :  Des applications Desktop  Des applets java (applications java destinées à s’exécuter dans une page web)  Des applications pour les smart phones  Des applications embarquées dans des cartes à puces  Des application JEE (Java Entreprise Edition)  Pour créer une application java, il faut installer un kit de développement java  JSDK : Java Standard Developpement Kit, pour développer les application DeskTop  JME : Java Mobile Edition, pour développer les applications pour les téléphones potables  JEE : Java Entreprise Edition, pour développer les applications qui vont s’exécuter dans un serveur d’application JEE (Web Sphere Web Logic, JBoss).  JCA : Java Card Edition, pour développer les applications qui vont s’éxécuter dans des cartes à puces. 2014/2015 4 Java/J2EE
  • 5. MÉTHODE ORIENTÉ OBJET  La méthode orientée objet permet de concevoir une application sous la forme d'un ensemble d'objets reliés entre eux par des relations  Lorsque que l'on programme avec cette méthode, la première question que l’on se pose plus souvent est :  «qu'est-ce que je manipule ? »,  Au lieu de « qu'est-ce que je fait ? ».  L'une des caractéristiques de cette méthode permet de concevoir de nouveaux objets à partir d'objets existants.  On peut donc réutiliser les objets dans plusieurs applications.  La réutilisation du code fut un argument déterminant pour venter les avantages des langages à objets.  Pour faire la programmation orientée objet il faut maitriser les fondamentaux de l’orienté objet à savoir:  Objet et classe  Héritage  Encapsulation (Accessibilité)  Polymorphisme 2014/2015 5 Java/J2EE
  • 6. OBJET JAVA  Un objet est une structure informatique définie par un état et un comportement  Objet=état + comportement  L’état regroupe les valeurs instantanées de tous les attributs de l’objet.  Le comportement regroupe toutes les compétences et décrit les actions et les réactions de l’objet. Autrement dit le comportement est défini par les opérations que l’objet peut effectuer.  L’état d’un objet peut changer dans le temps.  Généralement, c’est le comportement qui modifie l’état de l’objet 2014/2015 6 Java/J2EE
  • 7. LES CLASSES  Les objets qui ont des caractéristiques communes sont regroupés dans une entité appelé classe.  La classe décrit le domaine de définition d’un ensemble d’objets.  Chaque objet appartient à une classe  Les généralités sont contenues dans les classes et les particularités dans les objets.  Les objets informatique sont construits à partir de leur classe par un processus qui s’appelle l’instanciation.  Tout objet est une instance d’une classe. 2014/2015 7 Java/J2EE
  • 8. CARACTÉRISTIQUES D’UNE CLASSE  Une classe est définit par: ses attributs & ses méthodes  Les attributs permettent de décrire l’état de des objets de cette classe. Chaque attribut est défini par:  Son nom  Son type  Éventuellement sa valeur initiale  Les méthodes permettent de décrire le comportement des objets de cette classe.  Une méthode représente une procédure ou une fonction qui permet d’exécuter un certain nombre d’instructions.  Parmi les méthode d’une classe, existe deux méthodes particulières:  Une méthode qui est appelée au moment de la création d’un objet de cette classe. Cette méthode est appelée CONSTRUCTEUR  Une méthode qui est appelée au moment de la destruction d’un objet. Cette méthode s’appelle le DESTRUCTEUR 2014/2015 8 Java/J2EE
  • 9. PROBLÈME  On souhaite créer un site web de commerce électronique qui se compose de deux parties :  Une partie back office qui nécessite une authentification et qui permet de gérer les produits et les catégories  L’administrateur a la possibilités de gérer les catégories et les produits (Ajout, suppression, Edition, Modification et consultation) ainsi que les droits d’accès  Une partie front office qui représentent la boutique virtuelle qui ne nécessite pas d’authentification. Dans cette partie l’utilisateur a la possibilités de :  Consulter toutes les catégories  Consulter les produits d’une catégorie  Consulter les produits sélectionnés  Chercher des produits par mot clé  Ajouter un produit avec une quantité au panier  Supprimer un produit du panier  Enregistrer le client et la commande des produits de son panier. 2014/2015 9 Java/J2EE
  • 12. MAPPING OBJET/RELATIONNEL (1)  Dans la pratique, on cherche toujours à séparer la logique de métier de la logique de présentation.  On peut dire qu’on peut diviser une application en 3 couches:  La couche d’accès aux données: DAO Partie de l’application qui permet d’accéder aux données de l’applications . Ces données sont souvent stockées dans des bases de données relationnelles .  La couche Métier: Regroupe l’ensemble des traitements que l’application doit effectuer.  La couche présentation: S’occupe de la saisie des données et de l’affichage des résultats; 2014/2015 12 Java/J2EE
  • 13. MAPPING OBJET/RELATIONNEL (2)  D’une manière générale les applications sont orientée objet :  Manipulation des objet et des classes  Utilisation de l’héritage et de l’encapsulation  Utilisation du polymorphisme  D’autres part les données persistantes sont souvent stockées dans des bases de données relationnelles.  Le mapping Objet relationnel consiste à faire correspondre un enregistrement d’une table de la base de données à un objet d’une classe correspondante.  Dans ce cas on parle d’une classe persistante.  Une classe persistante est une classe dont l’état de ses objets sont stockés dans une unité de sauvegarde (Base de données, Fichier, etc..) 2014/2015 13 Java/J2EE
  • 14. ARCHITECTURE D’UNE APPLICATION  Une application se compose de plusieurs couches:  La couche DAO qui s’occupe de l’accès aux bases de données.  La couche métier qui s’occupe des traitements.  La couche présentation qui s’occupe de la saisie, le contrôle et l’affichage des résultats. Généralement la couche présentation respecte le pattern MVC qui fonctionne comme suit: 1. La vue permet de saisir les données, envoie ces données au contrôleur 2. Le contrôleur récupère les données saisies. Après la validation de ces données, il fait appel à la couche métier pour exécuter des traitements. 3. Le contrôleur stocke le résultat de le modèle. 4. Le contrôleur fait appel à la vue pour afficher les résultats. 5. La vue récupère les résultats à partir du modèle et les affiche. 2014/2015 14 Java/J2EE
  • 16. 2014/2015 ACCÈS AUX BASES DE DONNÉES VIA JDBC 16 Java/J2EE
  • 17. PILOTES JDBC  Pour qu’une application java puisse communiquer avec un serveur de bases de données, elle a besoin d’utiliser les pilotes JDBC (Java Data Base Connectivity)  Les Pilotes JDBC est une bibliothèque de classes java qui permet, à une application java, de communiquer avec un SGBD via le réseau en utilisant le protocole TCP/IP  Chaque SGBD possède ses propres pilotes JDBC.  Il existe un pilote particulier « JdbcOdbcDriver » qui permet à une application java communiquer avec n’importe quelle source de données via les pilotes ODBC (Open Data Base Connectivity)  Les pilotes ODBC permettent à une application Windows de communiquer une base de données quelconque (Access, Excel, MySQL, Oracle, SQL SERVER etc…)  La bibliothèque JDBC a été conçu comme interface pour l’exécution de requêtes SQL.Une application JDBC est isolée des caractéristiques particulières du système de base de données utilisé. 2014/2015 17 Java/J2EE
  • 19. CRÉER UNE APPLICATION JDBC  Pour créer une application élémentaire de manipulation d’une base de données il faut suivre les étapes suivantes :  Chargement du Pilote JDBC ;  Identification de la source de données ;  Allocation d’un objet Connection  Allocation d’un objet Instruction Statement ou PreparedStatement  Exécution d’une requête à l’aide de l’objet Statement ;  Récupération de données à partir de l’objet renvoyé ResultSet ;  Fermeture de l’objet ResultSet ;  Fermeture de l’objet Statement ;  Fermeture de l’objet Connection. 19 Java/J2EE2014/2015
  • 20. CRÉER UNE APPLICATION JDBC 20 Java/J2EE2014/2015
  • 21. DÉMARCHE JDBC  Charger les pilotes JDBC :  Utiliser la méthode forName de la classe Class, en précisant le nom de la classe pilote.  Exemples:  Pour charger le pilote JdbcOdbcDriver: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;  Pour charger le pilote jdbc de MySQL: Class.forName("com.mysql.jdbc.Driver") ; 21 Java/J2EE2014/2015
  • 22. CRÉER UNE CONNEXION  Pour créer une connexion à une base de données, il faut utiliser la méthode statique getConnection() de la classe DriverManager. Cette méthode fait appel aux pilotes JDBC pour établir une connexion avec le SGBDR, en utilisant les sockets.  Pour un pilote com.mysql.jdbc.Driver : Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/DB", "user", "pass" );  Pour un pilote sun.jdbc.odbc.JdbcOdbcDriver : Connectio conn= DriverManager.getConnection ("jdbc:odbc:dsnSCO", "user", "pass" ); 22 Java/J2EE2014/2015
  • 23. OBJETS STATEMENT & RESULTSET  Pour exécuter une requête SQL, on peut créer l’objet Statement en utilisant la méthode createStatement() de l’objet Connection. Statement st=conn.createStatement();  Pour exécuter une requête SQL de type select, on peut utiliser la méthode executeQuery() de l’objet Statement. Cette méthode exécute la requête et stocke le résultat de la requête dans l’objet ResultSet: ResultSet rs=st.executeQuery("select * from produit");  Pour exécuter une requête SQL de type insert, update et delete on peut utiliser la méthode executeUpdate() de l’objet Statement : st.executeUpdate("insert into produit(…) values(…)"); 23 Java/J2EE2014/2015
  • 24. OBJET PREPAREDSTATEMENT  Pour exécuter une requête SQL, on peut également créer l’objet PreparedStatement en utilisant la méthode prepareStatement() de l’objet Connection. PreparedStatement ps=conn.prepareStatement("select * from PRODUITS where NOM_PROD like ? AND PRIX<?");  Définir les valeurs des paramètres de la requête: ps.setString(1,"%"+motCle+"%"); ps.setString(2, p);  Pour exécuter une requête SQL de type select, on peut utiliser la méthode executeQuery() de l’objet Statement. Cette méthode exécute la requête et stocke le résultat de la requête dans l’objet ResultSet: ResultSet rs=ps.executeQuery();  Pour exécuter une requête SQL de type insert, update et delete on peut utiliser la méthode executeUpdate() de l’objet Statement : ps.executeUpdate(); 24 Java/J2EE2014/2015
  • 25. LES DONNÉES D’UN RESULTSET  Pour parcourir un ResultSet, on utilise sa méthode next() qui permet de passer d’une ligne à l’autre. Si la ligne suivante existe, la méthode next() retourne true. Si non elle retourne false.  Pour récupérer la valeur d’une colonne de la ligne courante du ResultSet, on peut utiliser les méthodes getInt(colonne), getString(colonne), getFloat(colonne), getDouble(colonne), getDate(colonne), etc… colonne représente le numéro ou le nom de la colonne de la ligne courante.  Syntaxte: while(rs.next()){ System.out.ptintln(rs.getInt(1)); System.out.ptintln(rs.getString("NOM_PROD")); System.out.ptintln(rs.getDouble("PRIX")); } 25 Java/J2EE2014/2015
  • 27. INTRODUCTION  Travailler dans les deux univers que sont l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps dans le monde de l'entreprise d'aujourd'hui.  Hibernate est un outil de mapping objet/relationnel pour le monde Java.  Le terme mapping objet/relationnel (ORM) décrit la technique consistant à faire le lien entre la représentation objet des données et sa représentation relationnelle basée sur un schéma SQL. 2014/2015 27 Java/J2EE
  • 28. HIBERNATE?  Hibernate s'occupe du transfert des objets Java dans les tables de la base de données  En plus, il permet de requêter les données et propose des moyens de les récupérer.  Il peut donc réduire de manière significative le temps de développement qui aurait été autrement perdu dans une manipulation manuelle des données via SQL et JDBC  Le but d'Hibernate est de libérer le développeur de 95% des tâches de programmation liées à la persistance des données communes.  Hibernate assure la portabilité de votre application si vous changer de SGBD.  Hibernate propose au développeur des méthodes d’accès aux bases de données plus efficace ce qui devrait rassurer les développeurs. 2014/2015 28 Java/J2EE
  • 29. ARCHITECTURE HIBERNTE  Hibernate permet d’assurer la persistance des objets de l’application dans un entrepôt de données.  Cet entrepôt de données est dans la majorité des cas une base de données relationnelle, mais il peut être un fichier XML.  Le mapping des objets est effectuée par Hibernate en se basant sur des fichiers de configuration en format texte ou souvent XML. 2014/2015 29 Java/J2EE
  • 30. ARBORESCENCE DU PROJET  Package def.hibernate.dto  Produit.java  Produit.hbm.xml (fichier de mapping xml)  Package def.hibernate.presentation  Classe principal main de test  Package def.hibernate.metier  IProduitService (interface)  ProduitServiceImpl (implémentation)  Package def.hibernate.dao  IProduitDAO  ProduitDAOImpl  Package def.hibernate.utils  HibernateUtil Le fichier de configuration Hibernate hibernate.cfg.xml 2014/2015 30 Java/J2EE
  • 31. MAPPER LA CLASSE PRODUIT  Chaque classe persistante doivent être mapper à l’aide d’un fichier hbm.xml.  Créer un fichier Produit.hbm.xml pour mapper la classe Produit.java  Le fichier doit définir le nom de la table ainsi que les champs correspondants. 2014/2015 31 Java/J2EE
  • 32. FICHIER DE CONFIGURATION  Création du fichier hibernate.cfg.xml sous la racine du projet.  Configuration des données liées à la base:driver, url, le login et le mot de passe.  Définir l’ensemble des fichiers de Mapping hbm.xml 2014/2015 32 Java/J2EE
  • 33. CLASSE D’ACCÈS AUX DONNÉES DAO (1)  Définir les méthodes à implémenter dans une interface: IProduitDAO (pas d’implémentation)  Méthode d’ajout insertProduit (objet chargé en paramètre d’entré)  Méthode de modification updateProduit  Méthode de Suppression deleteProduit  Méthode de recherche exemple: listProduitByMC (type de retour liste de produit) 2014/2015 33 Java/J2EE
  • 34.  Implémenter la méthode d’insertion d’un produit:  Ouvrir une session de sessionFactory d’Hibernate  Commencer une transaction  Enregistrer l’objet produit avec la méthode save d’hibernate  Commiter la transaction  Fermer la session d’hibernate. 2014/2015 34 Java/J2EE CLASSE D’ACCÈS AUX DONNÉES DAO (2)
  • 36. FRAMEWORK SPRING  Spring est un framework open source JEE pour les applications ntiers, dont il facilite le développement et les tests.  Il est considéré comme un conteneur dit « léger », c’est-à-dire une infrastructure similaire à un serveur d’application J2EE.  Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets.  Il permet de séparer le code métier du code technique Spring s’appuie principalement sur l’intégration de trois concepts clés:  l’inversion de contrôle ou injection de dépendance (IoC).  la programmation orientée aspect (AOP).  une couche d’abstraction.  Ce framework, grâce à sa couche d’abstraction, ne concurrence pas d’autres frameworks dans une couche spécifique d’un modèle architectural MVC mais s’avère un framework multi- couches pouvant s’insérer au niveau de toutes les couches. 2014/2015 36 Java/J2EE
  • 37. INJECTION DES DÉPENDANCES AVEC SPRING (1)  L’injection des dépendance, ou l’inversion de contrôle est un concept qui intervient généralement au début de l’exécution de l’application.  Spring IOC commence par lire un fichier XML qui déclare quelles sont différentes classes à instancier et d’assurer les dépendances entre les différentes instances.  Quand on a besoin d’intégrer une nouvelle implémentation à une application, il suffirait de la déclarer dans le fichier xml de beans spring. 2014/2015 37 Java/J2EE
  • 38. INJECTION DES DÉPENDANCES AVEC SPRING (2)  Dans une application web, SpringIOC est appelé au démarrage du serveur en déclarant le listener ContextLoaderListener dans le fichier web.xml  Dans cette déclaration, CotextLoaderListener est appelé par Tomcat au moment du démarrage de l’application. Ce listener cherchera le fichier de beans spring « spring- beans.xml » stocké dans le dossier WEB-INF. ce qui permet de faire l’injection des dépendances entre MetierImpl et DaoImpl 2014/2015 38 Java/J2EE
  • 40. SPRING MVC (1) 1. le client fait une demande au contrôleur. Celui-ci voit passer toutes les demandes des clients. C'est la porte d'entrée de l'application. C'est le C de MVC. Ici le contrôleur est assuré par une servlet générique : org.springframework.web.servlet.DispatcherServlet 2. le contrôleur principal [DispatcherServlet] fait exécuter l'action demandée par l'utilisateur par une classe implémentant l'interface : org.springframework.web.servlet.mvc.Controller  A cause du nom de l'interface, nous appellerons une telle classe un contrôleur secondaire pour le distinguer du contrôleur principal [DispatcherServlet] ou simplement contrôleur lorsqu'il n'y a pas d'ambiguïté. 3. le contrôleur [Controller] traite une demande particulière de l'utilisateur. Pour ce faire, il peut avoir besoin de l'aide de la couche métier. Une fois la demande du client traitée, celle-ci peut appeler diverses réponses. Un exemple classique est :  une page d'erreurs si la demande n'a pu être traitée correctement  une page de confirmation sinon 2014/2015 40 Java/J2EE
  • 41. SPRING MVC (2) 4. Le contrôleur choisit la réponse (= vue) à envoyer au client. Choisir la réponse à envoyer au client nécessite plusieurs étapes :  choisir l'objet qui va générer la réponse. C'est ce qu'on appelle la vue V, le V de MVC. Ce choix dépend en général du résultat de l'exécution de l'action demandée par l'utilisateur.  lui fournir les données dont il a besoin pour générer cette réponse. En effet, celle-ci contient le plus souvent des informations calculées par la couche métier ou le contrôleur lui-même. Ces informations forment ce qu'on appelle le modèle M de la vue, le M de MVC.  Cette étape consiste donc en le choix d'une vue V et la construction du modèle M nécessaire à celle-ci. 2014/2015 41 Java/J2EE
  • 42. SPRING MVC (3) 5. Le contrôleur DispatcherServlet demande à la vue choisie de s'afficher. Il s'agit d'une classe implémentant l'interface org.springframework.web.servlet.View  Spring MVC propose différentes implémentations de cette interface pour générer des flux HTML, Excel, PDF, ... 6. le générateur de vue View utilise le modèle Map préparé par le contrôleur Controller pour initialiser les parties dynamiques de la réponse qu'il doit envoyer au client. 7. la réponse est envoyée au client. La forme exacte de celle-ci dépend du générateur de vue. Ce peut être un flux HTML, XML, PDF, Excel, ... 2014/2015 42 Java/J2EE
  • 44. LE FICHIER ROOT-CONTEXT.XML  Ce fichier est lu par ContextLoaderListener, au démarrage du serveur .  C’est un fichier dans lequel contexte de l’application sera construit ContextLoaderListener représente Spring IOC  C’est donc un fichier pour l’injection des dépendances  Pour le moment, il est vide 2014/2015 44 Java/J2EE