Servlets auf dem Server einrichten
Wir wollen nun den Compiler dazu bringen, das Servlet zu kompilieren. Besonders tricky dabei ist, dass wir diesmal nicht nur Klassen aus dem JDK verwenden, sondern auch Erweiterungen aus der Servlet-Api. Alle Packages, die mit javax.servlet.* beginnen, stammen daher. Der Compiler muss diese Klassen zur Verfügung haben, um zu überprüfen, ob wir sie korrekt verwenden.
Die Klassen befinden sich in einer Datei namens servlet.jar in CATALINA_HOME/common/lib/servlet.jar. JAR-Dateien sind die heute übliche Form, Java-Klassen zu packen; das Format entspricht im Wesentlichen einem Zip-Archiv. Wenn Sie einen Zipper wie beispielsweise WinZip zur Verfügung haben, können Sie das Archiv öffnen und sich ansehen, was drin ist. Sie finden alle Klassen, die Sie aus der Servlet-Api Dokumentation kennen.
Gut, aber das ist jetzt nicht unser Problem. Öffnen Sie eine DOS-Box im Verzeichnis jspkurs/source und setzen Sie als erstes den Classpath. Der Classpath ist eine Umgebungsvariable, die Java angibt, wo es sinnvollerweise nach benötigten Dateien suchen soll. In den Classpath können Verzeichnisse oder JAR-Archive aufgenommen werden:
Wenn Sie nun http://localhost:8080/jspkurs/jspkurs/bsp/kap3/CountryNamesServlet im Browser aufrufen, passiert - leider nichts gutes. Tomcat weiß nämlich gar nicht, dass es sich bei dieser Klasse um ein Servlet handelt, dass ausgeführt werden soll. Tatsächlich müssen wir das Servlet auf dem Server noch installieren, der Fachausdruck heißt deployen. Dazu brauchen wir einen sogenannten Deployment-Descriptor, das ist eine Datei namens web.xml im Verzeichnis JSPKURS/web/WEB-INF.
WEB-INF/web.xml
server-admin contextparameter@myhost.de DebugFilter jspkurs.bsp.kap4.DebugFilter AdultFilter jspkurs.aufg.kap4.AdultFilter redirectUrl /aufg/kap4/access_denied.jsp startTime 4.00 endTime 22.00 DebugFilter /nopage/* AdultFilter /aufg/kap4/adult/* CodePresenter jspkurs.service.CodePresenter CountryNames jspkurs.bsp.kap3.CountryNamesServlet Redirect_1 jspkurs.bsp.kap3.Redirect_1 Redirect_2 jspkurs.bsp.kap3.Redirect_2 Redirect_3 jspkurs.bsp.kap3.Redirect_3 Phrasendreschmaschine jspkurs.aufg.kap3.Phrasendreschmaschine Integerconverter jspkurs.aufg.kap3.IntegerConverter InitParam /bsp/kap4/params.jsp client-mail initiparam@clientserver.com ShowRequest jspkurs.bsp.kap4.ShowRequest PdfServlet jspkurs.aufg.kap4.PdfServlet CodePresenter /code CountryNames /countrynames Redirect_1 /redirect1 Redirect_2 /redirect2 Redirect_2 /bsp/kap3/redirect2 Redirect_3 /redirect3 Phrasendreschmaschine /phrasendreschmaschine Integerconverter /aufg/kap3/integerconverter InitParam /bsp/kap4/initparam ShowRequest /showrequest PdfServlet /pdfservlet java.lang.Exception /bsp/kap4/error_global.jsp
Zeile 1 bis 2 sind hier wenig relevante Definitionen über den XML Typ und die zu verwendende dtd. Ab Zeile 2 definieren wir eine Web-Applikation. Der Begriff Web-Applikation ist etwas schwer zu fassen. Im Groben gehören zu einer Web-Applikation alle Ressourcen, die unter einem gemeinsamen Pfad zu erreichen sind. Ein Web-Applikation ist beispielsweise unser Workshop unter dem Pfad /jspkurs, eine andere ist die Tomcat Dokumentation unter /tomcat-docs. Eine Web-Applikation hat einen eigene Konfiguration, die über den Deployment-Descriptor (WEB-INF/web.xml) realisiert wird. Außerdem läuft jede Webapplikation in einem separaten Speicherbereich mit eigenen Umgebungsvariablen auf dem Tomcat.
Unsere Konfiguration besteht hier aus einem Servlet mit dem frei wählbaren Namen „CountryNamesServlet“, das auf der in <servlet-class> angegebenen Klasse basiert. Es folgt das Servlet Mapping, d.h. das Zuweisen des Servlets an eine URL. Das Servlet wird über seinen Namen bestimmt und der URL /countrynames zugewiesen. In Langform bedeutet dies: http://localhost:8080/jspkurs/countrynames.
WEB-INF/web.xml
CountryNames jspkurs.bsp.kap3.CountryNamesServlet
WB-INF/web.xml
CountryNames /countrynames
Wenn Sie Änderungen an der web.xml vornehmen, sollten Sie Tomcat neu starten.
Tipp: Lösen Sie nun die Aufgabe: „Phrasendreschmaschine".