Modul: Web-Anwendungen 2
Das Modul "Web-Anwendungen 2" ist ein Pflichtmodul im Studiengang "Web- und Medieninformatik" und zählt zum gleichnamigen Studienbereich. Springer Campus empfiehlt, dieses Modul im 4. Semester zu belegen, also im gleichen Semester wie "XML" und "Multimedia". Studierende im Studiengang "Wirtschaftsinformatik" müssen "Web-Anwendungen 2" nicht belegen, können es aber als Vertiefungsfach wählen. Allerdings sollten sie dabei die inhaltlichen Voraussetzungen beachten. Grundlagen der Informatik 1 und 2 sowie Web-Programmierung müssen ja auch die Wirtschaftsinformatiker als Pflichtmodule belegen. Aber auch "Web-Anwendungen 1" wird hier empfohlen. Es liefert eine solidere Grundlage in HMTL und CSS als das Modul Web-Programmierung. Insofern finde ich es hier sehr sinnvoll, der Empfehlung zu folgen. "Web-Anwendungen 2" ist auch Pflichtmodul für das Weiterbildungszertifikat "Web-Entwickler". Es ist darüber hinaus eine inhaltliche Voraussetzung für das Vertiefungsfach "Aktuelle Webtechniken", bei dem es um Java Server Faces (JSF) geht.
Worum geht es im Kurs?
Während es in "Web-Anwendungen 1" um statisches HTML geht, behandelt "Web-Anwendungen 2" die dynamische Erzeugung von HTML-Dokumenten mit einer serverseitigen Sprache. Bekanntestes Beispiel hierfür ist sicher PHP. In diesem Modul wird aber die serverseitige Programmierung mit Java Server Pages behandelt.
Was ist nun eine Java Server Page? Eine JSP ist eine Datei, in der Regel mit der Endung ".jsp", die HTML-Schablonentext enthält, in den Java Code-Fragmente eingestreut sind. Diese Datei wird in eine Java-Klasse übersetzt, die wiederum in Bytecode übersetzt wird. Ein Web-Server, z.B. Apache Tomcat, erzeugt damit zu einem HTTP-Request eine sinnvolle HTTP-Response. Die Response ist der HTML-Schablonentext, in den Elemente eingefügt wurden, die dynamisch berechnet wurden und zur Anfrage passen.
Aus Gesprächen mit Kommilitonen weiß ich, dass es für viele ein Ärgernis ist, dass in diesem Modul nicht PHP als Lehrsprache verwendet wird. Zum einen arbeiten viele von ihnen als Web-Entwickler und haben praktische Erfahrung mit PHP. Zum anderen argumentieren sie mit dem recht kleinen Marktanteil von JSP. Das ist natürlich ein Argument. Und doch meine ich, dass es durchaus gute Gründe gibt, die serverseitige Programmierung am Beispiel von JSP zu lehren.
Springer Campus setzt ja in den einführenden Programmierkursen auf Java als Lehrsprache. Die Stärke von JSP ist, dass man Java-Klassen verwenden kann. Man kann die gesamte Fachlogik einer Web-Anwendung in Java programmieren und dabei auf alles zurückgreifen, was man bisher über Programmierung gelernt hat. Das hat didaktisch dann doch einige Vorzüge. JSP kann man Klebstoff zwischen Java und HTMl sehen.
Praktisch wird man eine IDE wie Eclipse oder Netbeans mit JavaEE verwenden. Die nimmt einem eine Menge Arbeit ab, zum Beispiel das Anlegen einer sinnvollen Ordnerstruktur für den Server. Die IDE packt die erstellten Anwendungen auch automatisch in sogenannte war-Archive. Der Tutor erwartet Lösungen zu den Einsendeaufgaben in dieser Form.
Das Lehrbuch
"Java Server Pages" von Dieter Wißmann ist wahrscheinlich das beste deutschsprachige Lehrbuch zu diesem Thema. Es gibt nämlich nicht viel anderes dazu. Und das wenige, was es gibt, ist oft schon ganz schön alt. Wer mit diesem Lehrbuch nicht zurecht kommt und Sekundärliteratur sucht, wird es also nicht ganz leicht haben. Zum Glück schreibt der Autor sehr verständlich. Theorie und Anwendungsbeispiele wechseln sich ab und die Themen bauen gut aufeinander auf. Das Buch hat ca. 450 Seiten, was für Kurse bei Springer Campus üblich ist. Unter den Abbildungen sind besonders die UML-Diagramme relevant, die verwendet werden, um die Zusammenhänge zwischen verschiedenen Klassen zu klären, die man beim Arbeiten mit JSP kennen sollte.
In vielen Modulen habe ich die Themen recht ausführlich beschrieben. In diesem Modul werde ich darauf verzichten, weil JSP ziemlich komplex ist und so ist auch die Vielfalt an Themen sehr groß. Ein einfacher, linearer Aufbau des Stoffes ist hier nicht möglich und sinnvoll, weil JSP eine Brücke zwischen vielen Technologien schlägt. Man arbeitet mit HTML und CSS, muss sich damit beschäftigen, was bei einem HTTP-Request zwischen Client und Server passiert, hat mit Apache Tomcat zu tun, aber auch mit der JVM und natürlich mit der Programmiersprache Java, die womöglich per JDBC auch noch an eine relationale Datenbank angebunden ist. Insofern muss der Kurstext immer wieder Theorie einführen oder wiederholen, um so Themen noch einmal ins Bewusstsein zu rufen, die dann per JSP verknüpft werden. Keine leichte Aufgabe für einen Autor, die meiner Meinung nach hier hervorragend gelöst wurde.
Einen großen Teil des Buches - an die 100 Seiten - nimmt ein komplexes Fallbeispiel ein: Der Aufbau eines Web-Anzeigenmarktes mit JSP, wobei ein Überblick über den gesamten Entwicklungsprozess gegeben wird. Der komplette Code des Fallbeispiels liegt dem Kurs bei und kann praktisch ausprobiert werden.
Besonders loben möchte ich hier, dass ein Kapitel zur Fehlersuche in JSPs enthalten ist. Die ist nämlich manchmal nicht ganz einfach, was mit dem zweistufigen Übersetzungsprozess zu hat: Von JSP zu Java und von Java zu Bytecode.
Treten Fehler beim ersten Schritt auf, so kann man das noch gut nachvollziehen. Ab dem zweiten Schritt oder zur Laufzeit wird es schwieriger, denn die Fehlermeldung bezieht sich auf die aus der JSP generierte Java-Klasse, die man ja nicht selbst geschrieben und gesehen hat. Der Autor stellt hier einige Strategien zur Fehlersuche vor. Eine ist die Umleitung auf eine Fehlerseite, die im Browser detaillierte Meldungen zeigt. Das ist natürlich nichts für die ausgelieferte Web-Anwendung sondern etwas, was dem Entwickler nützt.
Wegen des zweistufigen Übersetzungsprozesses ist es auch immer wieder nützlich, sich damit zu beschäftigen, wie die Umsetzung in eine Java-Klasse läuft und was dabei im Hintergrund passiert.
Zur Komplexität des Themas trägt bei, dass sich bei JSP verschiedene Syntaxen entwickelt haben, oft mit dem Ziel, das Schreiben von JSPs für Web-Frontend-Entwickler ohne Java-Kenntnisse einfacher zu machen. Das ist historisch gewachsen aber für den Einsteiger unübersichtlich und verwirrend. Der Autor löst dieses Problem, indem er die verschiedenen Syntaxen nacheinander einführt und Hinweise gibt, welche wofür geeignet ist und welche man besser nicht in einer JSP mischen sollte.
Einsendeaufgaben
Die Einsendeaufgaben in diesem Kurs hatten eine gewisse "Künstlichkeit", weil sie erkennbar darauf hin konstruiert waren, dass der Lernende bestimmte Sprachfeatures kennen lernt, ausprobiert und auch typische Probleme kennen lernt, die damit verbunden sind. In anderen Programmierkursen von Springer Campus wirkten die Aufgaben oft ein bisschen näher an realen Anwendungsszenarien. Für den behandelten Stoff hat der Kursautor meiner Meinung nach genau das richtige getroffen. Der Kurs ist schon etwas anspruchsvoller und eine gewisse didaktische Zuspitzung scheint mir deswegen notwendig.
Bei den Einsendeaufgaben geht es um das Abfangen von Fehlern, um Weiterleitungen von Seite zu Seite, um die Übergabe und Validierung von Parametern, um das Speichern und Weitergeben von Informationen vermittels Java-Beans, um die Verwaltung von Sitzungen, den Umgang mit Cookies, aber auch um die Konfiguration des Apache Tomcat Servers vermittels einer XML-Datei.
Für die Aufgaben habe ich regelmäßig länger gebraucht als im Kurs angegeben. Mein Tutor empfahl, den compilierten Code nicht nur zu testen, sondern die erzeugten HTML-Seiten auch validieren zu lassen. Er machte relativ enge Vorgaben hinsichtlich der einzureichenden Lösungen, z.B. verbindliche Dateinamen und Ordnerstrukturen. Dafür waren seine Rückmeldungen besonders detailliert und treffsicher. Mein Tutor benannte nicht nur klar, was nicht gut war und wie man es hätte besser machen können. Er sagte ebenfalls, was gut war und so bleiben sollte.
Auch kommunizierte er im Vorfeld recht genau, wann und in welchem Umfang er Einsendeaufgaben korrigiert, so dass ich mir die Arbeit am Kurs gut einteilen konnte und rechtzeitig zum Prüfungstermin fertig war.
Prüfungen
Die Online-Klausur war wie üblich eine gute Vorbereitung auf die Präsenzklausur, allerdings nicht, weil sie ähnlich war. In der Präsenzklausur hat man keine IDE zur Verfügung, bei der Online-Klausur schon. So war denn die Online-Klausur eine Gelegenheit, noch einmal mit Programmieraufgaben praktische Erfahrungen mit JSP zu sammeln, diesmal natürlich mit tickender Uhr im Hintergrund.
Schreiben von Code spielte in der Präsenzklausur dann eine geringere Rolle. Das hängt wahrscheinlich damit zusammen, dass man so nur ganz kleine Teile des Kurses hätte abprüfen können. Es war also ein Mix aus Wissensfragen, Fehlersuche, Vorhersage von Ausgaben zu gegebenen Programmen, Konfiguration eines Servers per web.xml und einigen anderen Themen. Überrascht hatte mich, dass es viele kleinere Aufgaben waren.
Der Vorzug ist natürlich: Wenn man irgendwo eine kleine Lücke im Wissen hat, ruiniert das nicht gleich die ganze Note. Ich glaube, dass die Klausur recht realistisch abbildet, wo man mit seinem Verständnis des Stoffes steht. Insofern bin ich gespannt auf mein Ergebnis.
Fazit
"Web-Anwendungen 2" war einer der schwierigeren Kurse im Studiengang. Wegen der vielen praktischen Programmieraufgaben hat er mir aber auch besonders viel Spaß gemacht. JSP ist eine vergleichsweise komplexe Angelegenheit. Eine gewisse Einarbeitungszeit muss man einplanen. Auch wird man gerade am Anfang Schwierigkeiten mit der doch recht komplexen und vielfältigen Syntax haben und dabei auch mit Frustration und Rückschlägen umgehen müssen. Aus meiner Sicht lohnt sich diese Mühe. Mehr als andere Kurse verbindet "Web-Anwendungen 2" den Stoff ganz vieler Module des Studienganges zu einem zusammenhängenden Wissensgebiet. Ich glaube, das bringt etwas, auch wenn man später serverseitig lieber mit PHP, Python, Ruby oder etwas ganz anderem programmiert.
Für die Bearbeitung dieses Moduls würde ich etwas mehr Zeit einplanen und vielleicht zuschauen, dass man andere dicke Brocken vorher abgeräumt hat. Ich würde dieses Modul z.B. nicht zeitgleich mit "Software-Technik 1" oder mit "Nicht-sequentielle Programmierung" belegen wollen.
Weil mir das Modul viel Spaß gemacht hat, würde ich gerne auch noch den weiterführenden Kurs "Aktuelle Webtechniken" belegen, der eine Einführung in Java Server Faces gibt. Dafür fehlen mir aber noch ein paar inhaltliche Voraussetzungen, so dass ich mich noch ein wenig gedulden muss.
6 Kommentare
Empfohlene Kommentare
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden