Master of Computer Science - Dept. of Computer Science
- University of Grenoble I - France
Master 1 d'Informatique - UFR IMA - Université Grenoble I - France
· Etape 0 : Tester l'ébauche de l'application
· Etape 1 : Compléter les interactions fournies
· Etape 2 : Fournir de nouvelles interactions
· Etape 3 : Lien entre les interactions
· Etape 5 : Utilisation de procédures stockées
1. Tester l'ébauche de la partie Web de l'application de Théâtre.
o Installer puis démarrer la partie Web de l'application de Théâtre.
o Lancer un navigateur Web pour accéder à l'URL de la page principale de l'application de Théâtre.
o A partir de la page principale, cliquer sur les différents liens accessibles à partir de cette page et voir le résultat obtenu.
o Le lien "Programme" permet d'effectuer une requête d'affichage du programme de la saison.
o
Le
lien "Administration - Accès restreint" suivi du lien "Nouvelle
représentation" permet d'effectuer une requête d'ajout d'une nouvelle
représentation.
2. Tester l'ébauche de la partie BD de l'application de Théâtre.
o Partie BD : définir le schéma de la base de données et la peupler.
o
Observer
la structure de la partie BD : les différents paquetages et classes Java.
o Ecrire une application Java pour tester la partie BD.
1.
Examiner
les programmes des servlets ProgrammeServlet
et NouvelleRepresentationServlet.
2.
Compléter
les programmes des servlets données pour que ceux-ci effectuent les opérations
requises (i.e. affichage du programme et ajout d'une représentation) en
garantissant la cohérence et la persistance des données sur la BD.
(avec les
requêtes associées pour les accès à la base de données)
1.
Ecrire
une nouvelle servlet qui permet de consulter la liste de toutes les
représentations d'un spectacle donné par son numéro. Intégrer cette servlet à
l'application et la tester.
2.
Ecrire
une nouvelle servlet qui permet de consulter l'ensemble des places disponibles
pour une représentation donnée, chaque place étant décrite par le numéro du
rang et le numéro de place dans le rang. Intégrer cette servlet à l'application
et la tester.
3.
Ecrire
une nouvelle servlet qui permet de réserver une place dans une zone donnée,
pour une représentation donnée par son numéro et le numéro du spectacle
associé. Si la réservation a pu se faire, le résultat affiché est le numéro de
rang et le numéro de place dans le rang, et le prix de la place. Sinon, un
message explicatif est fourni à l'utilisateur. Intégrer cette servlet à
l'application et la tester.
1.
Permettre,
à partir de la réponse retournée par la servlet ProgrammeServlet,
de sélectionner un spectacle dans la liste pour lequel l'ensemble des
représentations sera affichée (intégration des questions Etape 1-3 et Etape
2-1).
2.
Permettre,
à partir de la réponse retournée par la servlet de consultation de la liste de
toutes les représentations d'un spectacle, de sélectionner une représentation
dans la liste pour laquelle l'ensemble des places disponibles sera affiché
(intégration des questions Etape 2-1 et Etape 2-2).
3.
Permettre,
à partir de la réponse retournée par la servlet de consultation de la liste de
toutes les représentations d'un spectacle, de sélectionner une représentation
dans la liste pour laquelle une réservation sera faite (intégration des
questions Etape 2-1 et Etape 2-3).
1.
Ajouter
à l'application la structure de données de caddie qui permet à l'utilisateur de
stocker les représentations qu'il a pré-sélectionnées
durant sa visite du site Web.
Indications : la pré-sélection de représentation ne réserve pas de billets pour
cette représentation. La réservation des places (c'est-à-dire la vente des
billets) n'est effectuée qu'au moment de la validation du caddie.
Proposer, en particulier, des opérations :
o
d'ajout
d'un élément au caddie,
o
de
suppression d'un élément du caddie,
o
de
consultation du contenu du caddie et
o
de
validation du caddie, i.e. réservation de l'ensemble des représentations
contenues dans le caddie.
2.
Pour
la mise en place du caddie, plusieurs aspects doivent être considérés :
o
La
durée de vie du caddie. La structure de données de caddie associée à un client
peut avoir une durée de vie correspondant à la durée de vie de la session du
client en question, ou une durée de vie de plusieurs jours allant au-delà de la
session du client.
o
La
volatilité/persistance du caddie. La structure de données de caddie peut être
soit stockée sur un support volatile tel que la mémoire (e.g.
dans un objet Java utilisé par les servlets de l'application Web), soit stockée
sur un support persistant tel que le disque (e.g.
dans une base de données).
Proposer
le choix entre différentes gestions possibles du caddie d'un client, i.e. un
caddie de la durée de vie de la session du client vs. un
caddie d'une durée de vie de plusieurs jours, un caddie volatile vs. un caddie persistant.
3.
Etendre
les servlets proposées précédemment pour y adjoindre la gestion du caddie.
1.
Programmer
une procédure stockée qui réalise la réservation de places pour une
représentation. Cette procédure est paramétrée par : le spectacle, la date de
la représentation, le nombre de places et la zone dans laquelle les places
doivent se trouver. Le paramètre résultat est la liste des places réservées
(exactement n, et données par leur rang et numéro dans le rang). Modifier en
conséquence le code de votre application.
1.
Faire
en sorte que l'utilisateur qui tente d'accéder à la page d'administration du
site Web (/admin/admin.html) soit au préalable
authentifié avec un nom d'utilisateur et un mot de
passe valides.
Voir, par exemple, les documentations sur l'authentification via Apache Tomcat ici
et là.
1.
Proposer
une nouvelle version des interactions de l'application de Théâtre pour que
celles-ci ne soient plus basées sur des servlets mais sur des JSP.
1.
Proposer
une amélioration de la présentation des documents Web retournés comme réponse
des servlets, comme par exemple l'utilisation d'un style de pages Web, la
structuration des pages Web en frames, l'uniformisation de la font utilisée
dans l'ensemble des documents Web, etc.
Page maintained by S. Bouchenak, Sara.Bouchenak@imag.fr
Last
modification: 14/03/2011