Travaux Pratiques (Licence Pro) Servlet/JSP (MVC) & Web Services --- Site Web d un club de tennis ETAPE 1 : Services locaux ( servlets / JSP ) Services offerts par le site web a chaque adhérent du club de tennis : Consultation de son «dossier adhérent» Inscription aux différents tournois Pré-requis : chaque utilisateur doit s authentifier ( «login/password» ) avant d avoir accès à ces services Principe général de fonctionnement du site : Toutes les actions de l utilisateur doivent être concentrées sur une seule servlet qui va ensuite les dispatcher en fonction d un «code action» Chaque action est traitée selon le «pattern MVC» Chaque page JSP doit inclure un «haut de page» standard (statique) contenant le nom du club et ses coordonnées ( adresse et téléphone ) Prévoir une inclusion de façon à avoir un lien ou un bouton «Retour au menu» unique et réutilisable dans toutes les JSP qui en ont besoin. Seule la méthode http «POST» est autorisée. La durée d une session utilisateur est limitée à 20 minutes. Classes du «modèle» ( beans ) : Adherent - Nom (String) - Prenom ( String) - Adresse (String) - Telephone (String) Tournoi - Code (ID) (int) - Nom (String) - Jour ( Date) - Lieu (String) - Niveau (int) ( 1 à 5 )
Enchaînements : «Navigateur» Code action : code= L / A / I ActionServlet /action «Modèle» Page d accueil Login.html L LoginServlet /service/login Objets JavaBean Menu.jsp A AdherentServlet /service/adherent Adherent Adherent.jsp (*) I InscriptionServlet /service/inscription ListeTournois Tournoi InscriptionTournois.jsp (*) InscriptionOk.jsp (*) (*) include RetourMenu.jspf La liste des tournois est invariable, et donc partagée par toute les sessions Elle doit être initialisée avant tout appel au service d inscription à un tournoi. Une liste de 3 ou 4 tournois est suffisante pour le TP. Tous les objets sont gérés et stockés en mémoire uniquement (pas de couche d accès aux données) Projet : Nom du projet : «tp_tennis» Nom du contexte de la WebApp : «/tennis» Package des servlets : «servlet» ( exemple «servlet.actionservlet» ) Package des beans : «bean» Répertoire des JSP : «jsp»
Premier accès à l application : URL : «http://serveur:port/tennis/» Afficher la page d accueil Login.html ( cf web.xml : <welcome-file-list> ) Login.html : Formulaire avec deux champs de saisie : Login Password Bouton «Validation» /action?code=l ActionServlet : action ( «action=xxx» ) Vérifie que l utilisateur (adhérent) à une session active ( déjà authentifié ) Si non : Si action == «L» ( «login» ) Forward LoginServlet Sinon Forward Login.html Si oui : Si action == «A» ( «dossier adherent» ) Forward AdherentServlet Si action == «I» ( «inscription tournoi» ) Forward InscriptionServlet Autre cas ( autre valeur ou pas de code action ) Forward Menu.jsp LoginServlet : login ( «login =xxx» ) password ( «password =xxx» ) ( paramètres saisis dans Login.html ) Authentification (sur valeur «en dur» du password ) : Si password == «OK» ( on considère que l utilisateur est authentifié ) Ouvrir une session pour cet utilisateur Stocker le «login» dans la session Afficher la page «Menu» Forward Menu.jsp ( le login de l utilisateur doit être afficher en haut de cette page ) Sinon Retour à la page de saisie du «login / password»
Forward Login.html Menu.jsp : Affichage du login de la session en cours Affichage du menu des services proposés : «Consultation de votre dossier adhérent» /action?code=a «Inscription à un tournoi» /action?code=i AdherentServlet : aucun Récupération d une instance de la classe «Adherent» à partir du «login» stocké en session Faire simplement un «new Adherent( login )» Dans le constructeur de la classe Adherent : nom = «nom_» + login ; prenom = «prenom_» + login ; adresse = «valeur en dur» ; telephone = «valeur en dur» ; Forward Adherent.jsp Adherent.jsp : Affichage des informations du bean «Adherent» ( utiliser «<jsp:usebean >» ) InscriptionServlet : Paramètres de la requête : «Code tournoi» ( tournoi=xxx ) 2 cas : pas de «code tournoi» afficher la liste des tournois pour inscription éventuelle Forward InscriptionTournois.jsp «code tournoi» présent : enregistrer l inscription : identifier le tournoi pour la JSP de confirmation (aucun autre traitement à réaliser ) Forward InscriptionOk.jsp InscriptionTournois.jsp : Affichage de la liste des tournois sous forme de table html ( NE PAS utiliser «<jsp:usebean >» ) Pour chaque ligne : Code Nom Date Lieu Niveau + [ bouton «Inscription» ]
pour chaque bouton «Inscription» /action?code=i&tournoi=xxx InscriptionOk.jsp : Confirmation de l inscription : Récupération du tournoi concerné Affichage : «Inscription enregistrée pour le tournoi» + Nom + «du» + Date + «à» + Lieu