XML et Interface web - Université de Sherbrooke

Transcription

XML et Interface web - Université de Sherbrooke
Université de Sherbrooke
Faculté des sciences
Département d’informatique
IFT 287 – Exploitation de bases de données relationnelles et orientées objet
Travail pratique 4
XML et Interface Web
Gestionnaire des transactions Web et XML
La problématique
Le travail de votre TP3 a été de développer un gestionnaire de transactions pour la ligue de baseball. Le
fonctionnement en général est très bon, mais l’interface texte n’est pas la plus conviviale, et elle est limitée
à une utilisation à la fois, c'est-à-dire, elle est « single user ». Pour le TP4 vous devez modifier l’interface
de votre gestionnaire de transactions et la transformer en une application Web simple à l’aide de la
technologie servlet.
En plus, étant donné le succès du système, il y a plusieurs équipes qui veulent s’inscrire à la ligue. Pour
simplifier le travail, les nouvelles équipes doivent envoyer un fichier XML avec l’information nécessaire
pour les enregistrer, voir la section fichier XML.
Le travail à faire
Vous devez reprendre le code développé lors de votre TP3 et modifier l’interface pour que ce soit une
application Web interactive qui prenne les commandes de l’utilisateur. Vous pouvez réutiliser toutes les
classes définies dans votre TP3 pour effectuer les transactions.
Pour ce qui touche la partie esthétique de votre site, il faut développer des feuilles de style. Chacune des
pages web à développer doit utiliser les feuilles de style pour donner un affichage simple, convivial et
agréable, simple c’est beau, regardez par exemple les sites comme Amazon.ca ou Costco.ca.
L’application à développer comprend une page d’accueil qui sera stockée dans un fichier login.jsp.
Cette page doit permettre d’entrer l’adresse IP du serveur de base de données Postgres, le nom de
l’utilisateur, le mot de passe et le nom de la base de données afin de faciliter la correction. S’il n’est pas
possible d’établir la connexion avec la base de données, il faut afficher un message d’erreur et retourner à
la page d’accueil.
Suite au login, et une fois l’utilisateur validé, l’application affichera une page menu qui permettra
d’effectuer les 13 opérations offertes par l’application que vous avez développée pour le TP3 ainsi que
l’opération d’ajouter une équipe à partir d’un fichier et l’exportation des données d’une équipe dans un
fichier XML.
Si l’opération demande la saisie de données, par exemple les opérations de type créerXXX, il faut afficher
un formulaire qui demandera les mêmes données qui sont passées en paramètre à l’opération. Il faut
toujours afficher une page indiquant le résultat de l’opération (réussit ou échec), cette page permettra de
retourner à la page du menu pour recommencer le processus.
Il y a deux fonctions qui peuvent s’activer à partir de n’importe quelle page :
 Sortir (qui finit la connexion à la base de données) et
 Menu (qui permet de retourner à la page de menu)
