28
Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Embed Size (px)

Citation preview

Page 1: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Web & Datenbanken

ProgrammierprojektJava Server Pages

Michael Klein, 15.06.2005

Programmierübung NKI

Page 2: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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

Page 3: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Kurze Wiederholung JSP

Page 4: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

JSP = Server-Side Skripting

In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert

Beliebig viele HTML-Quellen können aufgenommen werden

Datenbank

Scripting

HTML

Scripting

HTML

Anwendungs-Logik

Page 5: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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

Page 6: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

JSP Ablauf

client

HTTP-Server

Datenbank

JSP-page

JSP-Servlet

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

Anfrage

Antwort

SQL Anfragen

Ergebnisse

Verbindungsaufbau

Zustand

Page 7: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

JSP Elementtypen

JSP-Direktiven

JSP-Skriptelemente

(JSP-Aktionen)

Page 8: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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

Ele

men

ttyp

en

Page 9: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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

Ele

men

ttyp

en

Page 10: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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 --%>

JSP

Ele

men

ttyp

en

Page 11: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Parameterübergabe in JSP

request

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

Bsp:

HTML:

<form action=„foo.jsp“ method=„post“><input type="hidden" value=„20021220" name=„Datum"><input type="submit" value=„Abschicken">

</form>

JSP: foo.jsp

String datum = request.getParameter(„Datum“)

Page 12: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Aufgabenstellung

Page 13: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Aufgabenstellung

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

Programmdemo

Page 14: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Herleitung desDatenbankschemas

Page 15: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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.

Page 16: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Modellierung

UML-Modell

Relationales Schema

Page 17: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Einteilung inGruppen

Page 18: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Einteilung in Teams

Einteilung in 2er- oder 3er-Teams

Kino1 ... Kino16

Page 19: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Technische Voraussetzungen

Page 20: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Architektur

JettyWeb Server

Servlet Container

Mein Laptop10.3.41.26

CerberusFTP Server

Kino1

Kino2

Kino3

Kino16

Client

Client

Client

Client

Client

Kino1

Kino16

ODBC-Quellen

Page 21: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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

Page 22: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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“

Page 23: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Aufgabenstellung

Page 24: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Erstellung des Programms (1)

Aufgabe 1Seite, 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

Page 25: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Erstellung des Programms (2)

Aufgabe 2Seite, 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.

Page 26: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Erstellung des Programms (3)

Aufgabe 3Buchen 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?“

Page 27: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

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.

Page 28: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI

Evtl.Kurze Präsentation