Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI02V2 Dipl.-Inform. Michael Klein [email protected] Dipl.-Inform. Heiko Schepperle [email protected] Organisatorisches  Mein Name: Michael Klein  eMail: [email protected]  Homepage der Vorlesung: www.michaelklein.net/nki 

Download Report

Transcript Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI02V2 Dipl.-Inform. Michael Klein [email protected] Dipl.-Inform. Heiko Schepperle [email protected] Organisatorisches  Mein Name: Michael Klein  eMail: [email protected]  Homepage der Vorlesung: www.michaelklein.net/nki 

Vorlesung

„Informationssystemen: Neuere Konzepte“

SS 2005 Kurs: WWI02V2

Dipl.-Inform. Michael Klein

[email protected]

Dipl.-Inform. Heiko Schepperle

[email protected]

1

Organisatorisches

  Mein Name: Michael Klein eMail: [email protected]

Homepage der Vorlesung: www.michaelklein.net/nki  Vorlesung: Raum 210 2

Teil I (Michael Klein)

 I-1: Web und Datenbanken (3)   I-2: Objektorientierte Datenbanksysteme (2) I-3: ?

Teil II (Heiko Schepperle)

   II-1: Data Warehousing & OLAP II-2: Data Mining II-3: Imperfektion in Datenbanken

Themen

3

Details zu Teil I

I-1: Web und Datenbanken

 1. Webinformationssysteme, JSP  2. Praktische Rechnerübung zu JSP  3. Komponentenarchitekturen, EJB

I-2: Objektorientierte Datenbanksysteme

 1. Objektorientierte Modellierung  2. Persistenz von Objekten (optional)

I-3: Web Services?

4

Teil I

  Do, 09.06. 10:45 – 13:15 Uhr Mi, 15.06. 08:00 – 10:30 Uhr (Rechnerübung)    Do, 23.06. 10:45 – 13:15 Uhr Do, 30.06. 10:45 – 13:15 Uhr Mo, 04.07. 10:45 – 13:15 Uhr

Termine

5

Praktische Übungen

Übungsblätter

 Auf der Homepage erhältlich  Werden zu Beginn durchgesprochen  Wichtig als Klausurvorbereitung 

Programmieraufgabe JSP

 Dienen zur Vertiefung der Themen  Im Rechnerraum  In Gruppen zu bearbeiten  klausurrelevant 6

Vorlesung „Informationssystemen: Neuere Konzepte“ Teil „Web & Datenbanken“ Michael Klein

Webinformationssysteme

Erweiterung der Vorlesung „Webtechnologien im Überblick I“ von Wassili Kazakos (FZI, Karlsruhe)

Inhalt

Themen heute:

  Welche datenbankgestützten Webanwendungen gibt es?

Wie funktioniert das Web?

   Wie bekommt man die Datenbankinhalte ins Web?

Welche Technik setzt man für was ein?

Einführung in Java Server Pages (JSP) 8

Webshops, Auktionshaus, E-Commerce (1)

Beispiel: Amazon.de

Ebay.de

9

Webshops, Auktionshaus, E-Commerce (2)

Eigenschaften:

 Datenbank speichert Artikel, Kundendaten, Profile Versandinformationen, Auktionen etc.

    Suchen in Artikeln Bestellen von Artikeln, Bieten auf Artikel Einsehen des Versandstatus Auch: Angabe von Kaufempfehlungen 10

Suchmaschinen (1)

Beispiele: Google.de

Altavista.com

11

Suchmaschinen (2)

Eigenschaften:

 Crawler durchforsten Internet nach Seiten  Datenbank speichert indizierte Seiten   Welche Wörter/Wortgruppen sind enthalten Wer linkt auf diese Seite    Suchen nach Stichworten/Wortgruppen möglich Ranking der Suchergebnisse nach unterschiedlichen Kriterien Meist einfache, funktionale Oberfläche 12

Webanwendungen, Weboberflächen (1)

Beispiele: Webmail Administrations oberflächen 13

Webanwendungen, Weboberflächen (2)

