|
jsp-develop.de presents: WEB-Archive |
| von shark, 25.08.2001 19:57:59 |
|
Servlets und JSP-Seiten passen bezüglich der Namensgebung nicht hundertprozentig zusammen. Wenn man ein Servlet ansprechen möchte gibt man das Präfix "/servlet/" an. Wenn das Servlet eine JSP-Seite aufruft, ist es nötig den kompletten Pfadnamen der JSP-Seite zu definieren. Ändern sich Verzeichnisstrukturen, müssen entsprechend alle Servlets und JSP-Seiten per Hand angepasst werden. Damit man WEB-Anwendungen pfadunabhängig installieren kann, bietet es sich an die Servlets, JSP-Seiten und Java Beans zu bündeln. Das Bündel nennt man WEB-Archiv ("filename.war"). WEB-Archive können sehr einfach auf einem WEB-Server installiert ("deployment") werden. Das nachfolgende Beispiel zeigt wie ein WEB-Archiv aufgebaut ist und wie man das WEB-Archiv erzeugt. Beispiel Servlet (Dispatcher): ------------------------------------------ package jsp.war.example; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class WarServlet extends HttpServlet { public void service( HttpServletRequest request, HttpServletResponse response ) { // Aufruf der JSP-Seite // Erzeuge Request Dispatcher RequestDispatcher oDispatcher = getServletContext().getRequestDispatcher("/WarJsp.jsp"); // Fuehre den Aufruf durch oDispatcher.forward(request, response); } } Beispiel fuer die JSP-Seite ("WarJsp.jsp"): ------------------------------------------------------------- <html> <body> <h1>Hallo ich bin im WEB-Archiv!</h1> </body> </html> Beispiel des Deployment Descriptors (web.xml): ---------------------------------------------------------------------- <!DOCTYPE web-app PUBLIC ".//Sun Microsystems, Inc.//DTD Web Application2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <display-name>WARBeispiel</display-name> <description>Beispiel WEB-Archive</description> <servlet> <servlet-name>WarServlet</servlet-name> <servlet-class>jsp.war.example.WarServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>WarServlet</servlet-name> <url-pattern>/WarServlet</url-pattern> </servlet-mapping> </web-app> Die "web.xml" Datei weist dem Servlet einem Namen zu und führt auch das URL-Mapping durch. Das Mapping ist relativ zu dem Basispfad der installierten Applikation. Für das Erzeugen des WEB-Archives muss die Datei "web.xml" in dem Verzeichnis WEB-INF vorliegen. Die Klassendateien (Java Beans und Servlets) der Anwendung werden in einem "classes" Verzeichnis unterhalb des WEB-INF Verzeichnisses untergebracht. Die JSP-Seite und die Datei "web.xml" müssen im selben Verzeichnis liegen. Vor dem Erzeugen des Archives sollte man folgendes tun: ----------------------------------------------------------------------------------- mkdir WEB-INF copy web.xml WEB-INF mkdir WEB-INF\classes Danach kompiliert man die Java Klassen: ------------------------------------------------------------ javac -d WEB-INF\classes WarServlet.java Das WEB-Archiv wird folgendermaßen erzeugt: -------------------------------------------------------------------- jar cvf example.war *.jsp WEB-INF Tomcat entpackt und konfiguriert die WEB Anwendung automatisch, wenn man das WEB-Archiv ("war file") in das "webapps" Verzeichnis von Tomcat kopiert. Der Pfad der von Tomcat für die WEB-Anwendung angelegt wird, entspricht dem Archiv-Namen. In unserem Beispiel ist das der Name "example". Die Servlet Engine JRun von Allaire verfügt über ein Werkzeug für die Installation des WEB-Archives. Man startet die JRun Management Konsole und schaltet den Dialog "Deploy a Web Application" auf. Innerhalb des Dialoges können Parameter wie der Name des WEB-Archives, den Hostnamen, den JRun Server, die "Application URL" und das "Deploy" Verzeichnis definiert werden. WEB-Archive sind ein nützliches Hilfsmittel zum Strukturieren von komplexen WEB-Anwendungen. WEB-Archive bieten außerdem auch die Möglichkeit, Anwendungen leicht in einem Paket auf verschiedene WEB-Server verteilen zu können. |
|
URL dieses Beitrags: http://www.jsp-develop.de/forumbeitrag/view/174/ |