$R(Objective) Construct the file and directory structure of a Web Application that may contain (a) static content, (b) JSP pages, (c) servlet classes, (d) the deployment descriptor, (e) tag libraries, (f) JAR files, and (g) Java class files; and describe how to protect resource files from HTTP access. $R\ Ein Container für Servlet und Java Server Pages wie TomCat, bietet dem Clienten i.a. mehrerer Web-Applikation an. Eine Webapplikation besteht aus eine vielzahl von Dateien, insbesondere aus Servlets, Jsps, Java-Klassen und Bibliotheken. Diese Dateien sind in einer fest vorgelegten Verzeichnisstruktur abgelegt. Kenntnisse über diese Struktur ist Inhalt dieser Objective Eine typische Struktur sieht folgendermassen aus: $S() helloapp | |__ *.htm, *.css, *.xml | |__ *.jsp | |_ WEB-INF | |_classes | |_com | |_mycompany | |_ myclass.class | |_ lib | |_ *.jar (jdbcdriver.jar, mytaglib.jar etc.) | |_ tags | | |- web.xml $S\ * Der oberste Ordner hat den Namen der Web Applikation * Alle Dateien ausser des WEB-INF Ordners sind für den Clienten öffentlich zugänglich. Alle Dateien innerhalb des WEB-INF Ordners sind nicht für den Clienten zugänglich. * Die Dateien ausserhalb von WEB-INF können in Ordner verschachtelt sein. * Im Ordner WEB-INF sind alle Informationen die der Container braucht, und das Servlet zu starten. Es besteht mindestens aus dem Ordner classes, lib und der Datei web.xml * In Classes sind alle Klassen die entsprechend der Paketstruktur in Verzeichnissen angelegt sind. * in lib befinden sich alle jar Bibliotheken. * Der Deployment-Deskriptor web.xml wird benutzt um die Web Applikation zu konfigurieren. Jede Web-Applikaton muss eine Datei web.xml enthalten. * Zusätzlich können im Verzeichnis tags Tag Dateien enthalten sein. Auf den folgenden Seiten wird die Struktur des Deployment Descriptors mittels Syntaxdiagramme aus der Servlet 2.4 Spezifikation von Sun dargestellt. Die folgende Legende zeigt, wie die Syntaxdiagramme zu lesen sind. $B(Bilder,legende.gif,Legende der Webelemente) Die Toplevel Elemente von web.xml werden durch das folgende Bild ersichtlich. Zum Glück sind nicht alle Elemente Gegenstand des Examens: $B(Bilder,webApp.gif,TopLevel Elemente webApp)