Eigenschaften:

 Datenbank speichert Userinformation (inkl. Passwort), administrierte Daten (Mails, Ordner, Termine, etc.)  Web dient als Oberfläche, diese von beliebigen Ort, auf beliebigen (webfähigen) Gerät einsehen und verändern zu können 14

Web Portale, „inhaltsstarke“ Seiten (1)

Beispiele: Yahoo.de

Zeitungen/Zeit schriften, Spiegel.de

15

Web Portale, „inhaltsstarke“ Seiten (2)

Eigenschaften:

  Komplexe, vielschichtige Seiten Viele Autoren, viele Informationsquellen   Corporate Identity wichtig Formatvariationen für Ausgabegerät 16

Internetspiele (1)

Beispiel: BrettspielWelt, WarCraft III Battle.net Server 17

Internetspiele (2)

Eigenschaften:

   Rechenintensive Anwendung Hoher graphischer Aufwand Spezielle Interaktionsbedürfnisse 18

Technischer Aufbau des Internets

Das Internet – Die Geschichte

     Internet = Netz von Netzen 1960: das Internet entsteht aus dem militärischen ARPANET 1982: TCP/IP setzt sich durch 1990: Erste graphische Browser, das World Wide Web (WWW) entsteht ab 1990: Rasantes Wachstum des Internets 20

Das Internet - Technik

    Stapel von Protokollen  ISO/OSI-Referenzarchitektur, 7 Schichten Unabhängig von Betriebssystem & Netzwerktechnologie Teilnehmer sind durch eindeutige IP-Adresse ausgezeichnet Vielzahl von Diensten möglich  Mail, WWW, File-Sharing, Web-Radio (Streaming), WebServices… 21

Klient Application Transport Network Data Link Physical

Schichten des Internets

HTTP TCP IP Server Application Transport Network Data Link Physical 22

Netzwerkschicht

Klient Server Application Transport Network HTTP TCP IP Application Transport Network •vergibt weltweilt eindeutige IP-Adressen, z.B. 155.23.21.2

•Sucht einen Weg zwischen zwei Netzteilnehmern (Routing) • zustandslos, d.h. Pakete wandern unabhängig durch das Netz Sender Empfänger Paket 23

Transportschicht

Klient Server Application Transport Network HTTP TCP IP Application Transport Network • Stellt eine Verbindung zwischen zwei Teilnehmern her • Explizites Öffnen und Schließen nötig • Ordnet die ankommenden Pakete • Regelt die Geschwindigkeiten zwischen den Partnern (Staukontrolle) • Weist Pakete der entsprechenden Anwendung zu (Ports, Multiplexing) • zustandsbasiert • Weiteres Protokoll: UDP 24

Anwendungsschicht - HTTP

Klient Server Application Transport Network HTTP TCP IP Application Transport Network • Nutzt eine TCP-Verbindung, um Daten (Hypertexte) zu übertragen • get: Anfordern einer Datei vom Server • put: Ablegen einer Datei auf dem Server • post: Übermitteln von Parametern & Anforderung einer Datei • Zustandslos • für jede Datei muss ein neues get gesendet werden • Server kennt Verlauf der Klientenaktionen nicht • Weitere Protokolle: RMI, FTP, SMTP, … 25

Typisches Dokumentformat bei HTTP: HTML

HTML Application HTTP Application Ausgetauschte Information z.B. im HTML-Format • Hypertext Markup Language • Mischt Text mit Markup-Elementen (Tags), die Aussehen und Verhalten modifizieren • z.B. Dieser Text ist fettgeschrieben.

• Möglichkeit zur • Verlinkung auf andere Seiten • Definition von Formularfeldern für Benutzereingaben • Plattformunabhängig, wird von einem HTML-Renderer (üblicherweise einem Browser) auf dem Zielsystem dargestellt 26

Anwendungsschicht: weitere Protokolle

Klient Server Application Transport Network ?

TCP IP Application Transport Network Vielzahl weiterer Anwendungsprotokolle: • Remote Method Invocation (RMI), Remote Procedure Calls (RPC) • Verteiltes Programmieren • Entfernter Aufruf von Methoden/Funktionen • Serialisierung und Versendung der Parameter • Simple Object Access Protocol (SOAP) über HTTP • Zugriff auf Web Services • Eigene Protokolle 27

