Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung...
-
Upload
dietrich-gebel -
Category
Documents
-
view
105 -
download
2
Transcript of Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung...
![Page 1: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/1.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/2.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/3.jpg)
Kurze Wiederholung JSP
![Page 4: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/4.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/5.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/6.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/7.jpg)
JSP Elementtypen
JSP-Direktiven
JSP-Skriptelemente
(JSP-Aktionen)
![Page 8: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/8.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/9.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/10.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/11.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/12.jpg)
Aufgabenstellung
![Page 13: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/13.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/14.jpg)
Herleitung desDatenbankschemas
![Page 15: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/15.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/16.jpg)
Modellierung
UML-Modell
Relationales Schema
![Page 17: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/17.jpg)
Einteilung inGruppen
![Page 18: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/18.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/19.jpg)
Technische Voraussetzungen
![Page 20: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/20.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/21.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/22.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/23.jpg)
Aufgabenstellung
![Page 24: Web & Datenbanken Programmierprojekt Java Server Pages Michael Klein, 15.06.2005 Programmierübung NKI.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/24.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/25.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/26.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/27.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022070310/55204d7d49795902118cd599/html5/thumbnails/28.jpg)
Evtl.Kurze Präsentation