| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
Une application web avec une seule page JSP et sans
servlet configurée est très peu utile. Ajoutons une simple
servlet à cette application et modifions les fichiers pom.xml
et web.xml en conséquence.
Pour commencer, nous allons devoir créer un nouveau package dans
src/main/java nommé
org.sonatype.mavenbook.web :
$ mkdir -p src/main/java/org/sonatype/mavenbook/web $ cd src/main/java/org/sonatype/mavenbook/web
Une fois que vous avez créé ce package, allez dans le répertoire
src/main/java/org/sonatype/mavenbook/web et créez une
classe SimpleServlet dans le fichier
SimpleServlet.java, qui contient le code suivant :
Exemple 5.6. Classe SimpleServlet
package org.sonatype.mavenbook.web;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println( "SimpleServlet Executed" );
out.flush();
out.close();
}
}
Notre classe SimpleServlet est très simple :
une servlet qui écrit un message simple sur le
Writer de la réponse.
Pour ajouter cette servlet à votre application web et l'associer à l'URL d'une requête,
ajoutez les balises servlet et servlet-mapping de
l'Exemple 5.7, « Configurer la Servlet » dans le fichier web.xml de votre projet. Le fichier
web.xml se trouve dans src/main/webapp/WEB-INF.
Exemple 5.7. Configurer la Servlet
<!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>Archetype Created Web Application</display-name> <servlet> <servlet-name>simple</servlet-name> <servlet-class>org.sonatype.mavenbook.web.SimpleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>simple</servlet-name> <url-pattern>/simple</url-pattern> </servlet-mapping> </web-app>
Tout est en place pour tester la servlet ; la classe est bien dans
src/main/java et le fichier web.xml a
été mis à jour. Avant que vous ne lanciez le plugin Jetty, compilez votre
projet en exécutant mvn compile :
~/examples/ch-simple-web/simple-webapp $ mvn compile
...
[INFO] [compiler:compile]
[INFO] Compiling 1 source file to \
~/examples/ch-simple-web/simple-webapp/target/classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[4,0] \
package javax.servlet does not exist
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[5,0] \
package javax.servlet.http does not exist
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[7,35] \
cannot find symbol
symbol: class HttpServlet
public class SimpleServlet extends HttpServlet {
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[8,22] \
cannot find symbol
symbol : class HttpServletRequest
location: class org.sonatype.mavenbook.web.SimpleServlet
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[9,22] \
cannot find symbol
symbol : class HttpServletResponse
location: class org.sonatype.mavenbook.web.SimpleServlet
/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[10,15] \
cannot find symbol
symbol : class ServletException
location: class org.sonatype.mavenbook.web.SimpleServlet
La compilation échoue car votre projet Maven n'a pas la dépendance vers l'API Servlet. Dans la section suivante, nous allons ajouter l'API Servlet au POM de notre projet.