Java Ee
Java Ee
Java Ee
Objet
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
1. Introduction au JAVA EE
Protocole HTTP
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
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
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
6. Mapping de la servlet
Nous devons faire correspondre notre servlet à une URL
7. Démarrage du projet
LA SERVLET
1. Créer un JSP
LES JSP
1. Créer un JSP
Contenu de la page JSP
LES JSP
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
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:
Configuration globale des JSP pour éviter de répéter sur toutes les JSP:
Ajouter ce qui suit dans le fichier web.xml
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
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
3- Les conditions
3- Les conditions
JSTL
4- Les boucles
Afficher les nombres de 0 à 10
4- Les boucles
Parcours de tableau
4- Les boucles
Parcours de tableau
Nous pouvons ajouter une troisième variable dans la boucle
4- Les boucles
Boucle for dédiée aux chaines de caractères
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
5 – Modèle DAO
Situation actuelle:
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