Zum Inhalt springen

  • Beiträge
    72
  • Kommentare
    239
  • Aufrufe
    12.686

Modul: Web-Anwendungen 2


kurtchen

1.087 Aufrufe

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

Ein sehr schöner und interessanter Beitrag. Bei der IUBH belege ich gerade einige Kurse und beschäftige mich auch gerade mit JSP. Wenn man aus dem PHP Umfeld kommt, dann ist es schon ein bisschen ungewohnt.

 

Weiterhin viel Erfolg mit deiner Weiterbildung. :-)

Bearbeitet von Aramon
Link zu diesem Kommentar

PHP spielt ja in der Praxis schon eine sehr große Rolle. Gibt es denn noch andere (ggf. optionale) Module, in denen mit PHP gearbeitet wird oder es zumindest eine Einführung gibt?

Link zu diesem Kommentar

Leider nein. Allein im Modul "Web-Programmierung" wird PHP behandelt. Wenn es ein komplettes PHP-Modul gäbe, würde ich das natürlich gerne belegen. Ich habe mich auch schon mal umgeschaut, ob andere Hochschulen so etwas im Angebot haben. Habe aber leider bislang nichts wirklich überzeugendes gefunden.

 

Die Metropolia in Helsinki bietet Open Courses in ICT, mit denen man auch ECTS-Punkte erwerben kann. Die haben ein PHP-Modul mit 3 ECTS. Das klang zunächst mal gut. Ich konnte da mal reinschauen, aber letztlich steckte da auch nicht mehr Inhalt drin als mir im Modul "Web-Programmierung" nebenbei zu HTML, CSS, Javascript, XML und ASP.Net vermittelt wurde.

 

Aber ich glaube, PHP muss man nicht unbedingt im Rahmen eines Hochschulstudiums lernen.

Bearbeitet von kurtchen
Link zu diesem Kommentar

Nicht mal zwei Wochen nach meiner Klausur ist das Ergebnis für "Web Anwendungen 2" schon da. Diesmal habe ich meine Punktzahl ziemlich genau einschätzen können. Ich wusste, wo ich "geliefert" hatte und wo es haperte. Mein Zeitmanagement in der Prüfung hätte auch noch einen Tick besser sein können. Aber ich bin zufrieden, weil ich im großen und ganzen das Gefühl habe, dass die Klausur meine Kenntnisse der Modulinhalte realistisch abbildet. Mehr kann man ja eigentlich nicht erwarten.

 

Und doch habe ich ein bisschen mehr bekommen: Die Online-Klausur und der Online-Test sind mir nämlich bei diesem Modul gut gelungen, so dass ich ein paar Bonuspunkte mitnehmen und meine Note noch ein bisschen verbessern konnte.

 

Aktuell bearbeite ich Softwaretechnik 3. Das Modul kommt mir schwieriger vor als Softwaretechnik 2 und es ist recht umfangreich. Dafür ist es aber auch sehr spannend. Zu meiner Überraschung wird dort wieder praktisch programmiert, denn es geht um Entwurf, IMPLEMENTIERUNG, Installation und Betrieb von Software. Im Moment beschäftige ich mich mit Entwurfsmustern. Das macht Spaß, weil ich den Eindruck habe, dass man die echt brauchen kann.

 

Parallel belege ich Data Mining und Content Management Systeme als Vertiefungsmodule. Das sind Pflichtmodule aus dem Studiengang Wirtschaftsinformatik, was man meiner Meinung nach auch merkt. Der inhaltliche Fokus liegt mehr auf der Frage: "Mit welchem Nutzen wendet man so etwas in einem betriebswirtschaftlichen Umfeld an?" Mehr interessieren würde mich, wie funktioniert das technisch. An der Stelle merke ich, dass ich nicht zum Wirtschaftsinformatiker bestimmt bin. Aber gut, auch über solche Dinge muss man sich erst mal klar werden.

 

 

Link zu diesem Kommentar
Am 24.3.2017 at 17:01 , kurtchen schrieb:

Zu meiner Überraschung wird dort wieder praktisch programmiert,

 

Was für eine Programmiersprache kommt den dort zum Einsatz?

 

Zitat

Mehr interessieren würde mich, wie funktioniert das technisch.

 

Das fände ich dann auch interessanter, gerade bei CMS. Werden diese dann auch nur allgemein behandelt, oder wird auf bestimmte CMS näher eingegangen?

Link zu diesem Kommentar

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
  • Neu erstellen...