Zugriff auf Datenbanken über das Web

Zugriff auf Datenbanken über das Web

Unterschiedlich je nach Protokoll auf Anwendungsebene.

Extreme:

1. Serverseitige Generierung, Thin Client: Browser HTTP(HTML) HTTP Server

DB

2. Klientenseitige Verarbeitung, keine Logik im Server, Rich Client: Browser Erwei terung Datenbankspezifisches Protokoll

DB

29

Weitere Zugriffsmöglichkeiten

Entfernte Methodenaufrufe

RMI / RPC Browser Applet RMI Server

Web Services

Anwendung HTTP(SOAP) SOAP Server

DB

Dienst Dienst Dienst

DB

30

Serverseitige Ansätze Der „klassische“ Weg

Serverseitige Ansätze - Übersicht

Generell:

 Serverseitige Generierung von HTML-Seiten  Offline, durch Vorberechnung statischer HTML-Seiten  Durch Zugriff auf HTML-generierende Anwendungen  Durch Einbettung HTML-generierender Skriptteile in statisches HTML   kompiliert interpretiert 32

Serverseitige Ansätze - Bewertung

Generelle Vorteile:

     Zentrale Wartbarkeit der Anwendungslogik Geringe Anforderungen an den Klienten (nur Browser) Plattformunabhängigkeit – Klient sieht reines HTML Sicherheit – Klient greift nicht direkt auf Datenbank zu Sicherheit – Kein aktiver Code beim Klienten 

Generelle Nachteile:

 Eingeschränkte GUI-Möglichkeiten    Zustandslosigkeit von HTTP HTML ist doch nicht so plattformunabhängig Jede Interaktion erfordert Kommunikation mit dem Server 33

Serverseitige Ansätze

1. Offline, Vorberechnung von HTML-Seiten

Offline, Vorausberechnung von HTML-Seiten

   Periodische Extraktion von Daten aus einem DBMS, Vorbereitung von statischen HTML Seiten Navigation mittels offline generierter Links Auslieferung als gewöhnliche HTML-Seite über HTTP

HTML

HTTP

HTML Generierungs werkzeug Datenbank HTML

35

Bewertung

Vorteile

 Schneller Zugriff: Nur Ausliefern der HTML-Seiten  Keine DB-Zugriffe  Automatische Erfassung durch Suchmaschinen 

Nachteile

 Im Vergleich zu Datenbanksystemen begrenzte Suchfunktionalität  Aktualisierungs- und Konsistenzproblem  Keine Anwendungsfunktionalität, kein richtiges Reagieren auf Eingaben 36

Serverseitige Ansätze

2. Durch Zugriff auf HTML-generierende

Anwendungen

Common Gateway Interface

  

Common Gateway Interface

 Definierte Schnittstelle für den Zugriff auf Server-seitige Anwendungen  Ermöglicht HTTP-Servern den Zugriff auf externe, lokale Anwendungen  Beispiel:   http://www.klick-and-bau.com/cgi/suche?term=tisch&preis=1 Aufruf des Programms "suche" mit den parametern "term" und "preis" Implementiert in beliebiger Programmier- oder Skriptsprache (z.B. CGI-Skripte). Häufig: Perl, C, C++ Datenbankintegration durch entsprechende Anwendungen 38

CGI-Skripte

Betätigung Submit-Button

client HTTP Server

Aufruf des Skriptes mit Parametern

Initialisierung bei jedem Aufruf CGI-Skript

Aufbau der DB

Verbindung bei jedem Aufruf Datenbank Verbindungsaufbau Anfrage Antwort SQL Anfrage Ergebnis

HTTP Server Antwortet Skript übermittelt HTML und beendet

sich

Skript generiert HTML Skript stellt Anfrage an DB 39

Bewertung

 

Vorteile

 Beliebige Programme können integriert werden  Sicherheit durch eigenen Prozess  Volle Suchfunktionalität des darunter liegenden DBMS (z.B. SQL)

Nachteile

 Ein Prozess pro Anfrage  Keine Speicherung des Zustands  Für jede DB-Anfrage Verbindung aufbauen und trennen  Keine Trennung von Präsentation und Anwendungslogik  CGI-Skripte nur für kleine Anwendungen 40

API-basierte Ansätze

   Entwickelt um Nachteile der CGI-Skripte zu überwinden  Die CGI-Schnittstelle bleibt erhalten Erweiterungen werden in den Adressraum des Servers geladen  Müssen nur einmal geladen werden  Werden in Threads statt Prozessen ausgeführt Bekanntesten Vertreter  NSAPI (Netscape)  ISAPI (Microsoft)  Java Servlets (Sun) 41

API-basierte Ansätze

Betätigung Submit-Button

client Anfrage Antwort

HTML-Rückgabe Aufruf des Programms, Parameterübergabe

Initialisierung bei ersten Aufruf (einmalig) HTTP Server

Verbindungsaufbau zur DB beim ersten Aufruf

(einmalig) Datenbank Verbindungsaufbau Programm SQL Anfragen Ergebnisse Zustand

Beliebig viele SQL Anfragen HTML-Generierung 42

Bewertung

Vorteile

 Höhere Leistungsfähigkeit    Session-Verwaltung Zustände, z.B. DB-Verbindung Weniger Ressourcenverbrauch 

Nachteile

 Keine Standardisierung  Mangelnde Sicherheit  Keine Trennung von Präsentation und Anwendungslogik 43

Serverseitige Ansätze

3. Durch Einbettung HTML-generierender Skriptteile in statisches HTML

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

46

Anwendung erstellen

Laufzeit Interpreter HTML Dokument 

interpretiert

Ausführungsvarianten

Anwendung erstellen

Übersetzungs zeit (einmalig) Compiler Ausführbares Programm Laufzeit HTML Dokument 

kompiliert

47

Typische Vertreter

Interpretiert:    PHP - Personal Home Page ASP - Active Server Pages (Microsoft IIS) Server Side JavaScript (Netscape) Kompiliert:  JSP - Java Server Pages  ASP.NET – Active Server Pages .NET

48

Bewertung

Vorteile:

 Starke Verbreitung, gute Unterstützung  Volle Programmiersprachenfunktionalität  Standardisierung  Überbrückung der Zustandslosigkeit durch „Tricks“  Einbindung externer Programme möglich  Statische Teile brauchen nicht erzeugt zu werden 

Nachteile:

 Häufig geringe Geschwindigkeit  Starke Mischung von HTML und Programmiersprache 49

Übersicht Webinformationssysteme

WebDB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTML Seiten Generierung statischer Seiten Durch Zugriff auf HTML generierende Anwendung CGI API-basiert Durch Einbettung HTML generierender Skriptteile interpretiert SSI ASP PHP kompiliert JSP 50

Client-seitige Ansätze

Zugriff auf Datenbanken über das Web

Unterschiedlich je nach Protokoll auf Anwendungsebene.

Extreme:

1. Serverseitige Generierung, Thin Client: Browser HTTP(HTML) HTTP Server

DB

2. Klientenseitige Verarbeitung, keine Logik im Server, Rich Client: Browser Applet Datenbankspezifisches Protokoll

DB

52

Clientseitige DB-WWW-Integration

Realität:

 Höhere Ansprüche an die Benutzeroberfläche  Teilverlagerung von Funktionalität auf die Client-Seite 

Nicht mehr HTML-Generierung

 Erweiterung 1: mehr Interaktion/Überprüfung auf dem Client  Erweiterung 2: Windows-ähnliche Benutzerführung  Erweiterung 3: Unmittelbarer Zugriff auf die Daten 53

Funktionalität auf der Client-Seite

    Browser-spezifische Erweiterungen: Plug-Ins  z.B. Macromedia Shockwave, Macromedia Flash

Skript-Sprachen

 z.B. JavaScript, Visual Basic Script

Volle Programmiersprachen

 Java (Applets)  VisualBasic, C++ über ActiveX controls Übliche Aufteilung  Benutzerschnittstelle auf dem Client  Datenbankdienste weiterhin auf dem Server  Vom Direktzugriff von Client auf die DB ist aus Sicherheitsgründen abzuraten 54

Beispiel: Client-seitige Integration

Präsentation/ Interaktion

Server-Prozess

Anwendungs Logik

Datenbank

Daten 55

Übersicht Webinformationssysteme

WebDB-Techniken Offline durch Vorberechnung von HTML Seiten Generierung statischer Seiten Serverseitige HTML-Generierung Clientseitige GUI Durch Zugriff auf HTML generierende Anwendung CGI API-basiert Durch Einbettung HTML generierender Skriptteile interpretiert SSI ASP PHP kompiliert JSP Java Applet JavaScript PlugIns … 56

Resümee

    Häufigste Formen  HTML-Generierung auf Serverseite:    CGI mit Perl, C, C++ PHP, JSP, ASP Bei starker Interaktion und komplexer Benutzerführung  Clientseitige Erweiterung (JavaSkript, Java) Keine „beste Lösung“ für alle Fälle Kriterien im Einzelfall entsprechend Anforderungen gewichten Immer zu beachten:  rasanter technologischer Fortschritt  rasche Produktentwicklungen 57

Ausblick

Neue „Hype“-Themen auf dem Gebiet      JavaServer Faces  vereinfachte, modulare GUI-Erstellung auf dem Client WebServices  Einbindung von externer Funktionalität über das Web Zugang auch für mobile Geräte (Handys, PDAs…) Microsoft ASP.NET

… 58

Anwendungen für Webdatenbanken

Webshops, Auktionshaus, E-Commerce (1)

Beispiel: Amazon.de

Ebay.de

60

Webshops, Auktionshaus, E-Commerce (2)

Techniken:

   Meist Relationale DBMS Klient: Normaler Browser, Cookies, wenig JavaScript Serverseitig: CGI (C++?), (EJB) 61

Suchmaschinen (1)

Beispiele: Google.de

Altavista.com

62

Suchmaschinen (2)

Techniken:

 Farm relationaler DBMS, Parallele Datenbanken   Serverseitig: CGI meist mit schnellen, kompilierten Sprachen, z.B. C, C++ Client: Reiner Browser, sehr schlanke Seiten 63

Webanwendungen, Weboberflächen (1)

Beispiele: Webmail Administrations oberflächen 64

Webanwendungen, Weboberflächen (2)

Technik:

   Meist rel. Datenbanken Serverseitige Skriptsprachen: Perl, Python, PHP, JSP Klientseitig: Standardbrowser 65

Web Portale, „inhaltsstarke“ Seiten (1)

Beispiele: Yahoo.de

Zeitungen/Zeit schriften, Spiegel.de

66

Web Portale, „inhaltsstarke“ Seiten (2)

Technik:

     Content-Management-System Trennung von Struktur und Inhalt  XML Meist realisiert durch CGI Administration der Inhalte auch über Web möglich Klientseitig: Browser Rohdaten Layout-Templates CMS Anzeigbare Webseite 67

Internetspiele (1)

Beispiel: BrettspielWelt, WarCraft III Battle.net Server 68

Internetspiele (2)

Technik:

    Serverseitig nicht berechenbar In Standardbrowser nicht anzeigbar  Clientseitige Anwendung berechnet Graphiken, Spielverlauf etc.

  Java Applet, Kommunikation mit Server über eigenes Protokoll eigene Anwendung, eigenes Protokoll  Serverseitige Datenbank: Speichert angemeldete Nutzer, laufende Spiele etc.

 Meist: Nach Beginn des Spieles Peer-to-Peer-Kommunkation ohne Einbeziehung des Servers 69

Literatur

Erhard Rahm, Gottfried Vossen Web und Datenbanken. Konzepte, Architekturen, Anwendungen.

DPunkt Verlag 2002

Kazakos, Schmidt, Tomczyk Datenbanken und XML. Konzepte, Anwendungen, Systeme

Springer Verlag 2002 http://www.datenbanken-und-xml.de

70

Im Detail: Java Server Pages (JSP)

Übersicht Webinformationssysteme

