Errata zum Kurtext “Web-Programmierung” Kurseinheit 3 – Java EE: Servlets und JavaServer Pages Seite 1: Die Übungsaufgaben zu den Kapiteln 8 und 9 befinden sich nicht im Kurstext. Seite 2: Abschnitt 1 erwähnt, dass in diesem Kurs nur die Entwicklung von WebAnwendungen betrachtet wird. Hier sei erwähnt, dass viele Technologien von Java EE auch für Java Desktop-Anwendungen genutzt werden können und nicht zwangsweise auf ein Web-Umfeld angewiesen sind. Seite 3: Auflistung “Web Conainer”. Der Satz “Wie auch bei den anderen Containern sind die Komponenten von den später real verfügbaren Klassen, Objekten und Seiten zu unterscheiden.” ist nicht ganz korrekt. Java-Klassen werden in der Java-EEFachsprache als Komponenten bezeichnet. Seite 8: Die aktuelle Servlet-Spezifikation ist in Version 3.1 verfügbar. Im Kopf eines entsprechenden Deployment Descriptors (web.xml) werden beide Versionsnummer von 3.0 auf 3.1 aktualisiert. Die korrigierte Datei hat dann folgenden Inhalt: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> </web-app> Seite 10: Abschnitt 1 sagt “Während diese Annotationen zwar im Quelltext angegeben werden, sind sie jedoch nicht Teil des Codes und tragen damit auch nicht zur Semantik des Codes bei.”. Dieser Satz muss etwas korrigiert werden. Annotationen können durchaus zur Semantik des Codes beitragen. Eine Annotation @Override stellt lediglich dar, dass z.B. die darunter stehende Methode überschrieben wurde, die Code-Semantik wird hier nicht verändert. Es gibt jedoch Annotationen, die den Pfad einer Resource angeben oder eine Java-Klasse z.B. als eine Servlet-Klasse deklarieren. Solche Annotationen verändern die Semantik durchaus, durch Hinzufügen dieser Annotationen wird das Programm anders ausgeführt (oder erst richtig ausgeführt), als wenn die Annotationen ausgelassen würden. Seite 13: Abschnitt 1. Der Satz “Die Servlet Technologie ist neben der JavaServer Pages Technologie (JSP) die wichtigste Web-Komponente”. Bei einer Technologie handelt es sich nicht um eine Web-Komponente, vielmehr basieren Web-Komponenten auf bestimmten Technologien. Der Satz müsste demnach heißen: “Die Servlet Technologie ist neben der JavaServer Pages Technologie (JSP) die wichtigste Technologie”. Seite 16: List. 8.1: nicht urlpatterns, sondern urlPatterns (mit großem P) Seite 20: Im zweiten Abschnitt wird gesagt, dass ein Attribut, für das eine get- und eine setMethode vorhanden ist, Property genannt wird. Dies ist so nicht korrekt. Wie im Satz darauf erwähnt wird, gibt es auch Properties, die nur gelesen oder geschrieben werden und für die es somit auch nur eine set- oder eine get-Methode gibt. Seite 29: List 8.3: Der Vollständigkeit halber sollten vor die doGet und die doPost Methoden die @Override-Annotationen geschrieben werden. Seite 31: List 8.5: Der Vollständigkeit halber sollten vor die doGet und die doPost Methoden die @Override-Annotationen geschrieben werden. Seite 32: List 8.6: Da wir mit der Servlet-Version 3.1 arbeiten, muss diese auch im Deployment Descriptor angegeben werden, siehe Errata-Eintrag von Seite 8. Seite 40: Tabelle 9.2: Die Klasse JSPWriter ist falsch geschrieben, JspWriter ist richtig (Jsp nicht groß geschrieben) Seite 50: Für das Beispiel der Systemanmeldung wird auf den Abschnitt 8.6 verwiesen, gemeint ist allerdings Abschnitt 8.5 Seite 51: Der Vollständigkeit halber sollten vor den Methoden doGet(…) und doPost(…) noch die Annotation @Override gesetzt werden. Seite 52: Siehe Hinweis zu Seite 8: Die Versionsnummern müssen von 2.5 (2_5) auf 3.1 (3_1) gesetzt werden.