Vous êtes sur la page 1sur 114

SE 352 - Développement d’Applications de Classe Entreprise avec la Programmation Orientée

Objet

Ferdinand BATANA, DBA & Web Developer(OCAJP, MCSE SQL SERVER)


PLAN DU COURS

1. Les bases du Java EE


2. La servlet
3. Servlet avec vue
4. Transmission de données
5. Le JavaBean
6. La technologie JSP
7. Une bonne vue grâce à la JSTL
8. Application interactive (Sessions, cookies, les formulaires etc…)
9. Les bases de données avec Java EE
10. Premier pas avec JSF
11. Introduction à Spring
LES BASES DU JAVA EE

Plan du chapitre
1. Introduction au JAVA EE
2. Outils et environnement de développement
LES BASES DU JAVA EE

1. Introduction au JAVA EE
 Prérequis : CSC 300 & CSC 301, IT 130 et IT 240
 Différence entre JAVA (SE) et Java EE
 Différence entre internet et le web
 Différence entre sites internet statiques et sites internet dynamiques
LES BASES DU JAVA EE

1. Introduction au JAVA EE
 Fonctionnement d’un site web

Echange dynamique client <-> serveur


LES BASES DU JAVA EE

1. Introduction au JAVA EE
 Protocole HTTP

Echange dynamique HTTP client <-> serveur


LES BASES DU JAVA EE

1. Introduction au JAVA EE
 Principes de fonctionnement
 Communication client-serveur: Le navigateur s’en charge coté client
 Qui s’en occupe coté serveur ? Le serveur d’application
LES BASES DU JAVA EE

1. Introduction au JAVA EE
 Principes de fonctionnement
Exemple de serveurs d’application
 Apache tomcat
 Citrix
 GlassFish
 Microsoft ASP.NET
 Etc…
LES BASES DU JAVA EE

1. Introduction au JAVA EE
Le modèle MVC : en théorie
 Une bonne pratique, qui répond à un problème de conception d'une application
 Travail en équipe
 Maintenance et correction des applications d’autruis
Le modèle MVC découpe l’application en couches distinctes
 Modèle: Le traitement, le stockage et la mise à jour des données de l'application
 Vue: l'interaction avec l'utilisateur et la présentation des données
 Contrôleur: le contrôle des actions de l'utilisateur et des données
LES BASES DU JAVA EE

1. Introduction au JAVA EE
Le modèle MVC : en théorie
LES BASES DU JAVA EE

1. Introduction au JAVA EE
Le modèle MVC : en pratique
 Modèle: Objet java (Attributs, méthodes) et un système de stockage
 Vue: Représentée par des pages JSP
 Contrôleur: Représenté par des servlets
LES BASES DU JAVA EE

1. Introduction au JAVA EE
Le modèle MVC : en pratique
LES BASES DU JAVA EE

2. Outils et environnement de développement


L'IDE Eclipse
 Téléchargement et installation (https://
www.eclipse.org/downloads/packages/installer)
 Lors de l’installation, choisir “Eclipse IDE for Java EE developpers”
LES BASES DU JAVA EE

2. Outils et environnement de développement


L'IDE Eclipse

Faire des configurations pour spécifier l’encodage UTF8 après installation


(Windows -> Préférence)
LES BASES DU JAVA EE

2. Outils et environnement de développement


Le serveur Tomcat
 Pour faire fonctionner une application web Java EE, nous avons besoin
de mettre en place un serveur d'applications
Téléchargement
 https://tomcat.apache.org/download-90.cgi
Installation
 Décompressez son contenu dans le répertoire où vous souhaitez
installer Tomcat
LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse
LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse
LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse
LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse
LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse

Cliquez sur finish


LES BASES DU JAVA EE

2. Outils et environnement de développement


Création du projet web avec Eclipse
LES BASES DU JAVA EE

2. Outils et environnement de développement


Structure d’une application Java EE
 Test: la racine du projet: le nom du projet
 Java Resources
 Web Content:
 Fichier html, css, js, jsp
 WEB-INF: fichiers de configuration
 Lib: Bibliothèque externes pour ajouter des fonctionnalités supplémentaires
LES BASES DU JAVA EE

2. Outils et environnement de développement


Première page html
 Créons notre première page html dans le dossier WebContent
LES BASES DU JAVA EE

2. Outils et environnement de développement


Première page html
 Créons notre première page html dans le dossier WebContent
LES BASES DU JAVA EE

2. Outils et environnement de développement


Première page html
 Démarrage du projet
LES BASES DU JAVA EE

2. Outils et environnement de développement


Première page html
 Démarrage du projet
LES BASES DU JAVA EE

2. Outils et environnement de développement


Première page html
 Démarrage du projet
LA SERVLET

1. HTTP
 GET
 POST
 HEAD
