Java & le web
x Le web dynamique
x Java & le web

Intro à Tomcat
x Serveur d'applications
x Présentation Tomcat
x Installation
x Arborescence

Configuration
x Introduction
x Server
x Service
x Engine
x Host
x Context
x DefaultContext
x Logger
x Loader
x Realm
x Valve

Connecteurs
x Balise Connector
x Coyote HTTP/1.1

Sécurisation accès
x La balise Realm
x Memory Based
x JDBC Database
x Protéger ressources
x Cryptage password

Les Valve
x La balise Valve
x Access Log
x Single Sign-On

Fonctionnalités
x Déploiement auto.
x Class loaders

Eclipse & Tomcat
x Plug-in pour Eclipse
x Projet Tomcat
x Debugger des JSP

Créer une appli web
x Présentation
x Architecture
x Fichier web.xml
x Déploiement

Tomcat 5
x Nouveautés

Tomcat's Corner
x Crédits
x Liens
 
             
"Ma première application web"

 

 

But de l'opération

Nous avons vu comment installer puis configurer Tomcat. Nous avons également évoqué comment créer nos applications web dans Eclipse, et comment piloter le serveur depuis cet IDE. A présent, nous proposons de présenter la création d'une application web très simple. A travers cet exemple, nous pourrons détailler comment déployer une application web dans Tomcat (c'est-à-dire comment installer une application sur le serveur).

 

Code source de l'exemple

Notre application web est vraiment très simple. Elle ne contient qu'une servlet. Une servlet est un objet Java qui, dans une webapp, reçoit la requête client, effectue un traitement (en appelant éventuellement d'autres objets pour les réaliser), et renvoie la réponse au client. En l'occurence, lorsque l'on développe une webapp, on crée au moins un servlet, chargée de renvoyer les réponses adéquates selon les requêtes.

La servlet présentée est on ne peut plus simple (le but de ce site n'est pas de proposer un cours complet sur le développement d'applications web en Java). Elle se contente d'envoyer une réponse basique, même pas dynamique... Le code source est proposé dans la capture d'écran ci-dessous, et est expliqué ensuite.

  • Notre classe, que nous avons nommée PremiereServlet, hérite de javax.servlet.http.HttpServlet. Il s'agit d'un objet fourni dans les extensions du JDK correspondant aux spécifications des servlets HTTP. Cette classe définit les comportements par défaut d'une telle servlet. Pour définir nos propres comportements, il faut donc surcharger une ou plusieurs méthodes.

  • Dans l'exemple, nous surchargeons la méthode doGet(...) définie dans HttpServlet. Cette méthode est appelée lorsqu'une requête arrive pour cette servlet via la méthode HTTP GET. Tout naturellement, le contenu de cette méthode doit donc correspondre aux actions que nous souhaitons que la servlet effectue lors d'une telle requête. A la fin de la méthode, la réponse doit avoir été créée. Soit en l'écrivant directement, soit en redirigeant l'utilisateur vers une page.

  • Cette méthode doGet(...) admet deux paramètres. Le premier, de type HttpServletRequest, est la requête arrivant à la servlet. Elle contient donc tous les paramètres de cette requête. Le second, de type HttpServletResponse, est bien sûr l'objet réponse. Celui que l'on utilisera pour fournir la réponse au client.

  • Dans notre exemple, on se contente d'écrire une réponse en HTML directement depuis la servlet (pas de redirection ni d'appel à d'autres objets ni de traitement). Pour ce faire, on définit tout d'abord le type de contenu de la réponse, ici du text/html (type MIME). On récupère ensuite le PrintWriter de la réponse, objet qui nous permettra littéralement d'écrire la réponse au client. Les lignes suivantes sont simplement l'écriture d'un flux HTML simple dans le PrintWriter.

  • Le client recevra donc ce flux HTML, qu'il affichera à l'écran. Il n'y a certes rien de "dynamique" dans cette servlet, une simple page HTML statique aurait aussi bien fait l'affaire. Mais il ne s'agit que d'un court exemple, à partir duquel on comprend bien toutes les possibilités qui s'offrent à nous. Au lieu d'écrire un simple flux HTML en dur, nous aurions pu récupérer des informations sur le solde du compte bancaire du client, ou le nombre de mails l'attendant sur le serveur. Et, de la même manière que nous écrivons ces chaînes de caractères statiques, nous aurions pu envoyer dans la réponse des variables, dont les valeurs diffèreraient selon les visiteurs.

Cet exemple n'est donc certes pas la panacée des applications web, loin s'en faut. Mais il nous permet de poser les bases du déploiement d'applications web sous Tomcat (voir pages suivantes l'architecture d'une webapp et le déploiement de celle-ci).