Java-Applikationen für Web-fähige Anwendungen

Im Abschnitt <servlet> können der Name des Servlets und die dazugehörige Servlet-Klasse definiert werden. Der Abschnitt <servlet-mapping> ordnet ein benanntes Servlet einem URL-Pattern zu. Diese Abschnitte entsprechen dem Aufruf handler.addHandler() in der hart codierten Version. Zur Initialisierung einer Web-Applikation wird die Erstellung des HTTPServers entfernt und ein Handler mit folgendem Startup-Code hinzugefügt:


Man startet einen generischen Jetty-Server und lässt ihn an Port 8000 warten. Dann muss ein WebApplicationContext mit der Root „/“ erstellt und der Server informiert werden, dass er die Web-Applikation im Verzeichnis webapp finden kann. Die Referenz „tasks“ setzt man direkt in den WebApplicationContext, um die Tasks-Instanz an das Servlet zu übergeben.

Eine Web-Applikation unterstützt nun unter anderem JSP, also müssen den Bibliotheken der Jasper JSP-Compiler und die entsprechende Runtime-Umgebung, jasper-compiler.jar und jasper-runtime.jar, hinzugefügt werden; dazu sind wiederum ant.jar und commons-el.jar erforderlich. Alle diese Dateien findet man in der Jetty Distribution. Nach all diesen Aktionen kann man ToDoTasks wieder ausführen und unter http://localhost:8000/report auf den Report zugreifen – alles wie beim vorherigen Lauf. Das klingt vielleicht noch nicht sehr beeindruckend; es wurden einige Zeilen des Startup-Codes durch eine geringere Zahl anderer Zeilen ersetzt und eine XML-Datei ergänzt. Dies liegt jedoch daran, dass der Web-Applikationskontext noch kaum verwendet wurde. Im Verzeichnis webapp kann man eine Datei index.html hinzufügen, um Benutzer zu den verfügbaren Reports zu leiten. Wurde diese Datei ergänzt, kann nun auf http://localhost:8000/ zugegriffen werden und es lässt sich ohne zusätzliches Coding eine Startseite anzeigen. Außerdem lassen sich JSP-Seiten einstellen, allerdings kann mit der Konfiguration in diesem Beispiel nur grundlegendes JSP verwendet werden. Im Verzeichnis webapp findet man auch eine einfache Version des Report-Servlets als jspreport.jsp. Der gesamte Inhalt des Verzeichnisses webapp steht auf dem Server zur Verfügung – mit Ausnahme des Verzeichnisses WEB-INF, denn die Konfiguration muss nicht unbedingt allgemein zugänglich sein.

Bei der Erstellung der Applikation muss darauf geachtet werden, das Verzeichnis webapp mit der JAR-Datei mitzuliefern. Allerdings kann das Verzeichnis webapp in einer Datei .WAR (Web-ARchivdatei) archiviert werden. Diese Datei .WAR kann dann im addWebApplication-Aufruf anstelle des Pfads zum Verzeichnis angegeben werden:


Zur Erstellung der WAR-Datei verwendet man das standardmäßige JAR-Utility; die WAR-Datei ist einfach eine JAR-Datei mit der Erweiterung .war. In diesem Fall kann man zur Erstellung der WAR-Datei im Projektverzeichnis einfach folgende Anweisung ausführen:


Mit dem Flag -C wird das Verzeichnis vor dem Starten des Archivs in webapp geändert; die Anweisung „jar cvf webapp.war webapp“ würde einfach ein Archiv erstellen, bei dem alles in einem Ordner WEBAPP innerhalb der WAR-Datei gespeichert wäre, und dies würde beim Laden nicht korrekt funktionieren.

Die Applikation ToDoTasks sieht nun schon ganz gut aus mit dem eingebetteten Web-Server und den Web-App-Anbindungen, doch die Web-Schnittstelle mit nur einem unsortierten und ungefilterten Report ist noch zu optimieren. Darauf wird im nächsten Artikel näher eingegangen.

Der Programmcode für dieses Tutorial steht zum Download bereit.

Themenseiten: Anwendungsentwicklung, Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Java-Applikationen für Web-fähige Anwendungen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *