Une première servlet

Sacrifions à la tradition, et écrivons de suite une première servlet. Il s’agira d’une servlet de type HTTP. Elle pourra être appelée d’un navigateur web, et renverra une page sur laquelle sera juste écrit « Bonjour le monde ».

L’installation de cette première servlet peut paraître complexe, tout simplement parce que nous sommes obligé de créer une application web pour la faire fonctionner, et que ce processus est assez lourd.

Une servlet est une classe Java qui doit étendre la classe HttpServlet. Elle comporte trois méthodes fondamentales :

Pour que cette servlet fonctionne dans Tomcat, il nous faut créer un fichier WAR (web archive). Le format d'un tel fichier est défini dans les spécifications de l'API Servlet. Un fichier WAR est un fichier JAR standard, dans lequel doit se trouver un répertoire WEB-INF. Ce répertoire WEB-INF doit contenir un fichier de configuration web.xml dont nous allons voir un exemple. Il peut enfin contenir :

Voici donc la structure de répertoire de notre fichier WAR.

Voici enfin le contenu du fichier web.xml.

Ce fichier est un fichier XML, dont l'élément racine est web-app. On trouve deux éléments fils : servlet et servlet-mapping.

L’élément servlet permet de déclarer des servlets, et de les associer à des classes Java. Dans notre cas, nous créons une servlet appelée Hello, associée à la classe Java org.galilee.servlet.Bonjour, qui doit donc se trouver dans un fichier Bonjour.class et dans la bonne structure de répertoire.

L’élément servlet-mapping permet d’associer une servlet à une URL. Cette déclaration doit bien sûr être cohérente avec ce qui a été déclaré dans Tomcat (et éventuellement Apache). Dans notre exemple, notre servlet est associée à l’URL /bonjour.

Ces deux éléments sont en relation l'un avec l'autre grâce au fait qu'ils ont même valeur pour le sous-élément servlet-name. Notons enfin que deux servlets différentes peuvent se référer à la même classe Java. Nous verrons l’intérêt de ce genre de choses dans la suite.

Il ne reste plus qu’à compiler notre classe Java, à la copier dans le bon répertoire c’est à dire WEB-INF/classes, à démarrer Tomcat, et à l’invoquer dans un navigateur par l’URL http://localhost/bonjour/bonjour.

Ajouter d'autres servlets à cette application web est ensuite très simple : il suffit d’ajouter les deux éléments servlet et servlet-mapping dans le fichier web.xml, et la classe Java dans le bon répertoire.