LA SERVLET

2. Fonctionnement du serveur
 La requête part du client et arrive sur le serveur
 Le serveur HTTP écoute les requêtes en général sur le port 80
 Le serveur HTTP transmet la requête au conteneur de servlet pour
créer les objets suivants:
 HttpServletRequest : cet objet contient la requête HTTP, et donne accès
à toutes ses informations, telles que les en-têtes (headers) et le corps
de la requête.
 HttpServletResponse : cet objet initialise la réponse HTTP qui sera
renvoyée au client, et permet de la personnaliser, en initialisant par
exemple les en-têtes et le corps (nous verrons comment par la suite).
LA SERVLET

3. Création d’une servlet


 Une servlet est juste une class java qui a la particularité de permettre le
traitement de requêtes et la personnalisation de réponses
LA SERVLET

3. Création d’une servlet


LA SERVLET

4. Création d’une servlet


Contenu de la servlet
LA SERVLET

4. Création d’une servlet


Contenu de la servlet
La classe HttpServlet propose des méthodes:
 doGet() pour gérer la méthode GET ;
 doPost() pour gérer la méthode POST ;
 doHead() pour gérer la méthode HEAD.

Les servlet
 Les servlets constituent le point d'entrée de notre application web, c'est
par elles que tout va passer
 Contrairement au Java SE, il n'existe pas en Java EE de point
d'entrée unique prédéfini, comme pourrait l'être la méthode main()…
LA SERVLET

5. Mise en place de la servlet


 Notre servlet va jouer le rôle de contrôleur
 Le ficher WEB-INF/web.xml permet de définir une servlet

Contenu par défaut du fichier web.xml


LA SERVLET

5. Mise en place de la servlet


Définition de la servlet

 <servlet-name> permet de donner un nom à une servlet


 <servlet-class> sert à préciser le chemin de la classe de la servlet dans
votre application
 Nous pouvons ajouter d’autres telles que: <description>, <init-param>,
<load-on-startup>, nous y reviendrons.
LA SERVLET

6. Mapping de la servlet
 Nous devons faire correspondre notre servlet à une URL

 <servlet-name> permet de préciser le nom de la servlet à laquelle faire


référence
 <url-pattern> permet de préciser la ou les URL relatives au travers
desquelles la servlet sera accessible
LA SERVLET

7. Démarrage du projet
LA SERVLET

8. Accès via l’url


 Taper l’url premier/accueil dans le navigateur

 D’où vient cette page ??


LA SERVLET

9. Associer une vue à une Servlet


LA SERVLET

9. Associer une vue à une Servlet


LA SERVLET

9. Associer une vue à une Servlet

Allons-nous continuer par écrire du


code HTML dans la Servlet ?
LES JSP

1. Créer un JSP
LES JSP

1. Créer un JSP
Contenu de la page JSP
LES JSP

2. Mise en relation avec la servlet


LES JSP

3. Caractéristiques des JSP


 Une page JSP n’est pas à 100% du HTML, elle contient des balises
derrière lesquelles se cache du code Java
 Une page JSP est exécutée sur le serveur, et la page finale générée et
envoyée au client est une simple page HTML : le client ne voit pas le
code de la JSP.
LES JSP

4. Transmission des données


 Transmettre des variables de la servlet au JSP
LES JSP

4. Transmission des données


 Transmettre des variables de la servlet au JSP
LES JSP

5. Les conditions et les boucles


LES JSP

5. Les conditions et les boucles


LES JSP

5. Les conditions et les boucles


Mettre les conditions sur la base des données issues de la servlet
LES JSP

5. Les inclusions de JSP


Les inclusions de JSP va nous permettre d’éviter d’écrire plusieurs fois les
informations redondantes telles que le menu de navigation, le pied de page
etc…
 Créer notre fichier menu.jsp qui va contenir les liens de navigation
LES JSP

5. Les inclusions de JSP


Nous n’avons plus
besoin de toute la
structure d’une
page html
LES JSP

5. Les inclusions de JSP


Inclure la page menu.jsp dans la page bonjour.jsp
LES JSP

5. Les inclusions de JSP


TP: créer une servlet Accueil associé à la JSP accueil.jsp
LES JSP

5. Les inclusions de JSP


Mettre à jour le fichier menu.jsp en ajoutant les liens de navigation

Inclure le fichier menu.jps dans les page accueil.jsp et bonjour.jsp


LES JSP

5. Les inclusions de JSP


Tester que la navigation fonctionne bien.
LES JSP

6. Communiquer des données entre les pages


Nous allons apprendre à récupérer les données transmises via l’URL sous
la forme : http://localhost:8080/test/bonjour?name=Ferdinand
 Modifier la servlet comme suit:
LES JSP

