TP n°2

Transcription

TP n°2
TP n°2
documentation : http://java.sun.com/products/servlet/2.2/javadoc/index.html
Ce TP reprend intégralement le TP précédent et le complète. Créer un nouveau projet tp2 en
copiant le précédent.
Objectifs du TP
Séparation de l'aspect traitement (implanté par une servlet) de l'aspect présentation (implanté
par une jsp).
Création de page d'erreur.
Spécification de l'application
Nous souhaitons écrire une application dont le but est de générer automatiquement, pour ses
abonnés, une grille de loterie. Elle propose un formulaire à travers lequel un utilisateur entre
son nom. Dans le cas où cet utilisateur est connu du système, une grille est affichée et lui est
envoyée. Si cet utilisateur n'est pas reconnu par le système, le formulaire est réaffiché avec un
message d'erreur en rouge : ″vous n'êtes pas reconnu par le système!″.
L'application est constituée d'une jsp (formulaire.jsp) qui gérera la présentation du
formulaire et d'une servlet (Controleur) qui assurera le traitement, c'est à dire l'identification
de l'utilisateur et demandera l'affichage
Question1
Ecrire la page formulaire.jsp qui sera chargée d'afficher le formulaire qui suit :
On s'appuiera sur le fichier HTML du tp1.
Question 2
On complète le fichier précédent pour lui permettre la récupération de la valeur entrée dans la
zone de texte.
Balise JSP :
o Les scripts sont des instructions Java embarquées dans du code HTML entre les
balises <% %>
o Les déclarations globales à une page JSP sont effectuées entre les balises <%! %>
o Une balise d'expression contient une expression Java <%=
%>
Exemple : <input name="Nom" value= "<%= nom %>" type="text">
Question 3
Lancer l'application en tapant l'URL suivante :
http://localhost:8080/tp2/formulaire.jsp
Que se passe-t-il ?
Supposons que Marie soit associée au paramètre Nom contenu dans l’objet request
le script jsp situé au début du fichier permet de récupérer cette valeur dans une variable java
la nouvelle valeur du paramètre jsp Nom prend la valeur ″Marie″.
L’objet request est un objet implicite. Il n’est donc pas déclaré.
page jsp
objet request
envoyer paramètre Nom
script jsp
getParameter("Nom")
affiche ″Marie″
String
nom
Question 4
On souhaite maintenant donner une présentation plus adaptée.
Le code d'erreur 404 correspond à une page non trouvée. Le fichier web.xml est complété de
la manière suivante, où /404.html est le fichier qui traite l'erreur, en affichant le message :
″La page demandée n'existe pas!″.
<error-page>
<error-code>
404
</error-code>
<location>
/404.html
</location>
</error-page>
Lancer à nouveau l'application en tapant l'URL suivante :
http://localhost:8080/tp2/toto
Question 5
Ecrire la servlet Controleur qui :
o récupère le paramètre du formulaire
o affiche à nouveau le formulaire si le nom saisi n'est pas reconnu par le système.
Supposons que, dans un premier temps, il n'y ait que 3 abonnés : ″Leroy″, ″Martin″, ″Bauer″
enregistrés dans la servlet.
Si l'utilisateur n'est pas reconnu comme abonné, le formulaire est affiché de nouveau avec un
message d'erreur.
Pour réafficher le formulaire pré rempli et modifier le paramètre erroné, on utilisera la
méthode suivante :
o modifier le formulaire
Suivant la valeur d'un paramètre que nous nommerons ″erreur″, on affichera le message
suivant en rouge à la suite du formulaire :
Le nom est inconnu!
o modifier le code de la servlet en vous aidant des lignes suivantes
ServletContext contexte = getServletContext();
RequestDispatcher dispatcher = contexte.getNamedDispatcher("Formulaire");
if( dispatcher != null ){
request.setAttribute("erreur","oui");
dispatcher.forward(request,response);
}
Question 6
Compléter la servlet avec une méthode dont le rôle est de générer un tableau de 6 entiers
compris entre 1 et 49 représentant une grille du loto.
Rappel :
En java la classe java.util.Random permet de générer aléatoirement une valeur dans un
intervalle donné.
La méthode nextInt(int n) appliquée à une instance de Random retourne un entier compris
dans l'intervalle [0;n[
Question 7
Ecrire la ″jsp″ grille.jsp qui affichera le nom de l'abonné et la grille générée
aléatoirement.