Java EE
Java EE pour le Web
L’environnement de développement
Téléchargement des outils
Installation des outils
Configuration de Java dans Eclipse
Intégration de Tomcat dans Eclipse
Une première application
Qu’est-ce qu’une application Java EE ?
Création d’un projet dans Eclipse
Déploiement depuis Eclipse et test de l’application
Le contexte racine de déploiement (root context)
Packaging de l’application
Introduction à Maven
Pourquoi utiliser Maven ?
Caractéristiques principales de Maven
Installation de Maven
Un premier projet avec Maven
Le fichier pom.xml
Import du projet Maven dans Eclipse
Test de l’application dans Tomcat
Gérer le projet avec Maven
Exécution de Maven dans Eclipse
Les Servlets
Structure d’une servlet HTTP
Configuration du déploiement d’une servlet
Chemin absolu d’URL dans une application Web
Motif d’URL d’une Servlet
Utilisation du fichier de déploiement web.xml
Exercice
Le conteneur Web
Cycle de vie des servlets
Exercice
Servlet et programmation concurrente
Exercice
Les attributs d’une application Web
Attribut de portée requête
Attribut de portée session
Session HTTP : comment cela marche-t-il ?
Les attributs de portée application
Exercices
JSP : Java Server Pages
Exercice
EL : Expression Language
Les opérateurs dans l’expression language
Les objets implicites dans une JSP
La résolution de portée des attributs dans une JSP
Expression Language et gestion des exceptions
Les directives de JSP
La directive page
La directive include
Les balises d’action JSP
Les Taglibs et la JSTL
JSTL core
JSTL formater
JSTL functions
JSTL SQL
JSTL XML
Exercices
MVC et RequestDispatcher
Le modèle MVC
Le request dispatcher
Exemple de MVC (sans validation)
Exemple de MVC (avec validation)
Exercice
Web listeners et filtres
Les listeners Web
Déclaration des listeners Web
Exemple d’utilisation d’un listener
Les filtres de Servlet
Déclaration des filtres
Implémentation d’un filtre
Cas d’utilisation de filtres
Gestion de l’UTF-8
Génération de log
Les API Web avec JAX-RS
La notion de ressource
Configurer une application Web pour JAX-RS
Implémenter des ressources avec JAX-RS
Les annotations de méthodes
Paramètre dans le chemin d’URI
Data binding
Générer une réponse
Gérer des exceptions
Implémenter un client HTTP
Sécurisation d’une application Web
Déclarer des contraintes de sécurité
Configuration de l’authentification dans Tomcat
Configuration https dans Tomcat
Exercice
Login à partir d’un formulaire Web
Java EE ORM
Accès aux bases de données : JDBC
Préambule : try-with-resources
Le pilote de base de données
Création d’une connexion
L’URL de connexion et la classe des pilotes
Les requêtes SQL (Statement)
Le Statement
Le ResultSet
Le PreparedStatement
L’injection SQL
Récupération des clés générées
Le CallableStatement
La transaction
JDBC dans une application Web
Accès à une DataSource
Injection d’une DataSource
Déclaration de la DataSource dans le fichier web.xml
Déclaration d’une DataSource dans Tomcat
Les entités JPA
Les ORM (Object-Relational Mapping)
Les entités JPA
L’EntityManager
Obtenir un EntityManager
Créer une fabrique d’EntityManager
Manipuler des entités à partir d’un EntityManager
La méthode persist
La méthode find
La méthode refresh
La méthode merge
La méthode detach
La méthode remove
Les requêtes JPA
Les requêtes Natives
Les requêtes JPQL
Les requêtes par programmation
Utilisation de requêtes nommées
Les relations avec JPA
La relation 1:1 (one to one)
La relation n:1 (many to one)
La relation 1:n (one to many)
La relation n:n (many to many)
Les relations bi-directionnelles
La propagation en cascade
Requêtes JPQL et jointure
Fetch lazy ou fetch eager
Relation avec des attributs
Solution 1 : Référencer la clé composée avec @IdClass
Solution 2 : Référencer la clé composée avec @EmbeddedId
Solution 3 : Utiliser une clé technique simple
L’héritage avec JPA
L’annotation @Inheritance
Héritage avec une seule table
Héritage avec jointure de tables
Héritage avec une table par classe
L’héritage et les requêtes JPQL polymorphiques
Un cas à part : fusion de la super classe
API Web et service Web
Introduction : Service Web et API Web
HTTP, REST et les API Web
Le protocole HTTP
Structure des messages
Exercice
Les codes de statut
Les méthodes HTTP
Propriétés des méthodes HTTP
Les en-têtes HTTP
Exercice
HTTP : les cas d’utilisation
Obtenir la représentation d’une ressource
Obtenir uniquement les meta-informations d’une ressource
Créer une ressource dont on connait l’URI
Créer une ressource dont on ne connait pas l’URI
Supprimer l’accès à une ressource
Mettre à jour une ressource
Mettre à jour partiellement une ressource
Exécuter un processus de traitement
Connaître les méthodes autorisées
Traitement asynchrone d’une requête
Les redirections
Évolution du service
URI volatile et canonicalisation d’URI
Séparer le traitement de la requête de son résultat
HTTP : la négociation de contenu
La négociation de type de contenu
La négociation de jeu de caractères
La négociation de langue
L’en-tête Vary
HTTP : les requêtes conditionnelles
Demander une représentation à jour
Créer une ressource si elle n’existe pas déjà
Altérer une ressource sous condition
Altérer une ressource si elle existe
HTTP : la gestion du cache
Serveur d’origine et intermédiaires
Principe générale de la gestion du cache
La fraîcheur d’une réponse
La revalidation
Les directives de stratégie de cache
L’invalidation de cache
Enrichissement des en-têtes par les intermédiaires
HTTP : les liens
L’en-tête Link
Les types de relation
Les attributs optionnels d’un lien
REST
La ressource
URI informative ou URI opaque ?
Ressource contre RPC
La représentation
Les contraintes REST
Client/Serveur
Interface uniforme
Sans état (stateless)
Mise en cache (caching)
Layered system
Code on demand
Hypermédia
Les formats hypermédias
L’en-tête Link
Les apports de l’hypermédia
REST : ça veut dire quoi ?
Les API Web
Références
Sites Web & articles
Livres
Applications de démo
Exercices
Les services Web SOAP / WSDL
Les services Web avec Java
La quête de l’interopérabilité
SOAP : structure des messages
Web Service Description Language (WSDL)
Développer un service Web SOAP
Exercice
Les outils Java de génération
WSDL → Java (Contract first)
Consommer un service Web avec JAX-WS
Exercice
Implémenter des services Web avec JAX-WS
Déployer un service Web dans un serveur Tomcat
Exercice
Pour aller plus loin
Annexe : XML
Structure du langage
Structure du document
Exercice
Espaces de noms XML
Schémas XML
Pour aller plus loin…
Java EE
D'autres formations sont sur
https://gayerie.dev
»
Index
Index