Rappel sur le contexte des applications Web d'entreprise
- Serveur et client Web.
- Protocoles applicatifs (HTTP).
- Rappels sur les URLs.
- Gestion des sessions.
- Accès aux ressources de l'entreprise.
- La plateforme Java EE.
- Modèles d'architectures multiniveaux.
Architecture des applications Java Web
- Les composants nécessaires à l'utilisation de Java côté serveur. La Java Virtual Machine.
- Les serveurs Web et serveurs d'applications Java EE.
- Rôle du conteneur (moteur de Servlets).
- Structure normalisée d'une application Web Java EE.
- Les principaux composants : Servlets, pages JSP, JSF.
- Les API Java EE.
- Modèles d'architectures JSP/Servlet
- Architecture du conteneur Web Tomcat d'Apache.
- Le descripteur de déploiement web.xml.
- Notion de pluggability.
- Outils de développement, de test et de débogage : Eclipse, Netbeans, IntelliJ.
- Déploiement et packaging des applications Java EE.
Travaux pratiques
Installer un environnement de développement et un serveur d'applications Web Tomcat Apache. Déployer une application Java EE sur un conteneur Tomcat .
Pages JSP : composants de présentation
- Qu'est-ce qu'une page JSP ?
- Cycle de vie des JSP.
- Les objets prédéfinis.
- Les Scriplets, les directives, les expressions, les actions...
- La gestion des erreurs.
- Les scopes. La communication entre composants Web.
- Utilisation de JavaBeans à partir de pages JSP.
- Présentation du langage Unified Expression Language (UEL).
- Présentation de la JSTL (Java Standard Tag Library). Concevoir des JSP avec JSTL.
- Principe des librairies (taglib).
- Développement d'extension de balises. Balises simples, avec attributs, avec corps.
- Déployer et exploiter une librairie.
Travaux pratiques
Développer la couche présentation (JSP, JSTL et librairies de balises).
API Servlet 3.0 : composants de contrôle et de navigation
- Le conteneur de Servlets.
- Le cycle de vie d'une Servlet. Initialiser une Servlet. Ecrire les méthodes de services.
- L'interface Servlet. Les servlets HTTP.
- Gestion des formulaires HTML. Le traitement de la réponse, l'envoi d'information, la génération de HTML.
- La récupération des paramètres HTTP.
- Filtrage des requêtes/réponses. Programmation des filtres de Servlets.
- La récupération d'information : du serveur Web, du client et de l'environnement. Invocation d'autres ressources Web.
- Inclusion et transfert du contrôle.
- Gestion des erreurs d'exécution. Journalisation des événements.
- Les différentes méthodes de suivi de session. Obtention, consultation et abandon de session. Contexte de session.
- Combinaison JSP et Servlets.
Travaux pratiques
Développement d'une application à base de Servlets exploitant l'environnement du conteneur Web.
Accès aux bases de données
- Mise en place de la base de données relationnelles et de l'interface JDBC.
- Connexion à la base, récupération d'information, mise à jour de données.
- Transaction. Pool de connexions. Les DataSources. L'annotation Ressource.
- Correspondance BDR/Modèles objet. Objectifs. Approches et outils Java.
- Présentation de JPA et les différentes solutions du marché (Hibernate...).
- Les concepts de JNDI.
- Accès aux ressources via JNDI. Déclarer une ressource de type JavaBean, DataSource.
Travaux pratiques
Présenter des données issues d'un SGBDR dans l'application.
Le framework de présentation JSF 2
- Présentation du framework. Les Composants essentiels.
- Cycle de vie du traitement d'une page JSF.
- Les composants UI. Facelets.
- La Servlet "FacesServlet". Notion de FacesContext.
- Mise en œuvre des Managed Beans.
- Définir la navigation entre pages.
- Convertir et valider des données.
Travaux pratiques
Adaptation de l'application existante avec le Framework JSF 2.
Sécurisation d'une application Web Java EE
- La sécurité dans un contexte Web. Notions de users, realms, rôles.
- Authentification et autorisation.
- Sécurité déclarative.
- Sécurité et programmation de Servlets.
- Choix d'un mécanisme d'authentification.
- Configurer les restrictions d'accès.
- Lister les rôles applicatifs.
- Mise en place d'un Realm. Configuration de Tomcat.
- Installer et configurer SSL. Certificats numériques. Java Authentication and Authorization Service.
Travaux pratiques
Sécuriser l'accès au site construit. Mise en place d'un Realm DataSource.