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


précédentsommaire

3. La servlet

3.1. 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 !!!");
	}

}
				

3.2. Test du servlet

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

3.2.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 estéthique
  • 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
  • et enfin le nom complet de notre classe

3.2.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 prends automatiquementen 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);
}
				

précédentsommaire

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://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.