Table of Contents
TP1 : Rappels Web
Documentations utiles
Installation d'un serveur Web Apache Tomcat
Installation sur votre compte (ou dans /tmp)...
Télécharger l'archive :
wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
Décompressez l'archive dans le répertoire de votre choix <tomcat> :
tar xvzf apache-tomcat-6.0.20.tar.gz
Configurez votre environnement pour Apache/Tomcat en remplaçant <tomcat> par le chemin absolu vers le répertoire que vous avez décompressé :
export CATALINA_HOME=<tomcat>
Puis lancer le serveur Web Tomcat (à l'écoute par défaut sur le port 8080) :
<tomcat>/bin/startup.sh
Vous pouvez ensuite consulter http://localhost:8080 avec votre navigateur Web pour vérifier que votre serveur Web est opérationnel.
Configuration avançée
Pour changer le port 8080, vous pouvez editer le fichier <tomcat>/conf/server.xml, sans oublier de relancer le serveur Web :
<tomcat>/bin/shutdown.sh ; <tomcat>/bin/startup.sh
Il faut maintenant ajouter un administrateur au serveur Web Tomcat en ajoutant au fichier de configuration <tomcat>/conf/tomcat-users.xml les lignes suivantes :
<role rolename="admin"/> <role rolename="manager"/> <user username="admin" password="adminadmin" roles="admin,manager"/>
Relancer le serveur Web. Démarrer l'interface Web d'administration http://localhost:8080/manager/html/ et entrer le login “admin” et le password “adminadmin”. A priori, tout est OK pour la suite.
Serveur Web et Servlet
Un peu d'aide pour la suite : http://localhost:8080/docs/
Page Web HelloWorld
Par défaut, il faut ajouter les ressources web dans le répertoire <tomcat>/webapps/. Créez un sous-répertoire test/. Ajouter une simple page HTML “HelloWorld.html” à votre serveur Web, accessible à l'URL suivante : http://localhost:8080/test/HelloWorld.html
Ajouter l'option permettant à votre serveur web de lister les fichiers contenus dans un répertoire.
Servlet Hello World
Toujours dans le sous-répertoire test/, nous allons ajouter une servlet. Ecrire une servlet “HelloServlet.java”, qui a la structure suivante…
- HelloServlet.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); /* ... */ out.println("</html>"); } }
Pour compiler votre servlet, utilisez la ligne de commande ci-dessous :
$ javac -cp "${CATALINA_HOME}/lib/*" HelloServlet.java
Il faut maintenant créer un répertoire WEB-INF/ dans test/ et déplacer le fichier HelloServlet.class dans le sous-répertoire WEB-INF/classes/
Pour rendre votre servlet accessible à l'URL suivante : http://localhost:8080/test/MyHelloServlet
il faut ajoutez un fichier web.xml dans WEB-INF/ avec les informations suivantes :
- web.xml
<?xml version="1.0" ?> <web-app> <servlet> <servlet-name>testservlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>testservlet</servlet-name> <url-pattern>/MyHelloServlet</url-pattern> </servlet-mapping> </web-app>
Utilisation de Paramètres
Ecrire maintenant une servlet “ParamServlet.java” qui utilise deux paramètres, “firstname” et “lastname” et qui affiche le message “Hello World <firstname> <lastname>”. On pourra tester la servlet de la façon suivante (requête GET) :
http://localhost:8080/test/MyParamServlet?firstname=tutu&lastname=toto
Mettre maintenant en place une page HTML “Form.html” permettant de saisir les paramètres dans un formulaire et de les “poster” à la servlet (requête POST).
http://localhost:8080/test/Form.html
Un exemple de JSP (Java Server Page)
Ecrire maintenant la JSP HelloWorld.jsp, affichant <count> fois le message <message>, de la manière suivante :
http://localhost:8080/test/HelloWorld.jsp?message=Hello+World&count=10
Mise en place de HTTPS
En vous aidant de l'aide http://localhost:8080/docs/ssl-howto.html, mettre en place un serveur web sécurisé sur le port 8443. Il faut tout d'abord générer un certificat autosigné avec keytool, puis ensuite configurer le fichier <tomcat>/conf/server.xml comme il faut. Pour vous aider, vous povez consulter les logs de démarrage du serveur dans <tomcat>/logs/catalina.*.log.
https://localhost:8443/