Application web de gestion de personnes

Il s'agit dans ce TP de mettre en oeuvre une application Web standard, de type CRUD (Create Read Update Delete)

Les données manipulées sont des personnes définies par la classe Personne.java et la classe Adresse.java associée.

Un gestionnaire de données s'occupe de gérer une liste de personnes et de la sauvegarder dans un fichier (via les mécanismes de sérialisation de Java) : DataManagerPersonne.java. Pour pouvoir réaliser de nouvelles implémentations de ce gestionnaire, une interface d'opération pour l'accès aux personnes a été définie : IPersonne.java. Pour tester les fonctionnalités du gestionnaire, vous pouvez utiliser ce client en mode texte qui instantie localement un gestionnaire : ClientTexte.java.

Détails techniques sous Netbeans

Pour exécuter votre application Web, vous devez installer un serveur d'application Java. Vous pouvez choisir Apache Tomcat dédié aux applications Web Java ou GlassFish qui est plus lourd mais plus complet.

Sous Netbeans, à la création d'un projet "Java Web / Web Application". Sélectionnez également le framework JPA à la création de votre projet, en laissant la configuration de connexion à la BDD par défaut.

Les pages JSP et HTML sont à placer dans le dossier "Web Pages".

Les classes Java sont à placer dans le dossier "Source Package".

Si vous voulez changer la page d'accueil de votre application web ou enregistrer des servlets : modifier le fichier "web.xml" de "Web Pages/WEB_INF"

Première version

Vous implémenterez une Servlet Java qui utilise ce gestionnaire de personne et répond aux requêtes de création, lecture, mise à jour ou bien encore suppresion de personne. Ces requêtes seront envoyées par un ensemble de pages HTML ou JSP si vous avez besoin d'aspects dynamiques.

Deuxième version

Pour récupérer les informations sur une personne, créez une page HTML avec une zone de texte en entrée et une liste déroulante. Comme montré en cours, à chaque fois que l'utilisateur tape une lettre dans la zone de texte pour compléter le nom de la personne à chercher, une requête AJAX est envoyée sur le serveur pour récupérer la liste des noms de personnes commençant par ce qui est écrit dans la zone de texte. Au fur et à mesure, la liste déroulante des personnes est mise à jour. En sélectionnant une personne dans la liste, une autre requête AJAX est envoyée au serveur pour récupérer les informations sur la personne. La page courante est mise à jour dynamiquement avec ces informations sans être rechargée.

Troisième version

Créez une base de données permettant de stocker des personnes à l'aide d'une seule table. Après avoir configuré correctement la connexion à la BDD, utilisez les mécanismes de reverse mapping de Netbeans pour créer le POJO par défaut associé à cette table. Modifiez le fichier de mapping obtenu pour pouvoir utiliser les classes Personne et Adresse ci-dessus comme POJO (vous pouvez alors supprimer le POJO créé par Netbeans).

Implémentez un nouveau DAO (Data Access Object) implémentant l'interface IPersonne pour accèder cette fois ci à votre BDD via JPA plutôt que par un stockage dans un fichier local. Votre servlet n'est a priori pas à modifier sauf pour instancier ce nouveau DAO à la place de DataManagerPersonne.