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/