IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Créer et déployer un premier servlet avec TomCat


précédentsommaire

III. La servlet

III-A. Création

Créez un nouveau projet Java, de type TomCat :

Image non disponible
Image non disponible
Image non disponible

La structure suivante a été créée par l'assistant :

Image non disponible

Créons maintenant la classe suivante dans le package com.developpez.tomcat et qui étend HttpServlet :

Image non disponible

Nous devons maintenant surcharger la méthode doGet. La méthode la plus simple est de faire un clic droit sur la classe HttpServlet, de sélectionner l'option Source/Implémenter les méthodes et de sélectionner doGet dans la liste.
Le code est généré automatiquement, les imports ajoutés et cela sans risque d'erreur. De plus, cela évite de devoir taper le code.

Image non disponible
Image non disponible

Modifions le code.

surcharge de doGet
Sélectionnez
package com.developpez.tomcat;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet {

    protected void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
        PrintWriter writer = res.getWriter();
        
        writer.println("Hello World !!!");
    }

}

III-B. Test du servlet

Notre servlet est écrite, TomCat est installé et configuré, il nous reste maintenant à tester.

III-B-1. Première méthode

Cette méthode a le mérite de fonctionner, mais est à proscrire pour plusieurs raisons :

  • trou de sécurité (nous pourrions exécuter n'importe quelle servlet) ;
  • peu esthétique ;
  • peut poser certains problèmes lors d'une mise en production.

Elle est donc présentée pour mémoire et surtout comme étant ce qui ne doit PAS être fait.

Dans le répertoire de configuration de TomCat, (c:\TomCat\conf), il faut trouver cette balise et la décommenter dans le fichier web.xml

activation de l'invoker du servlet
Sélectionnez
<!-- The mapping for the invoker servlet -->
<servlet-mapping>
   <servlet-name>invoker</servlet-name>
   <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

C'est cette balise qui nous permet d'invoquer notre servlet.

Démarrons TomCat et entrons l'URL suivante dans un navigateur : http://localhost:8080/TestTomCat/servlet/com.developpez.tomcat.Test

Doit apparaître ce qui suit dans le navigateur :

Image non disponible

Notons au passage comment est construite l'URL :

  • l'URL permettant d'accéder à TomCat ;
  • le nom de contexte, défini lors de la création du projet sous Eclipse ;
  • le nom de mapping défini lors de la mise à jour du fichier web.xml ;
  • le nom complet de notre classe.

III-B-2. Seconde méthode

Cette méthode est celle qui doit être utilisée. Elle permet de garantir une certaine sécurité, permet d'avoir une URL lisible et correspond à ce qui doit se faire pour une mise en production.

Dans le projet, sous Eclipse créez un fichier web.xml dans le répertoire WEB-INF.

WEB-INF\web.xml
Sélectionnez
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
    <display-name>TestTomcat</display-name> 
    <servlet> 
        <servlet-name>Test</servlet-name> 
        <servlet-class>com.developpez.tomcat.Test</servlet-class> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>Test</servlet-name> 
        <url-pattern>/Test</url-pattern> 
    </servlet-mapping> 
</web-app>

Démarrons TomCat et entrons l'URL suivante dans un navigateur : http://localhost:8080/TestTomCat/Test

Doit apparaître la même chose que précédemment.

Nous pouvons constater que l'URL est nettement plus lisible.

Si nous effectuons maintenant une modification au code de la servlet et que nous la sauvegardons, nous pouvons constater que TomCat prend automatiquement en compte cette modification

Image non disponible

Nous pouvons aussi surcharger la méthode doPost, de façon à répondre indifféremment suivant le mode d'interrogation du navigateur.

surcharge de la méthode doPost
Sélectionnez
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {

    doGet(arg0, arg1);
}

IV. Déploiement final de la servlet

Le déploiement de la servlet pour une mise en production est très simple. Il suffit de recopier le contenu du répertoire WEB-INF (à l'exception des sources bien sûr) dans le répertoire c:\TomCat\webapps\<le_nom_que_je_veux>.

Il faut aussi mettre à jour le fichier c:\tomcat\conf\server.xml afin de configurer le contexte pour tenir compte du servlet déployé et non de la configuration de développement.

mise à jour du contexte dans server.xml
Sélectionnez
<Context path="/TestTomCat" reloadable="true" 
            docBase="C:\TomCat\webapps\TestTomCat" 
            workDir="C:\TomCat\webapps\TestTomCat\work\org\apache\jsp" />

Lors du démarrage, TomCat le chargera automatiquement.


précédentsommaire

Ce document est issu de https://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.