WebDB-Techniken Offline durch Vorberechnung von HTML Seiten Generierung statischer Seiten Serverseitige HTML-Generierung Clientseitige GUI Durch Zugriff auf HTML generierende Anwendung CGI API-basiert Durch Einbettung HTML generierender Skriptteile interpretiert SSI ASP PHP kompiliert JSP Java Applet JavaScript PlugIns … 72

Server-Side Skripting

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

HTML HTML Scripting Scripting Datenbank Anwendungs Logik

73

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 74

JSP Ablauf

client Anfrage Antwort HTTP Server JSP page

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

JSP Servlet Datenbank Verbindungsaufbau SQL Anfragen Ergebnisse Zustand

75

   JSP-Direktiven JSP-Skriptelemente JSP-Aktionen

JSP Elementtypen

76

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 errorPage="/error.html" %> taglib -Direktive  Zur Erzeugung benutzerspezifischer Tags 77

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++;} %> 78

JSP-Skriptelemente (2)

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

JSP-Aktionen

   Ziel  Erzeugen und Verändern von Objekten  Steuerung der aktuellen Ausführung Aktion include   Aktion forward  Weiterleitung der Anfrage an eine andere Seite  Aufruf einer Seite zur Ausführungszeit (auch JSP möglich) Syntax: Syntax: 80

JSP: Beispiel

  Angenommen, klick-and-bau.com verwaltet Artikelstammdaten in der folgenden Tabelle:

ARTIKEL( Id CHAR(12), Name VARCHAR(25), Beschreibung VARCHAR(512), Photo_URL VARCHAR(512), Hersteller_Id CHAR(12) Kategorien VARCHAR(256), Status INT, Preis NUMERIC(8,2) )

Aktuelle Produktname und Photo sollen nun über das Web zur Verfügung gestellt werden 81

JSP: Beispiel

<%- <%@ page-Direktive --%> page errorPage="error.html" import="java.sql.*" session="false" %>

Produktliste vom <%-- Ausdruck --%> <%= new java.util.Date().toLocaleString()%> ...

82

JSP: Beispiel (Forts.)

...

<%- <%- <%! Datenbank-Verbindung --%> Deklaration der Instanzvariablen --%> Connection con; %> <%-- Skriplet zum Verbindungsaufbau und Abfrage--%> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection

("jdbc:odbc:ProduktDatenbank", "name", "pwd"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery

("SELECT name, photo_URL FROM artikel"); %> ...

83

JSP: Beispiel (Forts.)

...

<%- Ausgabe in zwei Spalten...--%>

<%- ...Zeile für Zeile--%> <% while (rs.next()){ %> <%}%>
NameBild
<%= rs.getString(1)%>
<%- Verbindung schließen--%> <% rs.close();%>

84

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“) 85

JSP-Aktionen und EJB

  Standardaufgaben sollten auch weiterhin in Komponenten ausgelagert werden  In Java: EJB  Einbindung über JSP-Aktionen Aktion useBean   Deklaration der Bean Syntax: 86

JSP-Aktionen und EJB

  Aktion getProperty   Lesen der Eigenschaft einer Komponente Syntax: , oder  87

JSP und Synchronisation

Grundsätzlich mehrere Instanzen einer JSP Seite/eines Servlets möglich.

Abhilfe im Falle von Synchronisations problemen: <%@ page isThreadSafe="false" %> 88

JSP Sitzungsverfolgung / Session Management

     JSP-Seiten nehmen an Sitzungsverwaltung teil In spezieller Variablen „session“ vom Typ HttpSession können Objekte unter Namen abgelegt werden <% Foo foo = new Foo(); session.putValue("foo",foo); %> Inhalt kann auch aus anderer Seite ausgelesen werden <% Foo myFoo = (Foo) session.getValue("foo"); %> Technik: Überwindung der Zustandslosigkeit durch clientseitige Cookies Häufigste Anwendung: Warenkorb 89

JSP Bewertung

Sehr stark:   Mischung von Designcode (HTML) und Programmiersprachencode (JAVA) Trennung in TemplateEngine, z.B. WebMacro 90

Tutorial

 JGuru: JSP Short Tutorial http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html

 Sinnvoll für Praktische Übung 91

Danke für die Aufmerksamkeit!