6. Communiquer des données entre les pages


 Récupérer la valeur de l’attribut dans le JSP comme suit:

Tester en tapant une URL sous la forme : http://


localhost:8080/test/bonjour?name=Ferdinand
Pour transmettre plusieurs paramètres, utiliser le forma d’url suivant:
http://localhost:8080/test/bonjour?name=Ferdinand&sexe=M&age=70
etc…
LES JSP

7. Expression Language (EL)


 Est-ce normal de continuer par écrire du code java dans la vue (.jsp) ?
 EL va nous permettre d’écrire les conditions plus courtes, d’insérer des
variables à l’intérieur des pages jsp
LES JSP

7. Expression Language (EL)


 Accès aux attributs et conditions
LES JSP

7. Expression Language (EL)


 Accès aux attributs et conditions
LES JSP

7. Expression Language (EL)


 Accès aux éléments d’un tableau
Dans la servlet

La JSP
JavaBean

Java étant un langage orienté objet, nous allons manipuler les objets. Les
objets sont appelés javabeans en JEE
1. Communication entre JavaBean – Contrôleur(Servlet)-Vu(JSP)
 Renommer le package existent en .servlet (et faire les autres
configurations appropriées)
 Créons un javabean Auteur (classe publique) dans le package
com.cours.bean
JavaBean

Java étant un langage orienté objet, nous allons manipuler les objets. Les
objets sont appelés javabeans en JEE
JavaBean

Java étant un langage orienté objet, nous allons manipuler les objets. Les
objets sont appelés javabeans en JEE
 Mise à jour de la servlet Test
JavaBean

Java étant un langage orienté objet, nous allons manipuler les objets. Les
objets sont appelés javabeans en JEE
 Mise à jour de la JSP
JSTL

JSTL : Java server page Standard Tag Library


 La JSTL est le langage de vue le plus complet de JEE permettant
d’accéder et d’utiliser les objets dans les JSP
JSTL

1- Configuration: Pour pouvoir utiliser la JSTL dans les pages JSP, nous
devons inclure la bibliothèque JSTL
Configuration xml pour charger la JSTL en mémoire:

Toutes les balises de la JSP doivent commencer par « c »


JSTL

Nous devons télécharger et ajouter le fichier de la bibliothèque JSTL à


notre projet afin que tomcat le reconnaisse
Lien pour télécharger:
https://course.oc-static.com/ftp-tutos/cours/java-ee/jstl-1.2.jar
JSTL

Configuration globale des JSP pour éviter de répéter sur toutes les JSP:
Ajouter ce qui suit dans le fichier web.xml

Puis créer le fichier taglibs.jsp dans le dossier web-inf contenant ceci:

Enlever ces lignes dans toutes les JSP


JSTL

2- JSTL et Variables
 Faille XSS
JSTL

2- JSTL et Variables
Donc les balises jstl permettent d’échapper les caractères spéciaux
 Valeur par défaut
JSTL

2- JSTL et Variables
Donc les balises jstl permettent d’échapper les caractères spéciaux
 Déclaration et initialisation de variable

Afficher le contenu d’une variable


JSTL

2- JSTL et Variables
 Modifier le contenu d’une variable
JSTL

2- JSTL et Variables
 Bean et JSTL
Modifier les valeurs des attributs d’un bean

Supprimer une variable de la mémoire


JSTL

3- Les conditions

Stocker le résultat du test

NB: Impossible de faire des tests multiples (if else if eles)


JSTL

3- Les conditions
JSTL

4- Les boucles
Afficher les nombres de 0 à 10

i: c’est la variable qui contient les valeurs du pas


Begin: le valeur de début de la boucle
End: la valeur de fin de la boucle
Step: le pas de la boucle
JSTL

4- Les boucles
Parcours de tableau

items: contient le tableau à parcourir


Var: contient la valeur courante
JSTL

4- Les boucles
Parcours de tableau
Nous pouvons ajouter une troisième variable dans la boucle

Status contient des variables suivantes:


current, index, count, first, last, begin, step, end
JSTL

4- Les boucles
Boucle for dédiée aux chaines de caractères
LES FORMULAIRES

1- Formulaire html dans la JSP


LES FORMULAIRES

2- Traitement dans la servlet


LES FORMULAIRES

3- Mise à jour de la JSP pour afficher les données


LES FORMULAIRES

4- Exercice
Mettre en place un formulaire d’authentification avec un mot de passe par
défaut connu et enregistré dans le code.
LES SESSIONS

 Les sessions vont nous permettre de suivre un visiteur tout au long de


sa navigation sur notre plateforme.
 Pour commencer, nous allons créer un formulaire pour permettre au
visiteur de saisir son nom et son prénom.
LES SESSIONS

 Ensuite récupérer les données du formulaire dans la servlet afin de les


