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.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

1 Woche ago

EU-Datenschützer kritisieren Facebooks „Zustimmung oder Bezahlung“-Modell

Ohne eine kostenlose Alternative, die ohne Zustimmung zur Verarbeitung personenbezogener Daten zu Werbezwecken auskommt, ist…

2 Wochen ago

Europol meldet Zerschlagung der Phishing-as-a-Service-Plattform LabHost

LabHost gilt als einer der größten Phishing-Dienstleister weltweit. Die Ermittler verhaften 37 Verdächtige, darunter der…

2 Wochen ago

DE-CIX Frankfurt bricht Schallmauer von 17 Terabit Datendurchsatz pro Sekunde

Neuer Datendurchsatz-Rekord an Europas größtem Internetknoten parallel zum Champions-League-Viertelfinale.

2 Wochen ago

Samsungs neuer LPDDR5X-DRAM erreicht 10,7 Gbit/s

Die neuen Chips bieten bis zu 25 Prozent mehr Leistung. Samsung steigert auch die Energieeffizienz…

2 Wochen ago

Cisco warnt vor massenhaften Brute-Force-Angriffen auf VPNs

Betroffen sind Lösungen von Cisco, Fortinet, SonicWall und anderen Anbietern. Die Hacker nehmen Konten mit…

2 Wochen ago