IFT 287 – Exploitation de bases de données relationnelles et OO
Quatrième travail pratique
1
Nous utilisons Tomcat 6.0.14 ainsi que Java 6 comme dans le TP3. Dans les machines du
département, il y a une machine virtuelle VM-IFT287-Tomcat avec la configuration nécessaire pour
utiliser Tomcat. Sinon, vous pouvez travailler avec Eclipse ou Netbeans qui ont un serveur Tomcat de base
pour le développement.
Pour la partie qui touche XML, il faut lire un fichier XML contenant les informations d’une équipe et
l’insérer à la base de données. Ce fichier se trouvera dans un répertoire bien spécifie, il est fortement
recommandé de fixer à l’aide d’une constante Java la valeur de ce répertoire. Nous faisons ceci pour
simplifier le travail, parce qu’une application qui sera déployée sur le web devra avant de pouvoir traiter le
fichier l’« uploader » du poste client vers le serveur. Ce n’est pas très compliqué, mais on va le laisser pour
une autre occasion.
Vous devez aussi implémenter une page qui permettra exporter les informations d’une équipe dans un
fichier XML, le nom du fichier sera toujours le nom de l’équipe avec l’extension .xml
Pour uniformiser l’échange de données, vous devez analyser le fichier XML qui contient les informations
d’une équipe et proposer un schéma de validation approprié. À chaque fois que vous allez lire un fichier
d’équipe, il faudra faire la validation appropriée avant la lecture, il faudra aussi valider le fichier selon son
schéma après l’écriture d’un fichier.
Le fichier XML
Pour permettre l’échange d’information et accepter de nouvelles équipes, la ligue a défini un format de
fichier XML pour pouvoir inscrire une équipe. Voici l’exemple d’un fichier contenant une équipe :
<?xml version="1.0"?>
<equipe nom="Rangers">
<terrain nom="Rangers Ballpark" adresse="1000 Ballpark Way, Arlington, Texas 76011" />
<joueurs>
<joueur nom="Benoit" prenom="Joaquin" numero="53" datedebut="15-JAN-2008" />
<joueur nom="Francisco" prenom="Frank" numero="50" datedebut="15-JAN-2008" />
<joueur nom="Guardado" prenom="Eddie" numero="18" datedebut="15-JAN-2008" />
<joueur nom="Laird" prenom="Gerald" numero="15" datedebut="15-JAN-2008" />
<joueur nom="Jennings" prenom="Jason" numero="31" datedebut="15-JAN-2008" />
<joueur nom="Vazquez" prenom="Ramon" numero="12" datedebut="15-JAN-2008" />
<joueur nom="Catalanotto" prenom="Frank" numero="27" datedebut="15-JAN-2008" />
<joueur nom="Cruz" prenom="Nelson" numero="17" datedebut="15-JAN-2008" />
<joueur nom="Murphy" prenom="David" numero="7" datedebut="15-JAN-2008" />
<joueur nom="Young" prenom="Michael" numero="10" datedebut="15-JAN-2008" />
</joueurs>
</equipe>
Le fichier Rangers.xml est disponible sur le site web du cours pour tester votre application.
IFT 287 – Exploitation de bases de données relationnelles et OO
Quatrième travail pratique
2
Conseils sur les étapes à suivre pour développer votre programme
Tester un servlet ou une page JSP est un peu plus compliqué qu’un programme comme ceux que nous
avons développés depuis le début de la session. Il faut penser à développer de manière ordonnée et viser la
qualité dès le départ de la conception de votre système.
Voici quelques conseils qui peuvent aider à mieux organiser le travail :
1. Utilisez Eclipse et son plugin Tomcat. Il s’occupe de recharger le contexte quand vous modifiez
un servlet ou une page JSP.
2. Lors de la création de votre projet, il faut spécifier qu’il s’agit d’un projet TOMCAT.
3. Utilisez la fonction « View -> Source » pour voir le code HTML de la page affichée. Vous
pourrez ainsi voir tout le code produit par votre servlet ou votre page JSP.
4. Sous Eclipse, le répertoire « work » de votre projet contient les classes générées pour les pages
JSP. Si jamais Tomcat ne semble pas utiliser la dernière version d’une page JSP, supprimez les
classes générées par Tomcat dans ce répertoire.
5. N’oubliez pas de mettre à jour le fichier web.xml si vous ajoutez un nouveau servlet.
6. La création d’une session varie d’un navigateur à un autre.
a. Internet Explorer engendre une nouvelle session pour chaque instance d’explorer qui est
démarrée. Toutefois, une instance démarrée avec « New Window » ne crée pas une
nouvelle session.
b. Firefox a une seule session, peu importe la manière de démarrer une instance.
7. Identifiez un chef d’équipe. Son rôle sera de coordonner le travail et de s’assurer que les travaux
progressent comme prévu.
8. Planifiez. Vous pouvez faire une phase de conception et ensuite diviser les tâches entre les
membres de l’équipe pour assurer que tout le travail sera réalisé. Il faut toujours valider que les
échéanciers soient respectés.
9. Définissez toutes les classes et toutes les méthodes que votre programme a besoin avant de
commencer à coder.
10. Définissez des cas de test.
11. Codez et testez les classes une par une.
12. Testez chaque instruction au moins une fois.
13. Ne réinventez pas la roue. Inspirez-vous de l’exemple du système de gestion de bibliothèque web
vue en classe. Réutilisez autant de code que possible.
14. Commencez le plus rapidement possible le travail!
Remise
La date prévue pour la remise de ce quatrième TP est indiquée dans le plan cours. Pour ce TP nous allons
faire la correction en deux étapes :
1. La première étape c’est la vérification des fonctionnalités de votre application. Cette vérification
sera faite pendant l’heure du cours. Vous devez montrer au correcteur les fonctionnalités
implémentées.
2. La deuxième partie consiste à valider le code, la documentation et tout le reste de votre TP, pour
faire cela il faut faire un dépôt de la manière traditionnelle.
Vous pouvez utiliser la même procédure que pour le tp3. Remettre les fichiers suivants :
Il faut créer un répertoire nommé tp4 qui contient tous les fichiers à remettre :
 Un fichier texte nommé reponses.txt avec la réponse à la question suivante :
o Est-ce qu’il a été simple de réutiliser les classes programmées lors du TP3 ? Pourquoi?
o Ajouter dans votre fichier une section décrivant l’architecture que vous avez
implémentée.
 Tout fichier utilisé lors de la conception du système.
 tp4/login.jsp (la page d’accueil de votre système)
 tp4/WEB-INF/src/ligueBaseball/ (les classes utilisées lors du TP3)
IFT 287 – Exploitation de bases de données relationnelles et OO
Quatrième travail pratique
3







tp4/WEB-INF/src/ligueBaseballServlet/ (las classes qu’implémentent les servlet)
tp4/WEB-INF/*.jsp (Les pages JSP)
tp4/WEB-INF/web.xml
tp4/XML/ (Les fichiers XML des nouvelles équipes)
La documentation en JavaDoc du système.
Tout autre fichier nécessaire pour l’exécution du programme.
Le fichier etudiants.xml avec le nom et les matricules des membres de l’équipe.
Utilisez la commande turnin pour remettre votre travail.
turnin –c ift287 –p ift287TP4 tp4
Évaluation
Le barème de correction pour ce cinquième travail pratique est :
Caractéristique
Exactitude des résultats :
 Les bons messages d’erreurs sont émis
 Les mises à jour sont correctement effectuées
Documentation et lisibilité
(Voir la norme de programmation)
Simplicité de la conception du site web, correcte utilisation des styles
Lecture et écriture des fichiers XML
Architecture :
 Correcte implémentation de l’architecture traitée en classe.
 Chaque classe doit avoir une fonction bien définie.
 Chaque méthode a une fonction bien définie.
Utilisation efficace des ressources
Allocation d’objets minimale (préserver la simplicité au niveau de la conception)
Fermeture des ressources après son utilisation
TOTAL
IFT 287 – Exploitation de bases de données relationnelles et OO
Points
30
10
10
10
30
10
100 points
Quatrième travail pratique
4