Programmierübung NKI Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Planung Kleines JSP-Programmierprojekt in Gruppen Ziel: Webbasiertes Kartenvorbestellungssystem für ein Kino Ablauf:  Kurze Wiederholung JSP  Aufgabenstellung,

Download Report

Transcript Programmierübung NKI Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Planung Kleines JSP-Programmierprojekt in Gruppen Ziel: Webbasiertes Kartenvorbestellungssystem für ein Kino Ablauf:  Kurze Wiederholung JSP  Aufgabenstellung,

Programmierübung NKI Web & Datenbanken

Programmierprojekt Java Server Pages

Michael Klein, 15.06.2005

Planung

Kleines JSP-Programmierprojekt in Gruppen

Ziel:

Webbasiertes Kartenvorbestellungssystem für ein Kino

Ablauf:

 Kurze Wiederholung JSP  Aufgabenstellung, Ziel, Kleine Demo      Herleitung des Datenbankschemas Einteilung in Gruppen Technische Voraussetzungen Selbstständiges Erstellen der Anwendung Evtl. kurze Präsentationen

Kurze Wiederholung JSP

JSP = Server-Side Skripting

  In HTML-Seiten werden zusätzliche HTML generierende Quellen integriert Beliebig viele HTML-Quellen können aufgenommen werden

Datenbank HTML HTML Scripting Scripting Anwendungs Logik

Java Server Pages (JSP)

  Bestandteil der Java 2 Plattform Enterprise Edition Trennung von (HTML-)Präsentation und Inhalt (?)  Zugriff auf weitere HTML-Quellen über Beans und Servlets     Ablauf Erstellung einer JSP Aufruf der JSP durch den Benutzer  Überprüfung, ob sich die JSP geändert hat oder ob sie neu ist   (Gegebenenfalls Übersetzung der JSP in ein Servlet) Ausführung des Servlets Rückgabe des Ergebnisses

client Anfrage Antwort JSP Ablauf HTTP Server JSP page

Generierung des JSP Servlet aus JSP Page (HTML + Scripting)

JSP Servlet Datenbank Verbindungsaufbau SQL Anfragen Ergebnisse Zustand

JSP Elementtypen

   JSP-Direktiven JSP-Skriptelemente (JSP-Aktionen)

JSP-Direktiven

      Nachrichten/Anweisungen an den HTTP-Server Keine Ausgabe Syntax: <%@ ... %> include -Direktive  Einfügen von Texten vor der Übersetzung   <%@include file="Pfadangabe"%> Beispiel <%@ include file="copyright.txt" %> page -Direktive  Steuerung der Übersetzung   <%@page attrib1="txt" attrib2="txt" ... %> Beispiel <%@ page import= „ java.sql.*" %> taglib -Direktive  Zur Erzeugung benutzerspezifischer Tags

JSP-Skriptelemente (1)

  Vereinbarungen / Deklarationen    Deklarationen von Variablen, Methoden und inneren Klassen Syntax: <%! Vereinbarung(en) %> import über die Direktive  Beispiel:  Instanzvariablen: <%! int i=0; float f;%>  Methode: <%! public String Zeit() {...} %> Anweisungsfragemente/Scriplet   Einbettung von Java Fragmenten Syntax: <% Anweisungsfragment(e) %>   Lokale Variablendeklaration Beispiel:  <% int i=1; while (i<10) {out.println(i);i++;} %>

JSP-Skriptelemente (2)

  Ausdrücke   Einfachste Art eines Skripts Syntax: <%= Ausdruck %>   Umwandlung zur Laufzeit in String ( toString -Methode) Beispiel: <%=Uhr.getZeit()%> entspricht  <%out.print(Uhr.getZeit());%> Kommentare  Syntax: <%-- comment --%>

Parameterübergabe in JSP request

Enthält die Parameter, die per HTTP über POST von einer anderen Seite übergeben wurden.

Bsp:

HTML:

JSP: foo.jsp

String datum = request.getParameter(„Datum“)

