Servlets - Verpackung

Die Webanwendungsstruktur mit dem Unterverzeichnis WEB-INF ist Standard für alle Java-Webanwendungen und wird in der Servlet-API-Spezifikation angegeben. Gegeben ein Verzeichnisname der obersten Ebene von myapp. So sieht diese Verzeichnisstruktur aus:

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

Das Unterverzeichnis WEB-INF enthält den Bereitstellungsdeskriptor der Anwendung mit dem Namen web.xml. Alle HTML-Dateien sollten im obersten Verzeichnis myapp gespeichert werden . Für Administratorbenutzer finden Sie das ROOT-Verzeichnis als übergeordnetes Verzeichnis.

Servlets in Paketen erstellen

Das Verzeichnis WEB-INF / classes enthält alle Servlet-Klassen und andere Klassendateien in einer Struktur, die ihrem Paketnamen entspricht. Zum Beispiel, wenn Sie einen vollständig qualifizierten Klassennamen von habencom.myorg.MyServlet, dann muss sich diese Servlet-Klasse im folgenden Verzeichnis befinden -

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

Im Folgenden finden Sie ein Beispiel zum Erstellen einer MyServlet-Klasse mit dem Paketnamen com.myorg

// Name your package
package com.myorg;  

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
   private String message;
 
   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }
 
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

Servlets in Paketen kompilieren

Es gibt nicht viel anderes, um eine im Paket verfügbare Klasse zu kompilieren. Der einfachste Weg ist, Ihre Java-Datei in einem vollständig qualifizierten Pfad zu halten, wie oben erwähnt. Die Klasse wird in com.myorg gespeichert. Sie müssten dieses Verzeichnis auch in CLASSPATH hinzufügen.

Angenommen, Ihre Umgebung ist ordnungsgemäß eingerichtet, gehen Sie hinein <Tomcat-installationdirectory>Verzeichnis / webapps / ROOT / WEB-INF / classes und kompilieren Sie MyServlet.java wie folgt

$ javac MyServlet.java

Wenn das Servlet von anderen Bibliotheken abhängt, müssen Sie diese JAR-Dateien auch in Ihren CLASSPATH aufnehmen. Ich habe nur die JAR-Datei servlet-api.jar eingefügt, da ich keine andere Bibliothek im Hello World-Programm verwende.

Diese Befehlszeile verwendet den integrierten Javac-Compiler, der mit dem Sun Microsystems Java Software Development Kit (JDK) geliefert wird. Damit dieser Befehl ordnungsgemäß funktioniert, müssen Sie den Speicherort des von Ihnen verwendeten Java SDK in die Umgebungsvariable PATH aufnehmen.

Wenn alles gut geht, würde die obige Kompilierung ergeben MyServlet.classDatei im selben Verzeichnis. Im nächsten Abschnitt wird erläutert, wie ein kompiliertes Servlet in der Produktion bereitgestellt wird.

Bereitstellung gepackter Servlets

Standardmäßig befindet sich eine Servlet-Anwendung im Pfad <Tomcat-Installationsverzeichnis> / webapps / ROOT, und die Klassendatei befindet sich im <Tomcat-Installationsverzeichnis> / webapps / ROOT / WEB-INF / classes.

Wenn Sie einen vollständig qualifizierten Klassennamen von haben com.myorg.MyServletDann muss sich diese Servlet-Klasse in WEB-INF / classes / com / myorg / MyServlet.class befinden und Sie müssen die folgenden Einträge in erstellen web.xml Datei im Verzeichnis <Tomcat-Installationsverzeichnis> / 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>

Über den Einträgen, die in <web-app> ... </ web-app> -Tags erstellt werden sollen, die in der Datei web.xml verfügbar sind. Es könnten bereits verschiedene Einträge in dieser Tabelle verfügbar sein, aber egal.

Sie sind fast fertig. Lassen Sie uns nun den Tomcat-Server mit <Tomcat-Installationsverzeichnis> \ bin \ startup.bat (unter Windows) oder <Tomcat-Installationsverzeichnis> /bin/startup.sh (unter Linux / Solaris usw.) starten und schließlich eingeben http://localhost:8080/MyServletim Adressfeld des Browsers. Wenn alles gut geht, erhalten Sie folgendes Ergebnis:

Hello World