stocker dans la session:
LES SESSIONS

 Récupération des données de la session dans la JSP


 Nous allons utiliser l’objet implicite experssion language: sessionScope

 Constater que le serveur se souvient de vous, même si vous actualisez


la page
LES SESSIONS

 Récupérons les valeurs de la session dans une autre JSP


LES SESSIONS

 Nous pouvons aussi récupérer les valeurs de sessions dans la servlet,


dans la méthode doGet

 Pour supprimer une session:


session.invalidate();
BASES DE DONNEES - JDBC

1- Installation de jdbc dans une application JEE


 Installer mysql
 Créer une base de donées et une table:
BASES DE DONNEES - JDBC

1- Installation de jdbc dans une application JEE


 Télécharger le driver JDBC (connecteur mysql)
https://dev.mysql.com/downloads/connector/j/
 Coller le connecteur dans le dossier lib de votre projet
 Ajouter quelques lignes dans la table auteur
BASES DE DONNEES - JDBC

2- Configuration pour l’accès à la base de données


 Créer une classe spéciale permettant d’accéder la base de données:
Donnees
 Créer une méthode permettant d’accéder à la base de données
BASES DE DONNEES - JDBC

3 – Afficher les données de la base de données dans la vue


 Créer la classe Auteur avec les attributs de la table Auteur
 Mettre en place une méthode permettant de récupérer les données de
la table. Confère le code
 Faire la mise à jour de la servlet
BASES DE DONNEES - JDBC

3 – Afficher les données de la base de données dans la vue


 Afficher les données dans la vue
BASES DE DONNEES - JDBC

4 – Modifier la base de données


 Créons une méthode permettant d’ajouter un auteur dans la base de
données
BASES DE DONNEES - JDBC

5 – Modèle DAO
 Situation actuelle:

 Couche modèle directement en contact avec le système de stockage


Y a-t-il un inconvénient ?
 Le patron de conception MVC est bien respecté mais cela va nous
causer des problèmes de conception quand le nombre de classe va
augmenter,
 De cette manière les parties du projet sont fortement lié pour ne pas
dire mélangé
BASES DE DONNEES - JDBC

5 – Modèle DAO
Quelles sont les conséquences ?
 Il est impossible de mettre en place des tests unitaires :
 Il est très compliqué ou impossible de changer de mode de stockage
BASES DE DONNEES - JDBC

5 – Modèle DAO
Meilleure solution:
 Isoler le stockage des données
BASES DE DONNEES - JDBC

5 – Modèle DAO
Principe
Constitution
Le principe du pattern DAO est de séparer la couche modèle d'une
application en deux sous-couches distinctes :
 une couche gérant les traitements métier appliqués aux données,
souvent nommée couche service ou métier
 une couche gérant le stockage des données, logiquement nommée
couche de données.
BASES DE DONNEES - JDBC

5 – Modèle DAO
BASES DE DONNEES - JDBC

5 – Modèle DAO
Principe
Intégration
a couche DAO ne va pas seulement contenir les interfaces et
implémentations des méthodes CRUD. Elle va également renfermer
quelques classes dédiées à l'isolement des concepts liés au mode de
stockage, comme les exceptions dont nous avons déjà brièvement parlé,
mais également le chargement du driver et l'obtention d'une connexion
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création - Création du DaoFactory
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création - Création du DaoFactory
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création – Java bean Auteur.java
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création – Interface AuteurDao
Convention de nommage:
 AbcDao l'interface d'un DAO correspondant à la table Abc et
AbcDaoImpl son implémentation
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création – Interface AuteurDao
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création – Interface AuteurDaoImpl
BASES DE DONNEES - JDBC

5 – Modèle DAO
Création – Interface AuteurDaoImpl
BASES DE DONNEES - JDBC

5 – Modèle DAO
Gestion des erreurs
Afin de cacher la nature du mode de stockage des données au reste de
l'application, c'est une bonne pratique de masquer les exceptions
spécifiques (celles qui surviennent au runtime, c'est-à-dire lors de
l'exécution) derrière des exceptions propres au DAO.
BASES DE DONNEES - JDBC

5 – Modèle DAO
Gestion des erreurs
Afin de cacher la nature du mode de stockage des données au reste de
l'application, c'est une bonne pratique de masquer les exceptions
spécifiques (celles qui surviennent au runtime, c'est-à-dire lors de
l'exécution) derrière des exceptions propres au DAO.
BASES DE DONNEES - JDBC

5 – Modèle DAO
Gestion des erreurs – Exceptions du DAO
BASES DE DONNEES - JDBC

5 – Modèle DAO
Gestion des erreurs – Exceptions du DAO
BASES DE DONNEES - JDBC

5 – Modèle DAO
Gestion des erreurs – Exceptions du DAO

Vous aimerez peut-être aussi