Aufgabenstellung

Aufgabenstellung ZIEL:

Kino „DB-Kino“ mit 4 Sälen will Kartenreservierungen online anbieten.

Programmdemo

Herleitung des Datenbankschemas

Details zum Datenbestand Details:

Filme mit Titel und Länge können im DB-Kino in verschiedenen Sälen in verschiedenen Vorstellungen laufen. Jeder Saal bietet ein Tonsystem und besteht aus mehreren Sitzplätzen, die im Saal durch Reihe und Nummer eindeutig beschrieben sind. Sitze gehören zur Kategorie „Loge“ oder „Parkett“. Reservierungen beziehen sich auf einen Platz für eine bestimmte Vorstellung.

Modellierung

  UML-Modell Relationales Schema

Einteilung in Gruppen

Einteilung in Teams

  Einteilung in 2er- oder 3er-Teams Kino1 ... Kino16

Technische Voraussetzungen

Architektur

Client Client Client Client Client

Jetty

Web Server Servlet Container

Cerberus

FTP Server Mein Laptop 10.3.41.26

Kino1 Kino2 Kino3 … Kino16 ODBC Quellen Kino1 … Kino16

Zugriff auf die Server

   

FTP-Server

Bearbeiten der Daten auf dem Server Zugriff im Windows Explorer mittels

ftp://10.3.41.26/KinoX

Zum Bearbeiten in lokales Verzeichnis kopieren    

Web-Server

JSP-Dateien im Verzeichnis werden ausgeführt und ausgeliefert Zugriff über Web Browser unter

http://10.3.41.26:8080/demo/KinoX/datei.jsp

Erster Aufruf dauert wg. Kompilierung länger

Zugriff auf die Datenbank

    Datenbank ist Access-Datei: KinoX.mdb

Liegt in FTP-Verzeichnis Ist als ODBC-Quelle „KinoX“ eingetragen (ohne Login/Passwort) Zugriff aus JSP über JDBC per Treiber „

sun.jdbc.odbc.JdbcOdbcDriver

Aufgabenstellung

Erstellung des Programms (1) Aufgabe 1

Seite, die alle Vorstellungen des aktuellen Tages als Liste anzeigt.

 Mit Startzeit, Filmtitel, Saal   Sortiert nach Saal (*) Mit voraussichtlichem Ende   (*) Mit Tonsystem (**) Mit Anzahl der freien Sitze in den einzelnen Kategorien Dann: Button, um für eine der Vorstellungen Karten zu reservieren

Erstellung des Programms (2) Aufgabe 2

Seite, die Saal der ausgewählten Vorstellung zeigt.

 Info über Tonsystem, freie Sitze in den einzelnen Kategorien    Anzeige alle Sitze in richtiger Reihenfolge. Freie Plätze sind grün, belegte rot. (*) Loge-/Parkettplätze sind markiert (**) Vorschlag für besten Sitzplatz markiert Dann: Button für jeden freien Platz, mit dem man diesen reservieren kann.

Erstellung des Programms (3) Aufgabe 3

Buchen Sie die Reservierung und geben Sie eine Bestätigungsseite auf dem Bildschirm aus.

  Fassen Sie die Daten nochmals zusammen (*) Stellen Sie die Frage: „Wollen Sie wirklich diesen Platz buchen?“

Optionale Zusatzaufgaben

   (**) Erstellen Sie einen „Warenkorb“, in dem ein Kunde Platzreservierungen sammeln und gemeinsam (in einer Transaktion) buchen kann.

(**) Bieten Sie dem Kunden bei ausverkauften Vorstellungen Alternativtermine an.

(**) Schreiben Sie eine Statistikseite, die z.B. die Anzahl der belegten Plätze und weitere interessante Informationen anzeigt. Außerdem sollte man testen können, ob die Vorstellungen überschneidungsfrei und kopiengerecht (=jeder Film nur in einem Saal gleichzeitig) spielbar sind.

Evtl.

Kurze Präsentation