Nous abordons ici la mise en oeuvre et le fonctionnement des servlettes en Java, ainsi que la configuration des applications web (webapp) qui les hébergent.
Exercice 1 - Installation de Tomcat
Installer Tomcat, le
serveur de servlettes et de JSP du projet Jakarta. Pour cela, il suffit de
télécharger l'archive disponible à la page http://www-igm.univ-mlv.fr/~roussel/JAKARTA/
et de suivre les indications données par cette page.
Vérifier que le serveur démarre correctement et tester quelques uns des exemples disponibles. Accédez également à la documentation des API de la version 2.2 des servlettes.
Exercice 2 - La servlette qui dit bonjour
Dans le répertoire d'installation (disons JAKARTA_HOME), créer une nouvelle application web de nom td6 revient à créer un nouveau répertoire sous webapp, soit ${JAKARTA_HOME}/webapp/td6). À l'intérieur de ce répertoire td6, créer un sous-répertoire WEB-INF qui contient lui-même un sous répertoire classes.
Dans le répertoire classes, écrire une classe servlette Bonjour héritant de la classe javax.servlet.http.HttpServlet. Cette classe doit redéfinir la méthode doGet() de sorte qu'elle écrive, sur le flot de sortie associé à la réponse, une page HTML contenant "Bonjour" écrit en gras. Après avoir compilé ce source par
javac -classpath ${JAKARTA_HOME}/lib/servlet.jar:. Bonjour.java
vérifier qu'elle fonctionne en accédant dans un navigateur à l'URL
http://localhost:8080/td6/servlet/Bonjour
Exercice 3 - Configuration de l'application Web
En vous inspirant du fichier web.xml de la webapp examples, créer un fichier web.xml pour la webapp td6 (dans webapp/td6/WEB-INF/web.xml) en ne conservant que les éléments nécessaires et en les modifiant de sorte que :
http://localhost:8080/td6/servlet/Bonjour http://localhost:8080/td6/servlet/myServlet http://localhost:8080/td6/hello
Exercice 4 - Instances de servlettes
Dans le fichier Bonjour.java, ajouter une variable d'instance count (initialisée à 0 qui compte le nombre de fois où la servlette a été appelée (incrémentée dans la méthode doGet()). Modifier le contenu de la page retournée par la servlette afin de visualiser ce nombre. Tester votre servlette avec le chemin http://localhost:8080/td6/hello.
Exercice 5 - Initialisation de servlettes
Si le serveur est arrêté puis redémarré, de nouvelles servlettes sont instanciées et leur compteur est donc réinitialisé à 0.
Pour permettre de conserver un historique, une solution consiste à sauver la valeur du compteur à chaque fois que ce nombre est modifié.
Exercice 6 - Utilisation de formulaire
Écrire un formulaire statique (une page HTML), permettant à un client de préciser un texte qu'il désire voir afficher après "Bonjour" dans la page retournée par votre servlette. Le champ de saisie sera initialisé à "moi" et le bouton de soumission du formulaire associé à votre servlette avec la méthode GET. Tester l'association.
Maintenant que votre servlette est associée au formulaire, modifier la méthode doGet() afin de récupérer le texte entré par le client. Pour cela, utiliser la méthode getParameter() de la l'instance de HttpServletRequest reçue en argument.
Modifier le formulaire et votre servlette afin d'accéder à cette
fonctionnalité