Paquet de servlets


La structure de l'application Web impliquant le sous-répertoire WEB-INF est standard pour toutes les applications Web Java et est spécifiée par la spécification de l'API Servlet. Étant donné un répertoire de niveau supérieur nommé myapp, la structure du répertoire ressemble à ceci :

/myapp
    /images
    /WEB-INF
        /classes
        /lib

WEB-INF Le sous-répertoire contient le descripteur de déploiement de l'application, nommé web.xml. Tous les fichiers HTML se trouvent dans le répertoire de niveau supérieur myapp. Pour l'utilisateur administrateur, vous constaterez que le répertoire ROOT est le répertoire parent de myApp.

Créez le servlet dans le package

Le répertoire WEB-INF/classes contient toutes les classes Servlet et autres fichiers de classe. La structure du répertoire où se trouvent les fichiers de classe correspond à leurs noms de package. Par exemple, si vous avez un nom de classe complet com.myorg.MyServlet, alors cette classe Servlet doit se trouver dans le répertoire suivant :

/myapp/WEB-INF/classes/com/myorg/MyServlet.class

L'exemple suivant crée un package nommé La classe MyServlet de com.myorg.

// 为包命名
package com.myorg;  

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
  private String message;
 
  public void init() throws ServletException
  {
      // 执行必需的的初始化
      message = "Hello World";
  }
 
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");
 
      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

Compiler le servlet dans le package

Compiler les classes dans le package n'est pas très différent de la compilation d'autres classes. Le moyen le plus simple est de conserver vos fichiers Java avec des chemins complets, comme les classes mentionnées ci-dessus, qui seront conservés dans com.myorg. Vous devez également ajouter le répertoire à CLASSPATH.

En supposant que votre environnement est correctement configuré, accédez au répertoire <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes et compilez MyServlet.java comme indiqué ci-dessous. :

$ javac MyServlet.java

Si le servlet dépend d'autres bibliothèques, vous devez également référencer ces fichiers JAR dans le CLASSPATH. Ici, je fais uniquement référence au fichier JAR servlet-api.jar car je n'utilise aucune autre bibliothèque dans le programme Hello World.

Cette ligne de commande utilise le compilateur javac intégré fourni avec le kit de développement logiciel Java de Sun Microsystems (JDK, nom complet : Java Software Development Kit). Kit de développement logiciel Java (JDK) de Microsystems. Pour que cette commande fonctionne correctement, vous devez inclure l'emplacement du SDK Java que vous utilisez dans votre variable d'environnement PATH.

Si tout se passe bien, la compilation ci-dessus générera le fichier MyServlet.class dans le même répertoire. La section suivante explique comment déployer un servlet compilé en production.

Emballage et déploiement de servlets

Par défaut, l'application Servlet se trouve sous le chemin <Tomcat-installation-directory>/webapps/ROOT, et les fichiers de classe sont placés dans <Tomcat -répertoire-installation> ;/webapps/ROOT/WEB-INF/classes.

Si vous avez un nom de classe complet com.myorg.MyServlet, alors cette classe Servlet doit être située dans WEB-INF/classes/com/myorg/MyServlet.class, vous avez besoin Créez les entrées suivantes dans le fichier web.xml situé dans <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ :

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.myorg.MyServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>

Les entrées ci-dessus doivent être créées dans le fichier web.xml< ;web-app>...</web-app> Il se peut qu'il y ait déjà plusieurs entrées disponibles dans ce fichier, mais ne vous en souciez pas.

À ce stade, vous avez pratiquement terminé, utilisons maintenant <Tomcat-installation-directory>binstartup.bat (sous Windows) ou <Tomcat-installation-directory>/bin/startup sh (. sous Linux/Solaris, etc.) démarrez le serveur Tomcat, et enfin saisissez http://localhost:8080/MyServlet dans la barre d'adresse du navigateur. Si tout se passe bien, vous verrez les résultats suivants :

Hello World