* TD/TP 1 (Choisir les exercices à faire en TD) ** (TP seulement) Initialisation de l'environnement de travail + HelloWWW - création du répertoire des servlets $ mkdir -p ~/public_html/WEB-INF/classes - utilisation de la bibliothèque JSDK echo "export CLASSPATH=/usr/share/java/servlet-2.3.jar" >>~/.bashrc (attention, il y a deux signes ">") décommentez dans le fichier ~/.bash_profile les lignes sur .bashrc - connexion sur psm-serv $ ssh -X psm-serv # cd public_html/WEB-INF/classes (nous allons travailler que dans ce répertoire) - édition de la servlet : créer les fichiers .java dans public_html/WEB-INF/classes - compilation $ javac HelloWWW.java - visualisation avec mozilla, http://psm-serv:8180/~user/servlet/HelloWWW ** (TP seulement) HelloWWW en HTML Modifier la servlet pour que la sortie ne soit pas en mode texte, mais en mode HTML. ** (TP seulement) Durant tout le TP, mettre l'option "Cookies" de mozilla à "Ask me before storing a cookie" (pour voir l'échange des cookies) et, lorsqu'il vous affiche les cookies, décochez la case "Remember my decision". ** Gestion des cookies Faire une servlet qui envoie deux cookies, dont un contient la date courante (classe Date). Ensuite modifier-la pour qu'elle affiche les cookies transmis par le client. Enfin, effacez les cookies stockés dans le navigateur et rechargez la page. Corrigez l'éventuelle erreur et, en refaisant la manipulation, chercher à comprendre le moment où les cookies sont reçus et envoyés (voir aussi la documentation php sur Web de la fonction setcookie). ** Lecture des paramètres GET/POST Faire une page A.html avec un formulaire contenant un editbox de nom "NOM", une case à cocher "SI" et un bouton "Submit" vers une servlet. Faire aussi la servlet, qui affiche en html le contenu de l'editbox et la valeur de la case à cocher. Faire l'exercice pour : (a) GET (b) POST Dans les deux cas, faites "Reload" de la servlet dans le navigateur. Attention, le fichier .html doit être dans un autre répertoire que les servlets. ** Sécurité dans les données d'entrée Utiliser l'exercice précédent. (a) Que se passe-t-il si l'utilisateur introduit comme nom "" ? (b) Corriger la vulnérabilité. ** Différence session / cookies Faire une servlet qui affiche le nombre de connexions (lectures de la servlet) sur la page : (a) en utilisant session. (b) en utilisant cookie. Quelle est la différence entre les deux méthodes ? ** Session (a) Faire une page avec un editbox (simulant le nom d'un produit à acheter) et un bouton submit avec méthode POST, qui affiche les livrés déjà achetés. (À la première connexion, aucun livre n'est bien sûr pas affiché.) À chaque submit, le texte de l'editbox est ajouté à la base de données et la page est réaffichée (avec les livrés achetés actualisés). (b) Au cas où le texte existe déjà, ne l'écrivez pas plusieurs fois, mais rajoutez son nombre à la fin. (c) Faire valider votre page par le validateur de HTML. Corriger toutes les erreurs. ** Session - à ne pas faire Faire un formulaire A avec 3 livres à choisir (boutons achat, reset) et qui affiche les livres que l'utilisateur a déjà achetés. Après clic, afficher un formulaire B avec le choix de paiement : CB ou chèque (boutons : achat, annuler), en mettant par défaut la dernière valeur choisie. Après clic, afficher de nouveau la page A. Faire plusieurs tests pour vérifier si les valeurs par défaut sont affichées correctement. Les paramètres sont envoyés par POST. Faire valider votre page par le validateur de HTML. Corrigez toutes les erreurs. ** Formulaires cachés Faire la Session 2 sans session, mais avec des formulaires cachés. ** Contexte de servlets