Programme du module: Environnement
JEE
1 Chapitre 1: Introduction JEE
2
Chapitre 2: Les servlets
3
Chapitre 3: Les JSP et Java Bean
4 Chapitre 4 : JSTL et JDBC
5
45 Chapitre 5: Les EJB
6 Chapitre 6 : Développement d’application JEE avec Spring;
(Spring I o C , Spring A O P , Spring M V C , Spring Boot, Spring
DATA/JPA)
OUANAN Mohammed
JEE : introduction
Mohammed OUANAN
[Link]@[Link]
OUANAN Mohammed
Plan
1 Introduction
2
Fonctionnement
3
Installation et configuration
JDK
IDE
Serveur HTTP
4
Création d’un premier projet web (avec Eclipse)
5
Structure d’un projet JEE réalisé sous Eclipse
6
Premier Hello world
7 Architecture MVC et Multi-tiers
OUANAN Mohammed
Qu’est ce que
Java EE?
OUANAN Mohammed
Introduction
Le besoin de JEE?
Dynamiser le contenu web
Apparition de génération dynamique de code (ASP,-
1996- 2002, PHP-1997 , JEE - 1999)
Apparition des applets (exécution code java
sur navigateur)
Echanger des informations entre applications
RMI, Corba, EJB
Création de véritables d’architectures logicielles
Architectures 3tiers, Modèle-Vue-Contrôleur
Harmonisation des infrastructures
OUANAN Mohammed 10
Introduction
Jakarta EE
JEE
1999 : inclus dans Java 2 sous le nom J2EE pour Java 2 Platform
Enterprise Edition
2006 : renommé depuis Java 5 en JEE pour Java Platform
Enterprise Edition
2017 : Oracle confie le projet à Eclipse Foundation qui décide
de le renommer Jakarta EE
OUANAN Mohammed
Introduction
Jakarta EE
JEE
Plateforme facilitant le développement d’applications d’entreprise
distribuées
Développée par Sun puis Oracle
JEE = JSE + plusieurs autres API
JSE : Java Standard Edition (anciennement J2SE)
API : Application Programming Interface
OUANAN Mohammed
Fonctionement
Jakarta EE
Positionenment des serveurs JEE
OUANAN Mohammed
Jakarta EE côté client
Un client Java EE peut être :
• une application console écrite en Java
• une application dotée d'une interface graphique Swing.
Ce type de client est appelé client lourd, en raison de la quantité importante de
code qu'il met en œuvre.
Un client Java EE peut également être conçu pour être utilisé à partir du Web.
• Ce type de client fonctionne à l'intérieur d'un navigateur Web.
• La plus grande partie du travail est reportée sur le serveur et le client ne comporte
que très peu de code. Pour cette raison, on parle de client léger.
Un client léger peut être une simple interface HTML, une page contenant des scripts
JavaScript, ou encore une applet Java si une interface un peu plus riche est
nécessaire.
OUANAN Mohammed
Jakarta EE côté Serveur
Les API de Java EE peuvent se répartir en deux grandes catégories :
Les composants déployés sur le serveur
Les composants web qui sont réalisés à l'aide de servlets, de
JavaServer Pages (JSP) ou de Java server face (JSF).
Les composants métier sont des Entreprise JavaBeans (EJB). Il s'agit
de composants spécifiques chargés des traitements des données et de
l'interfaçage avec les bases de données.
Les services
Les services d'infrastructures : JDBC, JNDI, JTA, JCA, JMX
Les services de communication : RMI-IIOP, JavaMail, JAAS
OUANAN Mohammed
Introduction
Les principaux composants Jakarta EE
Servlet: Utilise les mécanismes de requetes-reponses http afin d’effectuer des tâches ou de générer
des pages html
EJB : définit la façon dont les composants doivent être écrits et le contrat qu’ils doivent respecter
avec le serveur d’application
RMI : communication inter procédés
JNDI : C’une API d'accès aux services de nommage et aux annuaires d'entreprises tels que
DNS, NIS, LDAP, etc.
JDBC : connexion vers les bases de données
JTA : service de transaction
JMS : service de messagerie
JSP : Java Server Page
Java IDL : intégration aux autres langages (ex: CORBA) JavaMail
Connectors : intégration à des middlewares existants XML
OUANAN
OUANAN Mohammed
Mohammed 1813
Les conteneurs JEE
Un conteneur (container) est l'interface entre le composant
et les services de bas niveaux nécessaires
● Pour pouvoir être exécuté, un composant / application
web doit être :
(1) assemblé dans un module Java EE
(2) déployé dans son conteneur.
OUANAN Mohammed
Les conteneurs JEE
Les conteneurs sont les éléments fondamentaux de l'architecture Java EE.
Ils fournissent un ensemble de services permettant aux développeurs d'applications de se
concentrer sur la logique métier du problème à résoudre sans se préoccuper de toute
l'infrastructure interne.
Les conteneurs assurent la gestion du cycle de vie des composants qui s'exécutent en eux.
Les conteneurs fournissent des services qui peuvent être utilisés par les applications lors de
leur exécution.
La plate-forme Java EE disposent de conteneurs pour les composants Web et les
composants métiers.
Ces conteneurs possèdent des interfaces leur permettant de communiquer avec les
composants qu'ils hébergent.
Il existe plusieurs conteneurs définit par Java EE:
• conteneur web : pour exécuter les servlets, les JSP et JSF
• conteneur d'EJB : pour exécuter les EJB
• conteneur client : pour exécuter des applications autonomes sur les postes qui utilisent des
composants Java EE
OUANAN Mohammed
Comparaison des fichiers JAR, WAR et EAR
sont des formats d'archives utilisés pour regrouper et distribuer des applications. Chacun de ces
formats a un objectif spécifique, lié à l'environnement dans lequel l'application sera déployée
(standalone ou serveur d'applications)
OUANAN Mohammed
Déploiement d’une application
Pour déployer une application dans un conteneur, il faut lui fournir
deux éléments :
l'application avec tous les composants (classes compilées,
ressources ...) regroupée dans une archive ou module. Chaque
conteneur possède son propre format d'archive.
un fichier descripteur de déploiement contenu dans le module qui
précise au conteneur des options pour exécuter l'application
Une application est un regroupement d'un ou plusieurs modules
dans un fichier EAR (Entreprise ARchive). L'application est décrite
dans un fichier [Link] lui même contenu dans le fichier
EAR
OUANAN Mohammed
Fonctionnement
Jakarta EE
Vue Modèle
(page J S P ) (Java Bean)
Requête
HTTP
Contrôleur
(Servlet)
Réponse
HTTP
Client Serveur
OUANAN Mohammed
Fonctionnement
Jakarta EE
Déroulement
L’échange entre le client et le serveur s’effectue via le modèle
HTTP (requête - réponse)
Lorsque l’utilisateur saisit l’adresse d’une page de notre site, cette
dernière sera envoyée sous forme de requête HTTP au contrôleur
Le contrôleur demande au modèle de lui fournir certaines
données
Ensuite il renvoie ces données à la vue pour qu’elle construise la
page HTML
Enfin le client reçoit la réponse sous forme de page JSP
OUANAN Mohammed
Installation et configuration
Jakarta EE
De quoi on a besoin
JDK : Java Development Kit
IDE : Integrated Development Environment (Environnement de
Développement Inté gré )
Un serveur HTTP
OUANAN Mohammed
Installation et configuration IDE
Jakarta EE
Environnement de Dévloppement I n t é g r é
Eclipse
Netbeans
JDeveloper
IntelliJ IDEA
JBuilder
JCreator...
...
OUANAN Mohammed
Installation et configuration IDE
Jakarta EE
OUANAN Mohammed 29
Installation et configuration IDE
Jakarta EE
OUANAN Mohammed 30
Installation et configuration IDE
Jakarta EE
Modifier l’encodage par défaut
Aller dans le menu Window et cliquer sur Preferences
Dans la zone de recherche, écrire encoding
Pour toutes les sections, mettre UTF-8 à la place de l’encodage
par défaut (généralement Cp1252 ou ISO-8859-1)
Ensuite appliquer et fermer
OUANAN Mohammed
Installation et configuration IDE
Java
Quelques raccourcis Eclipse
Ctrl + Shift + : : commenter/décommenter le code
Ctrl + Shift + f : formater le code
Ctrl + Alt + ↓ ou Ctrl + Alt + 𝛙 : dupliquer la ligne sélectionnée
Ctrl + Shift + o : gérer les importer
Ctrl + Alt + l : afficher la liste des raccourcis
Alt + Shift + R : faire une sélection multiple
Shift + K : aller à l’occurrence suivante
Ctrl + Shift + K : aller à l’occurrence précédente
OUANAN Mohammed
Installation et configuration Serveur HTTP
Serveur HTTP
Apache Tomcat
WebLogic Server (Serveur payant d’oracle utilisé par JDeveloper)
JBoss
GlassFish (Open Source de Oracle)
...
OUANAN Mohammed 33
Installation et configuration Serveur HTTP
Serveur HTTP
Apache Tomcat
WebLogic Server (Serveur payant d’oracle utilisé par JDeveloper)
JBoss
GlassFish (Open Source de Oracle)
...
Pourquoi Apache Tomcat ?
gratuit
multi-plateforme
léger
...
OUANAN Mohammed 33
Installation et configuration Serveur HTTP
Jakarta EE
Mise en place d’Apache Tomcat
Pour télécharger, aller sur
[Link]
Aller dans la section Core
Cliquer sur 32-bit/64-bit Windows Service Installer
Attendre la fin du téléchargement puis lancer l’installation
Installer Apache Tomcat à la racine de votre disque dur (C: pour
Windows) et vérifier que le nom du dossier destination ne contient
pas d’espace
Décocher la case de la dernière fenêtre d’installation proposant
de démarrer Apache Tomcat
OUANAN Mohammed
Création d’un premier projet web (avec Eclipse)
Jakarta EE
Les étapes
Aller dans le menu File > New et cliquer sur Other (ou CTRL + N)
Ensuite choisir Dynamic Web Project situé dans le répertoire Web
Saisir cours-jee dans Project name
Ensuite cliquer sur le bouton New Runtime, choisir la dernière version
d’Apache Tomcat et cocher la case juste en-dessous create a new local
server
Cliquer sur Next et préciser le répertoire d’installation de Apache Tomcat
Cliquer sur Finish ensuite deux fois sur Next, puis cocher la case Generate
[Link] deployment descriptor
OUANAN Mohammed
Création d’un premier projet web (avec Eclipse)
Jakarta EE
Les étapes
Faire un clic droit sur le projet et choisir Run As ensuite Run on
Server
Sélectionner le serveur Apache Tomcat et cocher la case
Always use this server when running this project
Cliquer sur Next et vérifier que notre projet figure dans la liste
Configured
Et enfin valider en cliquant sur Finish
OUANAN Mohammed
Structure d’un projet JEE réalisé sous Eclipse
Jakarta EE
Structure d’une application JEE
Le nom du projet définit la racine de l’arborescence
La racine contient principalement trois répertoires
Java Resources est réservé aux classes Java
src contient un dossier main contenant deux répertoires java et
webapp
java pointe vers Java Resources
webapp contient tous les fichiers web
build contient les fichiers compilés (d’extension .class)
OUANAN Mohammed
Structure d’un projet JEE réalisé sous Eclipse
Jakarta EE
Contenu de webapp
Les fichiers définis directement dans webapp sont accessibles aux
visiteurs (sans avoir besoin de passer par une Servlet). C’est ici qu’on
place les fichiers CSS, JavaScript...
WEB-INF (inaccessible aux visiteurs) a un dossier lib (pour les
librairies externes d’extension .jar) et un fichier [Link]
(premier fichier consulte´ par le serveur HTTP).
META-INF contient les méta-données du projet.
OUANAN Mohammed
Premier Hello world
Jakarta EE
Créationd’une page HTML
Clic droit sur le projet, aller dans le menu new et choisir HTML
File
Placer le fichier directement dans webapp (pas dans WEB-INF)
Nommer le fichier [Link] et générer la page en cliquant sur
Finish
Mettre Hello world entre les balises <body>
Démarrer le serveur
Aller à l’adresse [Link] ou
[Link]
OUANAN Mohammed
Premier Hello world
Jakarta EE
Remarque
En cas d’erreur lors du lancement d’Apache Tomcat
Faire double clic sur le serveur
Aller dans la section Ports et vérifier que
Tomcat admin port : 8005
HTTP/1.1 : 8080
AJP/1.3 : 8009
OUANAN Mohammed
Premier Hello world
Jakarta EE
WEB-INF est inaccessible aux visiteurs
Déplacer [Link] dans WEB-INF
Redémarrer le serveur
Vérifier que [Link] et
[Link] ne sont
plus accessibles.
OUANAN Mohammed
Le Qu’est ce Fonctionneme MV Multi-
besoin que JEE nt C Tiers
Architecture MVC Modèle-Vue-Contrôleur ?
• Définition
Séparation des problématiques liées aux
applications interactives
Modèle
Stockage des données
Vue
Affichage des données
Gestion d’interactions
Contrôleur
Traitement des demandes de
modification des données
Modification/validation des données
Orchestrateur des pages et données à
afficher
OUANAN Mohammed
Le Qu’est ce Fonctionneme MV Multi-
besoin que JEE nt C Tiers
?
• JEE et modèle MVC
OUANAN Mohammed 43/2538
Le Qu’est ce Fonctionneme MV Multi-
besoin que JEE nt C Tiers
Frameworks JEE
?
sont des outils ou des bibliothèques conçus pour simplifier et accélérer le
développement d'applications d'entreprise en Java. Ils fournissent des fonctionnalités
prêtes à l'emploi pour gérer des tâches courantes telles que la gestion des
transactions, la persistance des données, la sécurité, et bien plus encore.
OUANAN Mohammed 43/2538
Architecture multi-tiers
• Définition
Découpage fonctionnel et/ou physique d’un programme
Objectif:
Diviser les responsabilités et charges de travail pour un
passage à l’échelle, la modularité de programmation, la
sécurisation adaptée à la fonction d’un tiers.
Exemples:
Architecture 1tier
Un seul composant applicatif gère la présentation, le
fonctionnement, la persistance et l’espace de stockage
Architecture 2tiers
Client/serveur:
Architecture 3tiers/4tiers
Applications J2E actuelles
OUANAN Mohammed 28
Architecture Multi-Tiers
OUANAN Mohammed
Couche présentation
OUANAN Mohammed
Couche d’application
OUANAN Mohammed
Couche métier
OUANAN Mohammed