Java EE
1.0
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 Wildfly dans Eclipse
Accès à la console d’administration du serveur
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 Wildfly
Gérer le projet avec Maven
Exécution de Maven dans Eclipse
Exercice
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
Développer des JSP avec Wildfly
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
RequestDispatcher et MVC
Le request dispatcher
Le modèle MVC
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
JDBC dans une application Web
Déclaration d’une DataSource
Déclaration de la DataSource dans le fichier web.xml
Déclaration d’une DataSource dans Wildfly
Déploiement automatique du driver MySQL (méthode 1)
Ajout du driver MySQL comme nouveau module (méthode 2)
Les EJB
Le conteneur d’EJB
Les types d’EJB
Les EJB session
EJB session stateful
EJB session stateless
EJB session singleton
Méthodes de cycle de vie
Accès à un EJB session
EJB et interface métier
La gestion des transactions
JTA (Java Transaction API)
La démarcation transactionnelle
Java Server Faces (JSF)
Créer un projet avec JSF
La vue : facelets
Activer le support de JSF dans Eclipse
Une introduction à CDI
Déclarer un objet avec CDI
Le fichier de déploiement beans.xml
Le modèle
Le contrôleur
La navigation
La validation de formulaire
La validation avec Bean Validation
Les requêtes Ajax
Pour aller plus loin
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
La validation avec Bean Validation
Implémenter un client HTTP
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
Consommer un service Web avec JAX-WS
Exercice
Implémenter des services Web avec JAX-WS
Déployer un service Web dans un serveur d’application Java EE
Excercice
Pour aller plus loin
Annexe : XML
Structure du langage
Structure du document
Exercice
Espaces de noms XML
Schémas XML
Pour aller plus loin…
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
Exercice
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
Exercice
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
Exercice
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
Java EE
Docs
»
Index
Index