Webprogrammierung 2

Kurzbeschreibung

Das World Wide Web ist aus unserem Alltag praktisch nicht mehr weg zu denken. Fast die gesamte moderne Kommunikation basiert auf dieser Technologie – vom simplen Websurfen über Telefonieren, TV und Radio bis hin zum digitalen Einkauf.

Im Fach Webprogrammierung 2 befassen wir uns mit den prinzipiellen Mechanismen des dynamischen World Wide Web: Die Funktionsweise des Internet, der Ablauf von Request und Response, die grundlegende Programmierung von Servlets, das Tracking von Nutzern (mit Cookies), seitenübergreifende Sessions, Vereinfachungen durch Custom Tags sowie die REST-Schnittstelle für die Bereitstellung weiterer Dienste. Der Aufbau und die Arbeitsweise der meisten bekannten Seiten und Diensteanbieter im Internet kann damit nachvollzogen werden und deren Dienste könnten sogar nachimplementiert werden.

Dafürr erstellen wir im praktischen Teil eigene dynamische serverseitige Webanwendungen. Es werden zunächst einfache, später auch komplexe personalisierte Seiten implementiert. Filter erlauben eine modulare Aufteilung mit vorgeschalteten Funktionen (wie z. B. das Überprüfen von Anmeldedaten). Java Server Pages (JSP) ermöglichen dynamische Inhalte bei übersichtlicher Codierung. RESTful Webservices erlauben nahezu beliebige Dienste sowie die nahtlose Integration bereits bestehender Angebote.

Vorkenntnisse

Programmierkenntnisse in Java (aus dem Fach Programmierung 1) sowie etwas HTML (aus dem Fach Medienprogrammierung). Dazu natürlich Freude an der Webseitenentwicklung. :)

Kompetenzen und Inhalte

Die Teilnehmerinnen und Teilnehmer erwerben folgende Kompetenzen in Theorie und Praxis:

  • Sie kennen gängige Adressierungsformen im Internet, insbesondere im Web.
  • Sie verstehen die Bedeutung von HTTP und anderen Web-Techniken für die Kommunikation.
  • Sie kennen den Aufbau eines Applikations-Servers.
  • Sie verstehen die Funktionsweise von Servlets und können diese programmieren
  • Sie erfahren die Einsatzmöglichkeiten von Web-Filtern und können diese Implementieren
  • Sie kennen die Eigenschaften von Cookies und können Webanwendungen unter Verwendung von Cookies realisieren.
  • Sie erlernen die Funktionsweise von Sessions. Sie verstehen in diesem Zusammenhang die Bedeutung von Tracking und können entsprechende Anwendungen erstellen.
  • Sie begreifen die Konzepte von Datenhaltung und Persistenz, z.B. bei Java-Beans.
  • Sie lernen JavaServerPages (JSP) als Mittel für die einfache Realisierung dynamischer Webseiten kennen.
  • Sie verstehen den Zusammenhang zwischen Servlets und JSP.
  • Sie wenden spezifische Syntaxelemente von JSP situationsgerecht an und können so den Zugriff z.B. auf Java-Beans oder Cookies durchführen.
  • Sie programmieren aufbauend auf JSP dynamische Webseiten mit Elementen der ExpressionLanguage (EL).
  • Sie wenden Tags der JavaStandardTagLibrary (JSTL) in einer JSP-Seite an und entwerfen auch eigene CustomTags.
  • Sie erkennen die Mächtigkeit von Web-Services, insbesondere von REST.
  • Sie erstellen eigene REST-Webservices.

Konkret werden unter anderem die folgenden Themen behandelt:

  1. Grundlagen der Web-Entwicklung
    • Adressierungsformen im Internet
    • Web-Techniken (URL, MIME, HTTP)
    • HTTP-Request/-Response, HTTP-Befehle, HTTP-Statuscodes
    • HTML (Formulare)
    • Java-Technologie (Jakarta EE; früher: Java-EE)
    • Aufbau eines Applikationsservers (Deployment)
  2. Servletprogrammierung
    • Servlet-API
    • Assoziation mit HTTP-Befehlen und URL
    • Formularauswertung, Header- und Parameterdaten
    • Konfiguration (Deployment Deskriptor, Annotationen)
    • Umleitungen (Redirections)
    • Cookies
    • Tracking
    • Sessions
    • Datenhaltung (Persistenz, Java-Beans)
    • Web-Filter
  3. JavaServer Pages (JSP)
    • Direktiven
    • Scriptlets
    • Implizite Objekte
    • Aktionselemente
    • Gültigkeitsbereiche (Scopes)
    • Expression Language
    • Zugriff auf Beans und Cookies
    • Exception-/Error-Handling
    • Java Standard Tag Library (JSTL)
    • CustomTags
  4. Webservices (REST)
    • Prinzipieller Ablauf
    • Assoziation von Methode, HTTP-Befehl, URL, MIME-Type
    • REST-API
    • Dienst bzw. Angebot als REST-Service
    • Erweiterung vorhandener Dienste/Klassen als REST-Service
    • REST-Server
    • REST-Client

 

Lehrmaterial

Für den praktischen Teil wird bevorzugt lizenzfreie und quelloffene Software verwendet, so dass sämtliche Übungen sowohl in den Fachräumen vor Ort als auch problemlos zu Hause durchgeführt werden können.

Es stehen eigene Skripte und Materialien für den Unterricht in digitaler Form auf der Lehrplattform Moodle bereit. Diese werden bei Bedarf auch gerne ausgedruckt zur Verfügung gestellt. Dazu gibt es Anleitungen und Beschreibungen für das Einrichten und Benutzen der verwendeten Software für die Fachräume und für die persönliche Praxis zu Hause.

Literatur

  • Müller-Hofmann, Frank: Programmierung von verteilten Systemen und Webanwendungen mit Java EE: Erste Schritte in der Java Enterprise Edition, Springer Verlag, 1. Auflage 2015
  • Salvanos, Alexander: Professionell entwickeln mit Java EE: Das umfassende Handbuch. Aktuell zu Jakarta EE, Rheinwerk Computing, 2. Auflage 2018
  • Späth, Peter: Beginning Jakarta EE: Enterprise Edition for Java: From Novice to Professional, Apress, 2019.
  • Wißmann, Dieter: JavaServer Pages: Dynamische Websites mit JSP erstellen, W3L Gmbh, 3. Auflage, 2012.