Inhaltsverzeichnis
1 Einleitung 1
2 Von der statischen zur dynamischen Webseite 2
2.1 Statische Inhalte - klassisches HTML 2
2.2 Dynamische Generierung von Webseiten 2
2.2.1 Klassische Verfahren 2
2.2.2 Active Server Pages 3
2.2.3 Java Server Pages 4
2.2.4 WebObjects, Cold Fusion 4
3 Das Verfahren Active Server Pages 5
3.1 Sprachen für Active Server Pages 5
3.2 Allgemeine Funktionsweise von ASP 6
3.3 Entwicklung mit ASP 7
3.3.1 Objektorientierter Ansatz der ASP-Programmierung 8
3.3.2 Dynamische Inhalte durch Datenbankanbindung 11
4 Realisierung eines Postershops 13
4.1 Systemabgrenzung 13
4.1.1 Technisch 13
4.1.2 Funktional 13
4.2 Datenmodell 14
4.3 Dynamische Anzeige von Daten 15
4.4 Aufbau der Client- Server Interaktion 17
4.4.1 Nachrichten 17
4.4.2 Warenkorb 18
4.4.3 Speicherung der Bestellung 20
5 Bewertung 22
6 Weiterführende Ressourcen 24
6.1 Literatur 24
6.2 Internetlinks 25
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
1 Einleitung
Die Active Server Pages (ASP) - Technologie ist ein Verfahren, um bisher statische Webseiten mit dynamischen Inhalten zu füllen. In dieser Hausarbeit sollen die Möglichkeiten, aber auch die Grenzen der ASP-Technologie aufgezeigt werden.
In den Kapiteln 2 und 3 werden zunächst die wesentlichen Bestandteile der ASP-Technik erläutert. Dabei stehen insbesondere die diversen Möglichkeiten der Client-Server-Interaktion, die Programmiersprachen sowie die Architektur im Vordergrund.
Zur Visualisierung der Ergebnisse ist ein virtueller Postershop konzipiert und umgesetzt worden. Im vierten Kapitel wird ein Teil der beschriebenen Techniken angewandt und am Beispiel Postershop ausführlich erläutert.
Seite 1
Active Server Pages Jens Zaedow Florian Schaeffer Oliver Stoltenberg
2 Von der statischen zur dynamischen Webseite
2.1 Statische Inhalte - klassisches HTML 1
Zu Beginn der Entwicklung des Internets bestanden die Webseiten aus
statischen Inhalten. Noch in der heutigen Zeit sind viele Seiten statisch
aufgebaut. Statisch bedeutet, dass die HTML-Seiten einmal manuell erstellt und
dann ins Internet gestellt werden. Soll eine statische Seite geändert werden,
geschieht dies direkt an dem entsprechenden HTML-Dokument. Der Ablauf einer
Seitenanforderung im statischen Modell erfolgt folgendermaßen:
• Ein Browser fordert per http 2 -Protokoll eine HTML-Datei von einem Webserver an.
• Der Server empfängt die Anforderung und sendet die gewünschte HTML-Seite an den Browser.
• Dieser empfängt die Seite und stellt sie formatiert dar. Dieses Modell garantiert einen schnellen Zugriff auf Internetseiten, eine Inter-aktion mit dem Benutzer ist aber nur in begrenztem Umfang möglich. Der
schwerwiegendste Nachteil ist jedoch die Notwendigkeit der manuellen Seiten-bearbeitung, wenn Inhalte aktualisiert werden sollen.
2.2 Dynamische Generierung von Webseiten
2.2.1 Klassische Verfahren
Das wohl bekannteste Verfahren zur Generierung von dynamischen Webseiten
stellt die CGI 3 -Schnittstelle dar. Mit Hilfe dieser Schnittstelle hat der Client die
Möglichkeit, eine HTTP-Anforderung an eine ausführbare Anwendung zu stellen,
1 HyperText Markup Language
2 HyperText Transport Protocol
3 CGI (Common Gateway Interface) ist eine genormte Schnittstelle, die es anderen Programmen ermöglicht, HTML-Seiten auf dem Server vor dem Versenden zu bearbeiten. Hierbei werden meist Scriptsprachen wie Perl benutzt.
Seite 2
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
die auf dem Webserver ausgeführt wird. Die entsprechende Anwendung kann die Anforderung verarbeiten. Nun kann die Anwendung in Abhängigkeit der übermittelten Daten ein HTML-Dokument generieren, das an den anfordernden Client gesendet wird.
Die entsprechenden Programme laufen unabhängig von einer HTML-Seite, so dass sie auch von verschiedenen HTML-Dokumenten aus aufgerufen werden können.
2.2.2 Active Server Pages
Die ASP-Technologie ermöglicht es, ausführbare Programmteile (Skripte) direkt in eine HTML-Datei zu schreiben. Dadurch wird die Entwicklung von HTML-Seiten und Skripten zu einem einheitlichen Prozess. Die dynamischen Elemente einer Webseite werden somit direkt eingebunden ohne den Umweg über ein ausführbares Programm.
Daraus ergeben sich eine Vielzahl an Vorteilen:
• Web-Dienstleister können mit relativ wenig Aufwand interaktive Geschäftsanwendungen anbieten, anstatt bloße Inhalte zu veröffentlichen.
• Das Entwickeln von ASP-Anwendungen wird dadurch erleichtert, dass eine Vielzahl von ActiveX-Objekten genutzt werden können. So wird beispielsweise eine Datenbankanbindung oder auch eine Komponente zur Werbebannerverwaltung zur Verfügung gestellt.
• Für ASP-Skripte können viele Skriptsprachen verwendet werden.
• Über vordefinierte integrierbare Programme können komplexe Funktionen hinzugefügt werden, um Daten zu verarbeiten und hilfreiche Informationen bereitzustellen.
• Mit ASP erstellte Inhalte sind mit den Standard-Webbrowsern kompatibel.
Seite 3
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
2.2.3 Java Server Pages
Java Server Pages verfolgen einen ähnlichen Ansatz wie die Active Server Pages. Jedoch wird hier als Programmiersprache ausschließlich Java genutzt. Ein Vorteil ist die plattformübergreifende Programmierung, nachteilig ist die Performance.
2.2.4 WebObjects, Cold Fusion
WebObjects und Cold Fusion Server verfolgen ein anderen Ansatz. Hier werden komplexe Entwicklungsumgebungen zur Verfügung gestellt, die auch umfangreiche Programmieraufgaben gut administrieren können. WebObjects arbeitet intern mit Java, kann aber neben Java auch C oder Script-Sprachen nutzen. Ein eigenständiger Server erzeugt die HTML-Seiten und gibt diese an den Client zurück.
Grundsätzlich sind bei diesen Programmen das Layout und die Funktionalität getrennt. In der HTML-Vorlage stehen Platzhalter an den Stellen, die später dynamische Daten enthalten sollen. In einer Java-Klasse werden die eigentlichen Programmfunktionen abgelegt. Zur Laufzeit ersetzt der Server die Platzhalter durch die dynamischen Inhalte.
Dieses zunächst recht kompliziert wirkende System hat mehrere Vorteile gegenüber einem Skript-gesteuerten Ansatz wie z.B. ASP. Zum einen ist die so oft geforderte Trennung von Layout und Inhalt konsequent durchgesetzt, was ein späteres Cross-Media-Publishing 4 vereinfacht. Auch XML lässt sich mit einem solchen System wesentlich besser nutzen. Zum anderen ermöglicht die Einbindung eines „vollwertigen“ Programmiersystems auch komplexe und sicherheitskritische Applikationen. So wird ein Großteil der Homebanking-Systeme der großen Banken (Postbank, Deutsche Bank) mit WebObjects realisiert.
Viele professionelle Onlineshops nutzen den Cold Fusion Server, der neben einer hohen Performance auch eine einfache Bedienbarkeit bietet, jedoch in Sicherheitsfragen nicht so gut ausgestattet ist wie ein auf reinem Java basierendes System.
4 Veröffentlichen einer Struktur in diversen Formaten (html, pdf)
Seite 4
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
3 Das Verfahren Active Server Pages
Microsoft-ASP steht für Active Server Pages und bietet die Möglichkeit, HTML-Dokumente interaktiv zu gestalten. Dabei ist ASP ein integraler Bestandteil der Active-Plattform von Microsoft. Diese Active-Plattform stellt eine Technologie dar, um komplexe und interaktive Internetanwendungen entwickeln zu können. Hierdurch soll beispielsweise ermöglicht werden, dass ein Reisebüro nicht nur bloße Fluginformationen zur Verfügung stellt, sondern es seinen Kunden auch erlauben kann, mittels Eingabemasken Flüge eigenständig zu buchen. Beim Active-Plattform-Konzept ist zu Unterscheiden zwischen den Active-Desktop(clientseitigen) und den Active-Server- (serverseitigen) Applikationen. Da der Schwerpunkt der vorliegenden Hausarbeit auf ASP und deren Anwendung liegt, wird auf Active-Desktop nicht näher eingegangen.
Das ASP-Modul wird als eine Komponente auf einem bestehenden Webserver (bspw. Microsoft Internet Information Server oder Apache Server) installiert. Diese Servererweiterung verarbeitet die vom Client angeforderten ASP-Dateien (einfache Textdaten mit der Endung .asp) und übermittelt das Resultat dem anfordernden Client - meist einem Webbrowser.
3.1 Sprachen für Active Server Pages
Verknüpfungen von Text zu erstellen. VB Skript
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
auf einem Computer auszuführen. Die Skriptsprachen sind dazwischen anzusiedeln, obwohl sie mehr Programmiersprache als
Seitenbeschreibungssprache sind. Der Grund ist in der weniger starken Komplexität und Starrheit bezüglich Syntax und Regeln der Skriptsprachen anzusehen.
Standardmäßig unterstützt ASP die Verwendung der Skriptsprachen VBScript (primäre Skriptsprache) und Jscript/JavaScript. Aber auch andere Skriptsprachen, wie z.B. Perl, können nachträglich integriert werden. Hierbei ist es egal, ob der anfordernde Client die entsprechende Skriptsprache beherrscht, da diese auf Serverseite umgesetzt werden.
Ebenfalls möglich ist die Integration unterschiedlicher Skriptsprachen in einer ASP-Anwendung. Dies ist möglich, da innerhalb einer ASP-Datei die verwendete Skriptsprache jederzeit neu definiert werden kann. Mit diesem Funktionsmerkmal können Skriptsprachen verwendet werden, die jeweils für eine bestimmte Aufgabe besonders geeignet sind.
3.2 Allgemeine Funktionsweise von ASP
Wenn bereits Grundkenntnisse in Visual Basic, VBA, VBScript oder JScript/JavaScript vorliegen, können ASP-Anwendungen relativ einfach umgesetzt werden. Gerade durch die Verwendung von VBScript als primäre Skriptsprache ist es besonders für Visual Basic-Entwickler sehr einfach, auch komplexe ASP-Anwendungen zu entwickeln.
ASP-Anwendungen werden nicht als eigenständige Programme entwickelt, die erst kompiliert und in ein CGI-Verzeichnis kopiert werden müssen, sondern sie werden direkt in eine abgewandelte HTML-Datei (mit der Endung .asp) geschrieben. Die folgende Darstellung gibt einen Überblick über den normalen Ablauf einer Anforderung einer ASP-Datei durch einen Web-Client.
Seite 6
Active Server Pages Jens Zaedow Florian Schaeffer Oliver Stoltenberg
MacOS
Abbildung 2 - Ablauf einer ASP-Anfrage
Fordert ein Web-Client eine solche Datei an, interpretiert die ASP-Komponente
auf dem Webserver mittels Server Side Scripting den Skriptcode und liefert ein
HTML-Dokument an den anfordernden Webbrowser zurück. Die Seiten werden
komplett auf dem Server generiert und dann vollständig an den Client überge-
ben. Auf der Client-Seite erfolgt keine Interpretation der ASP-Daten (der Client
erhält nicht einmal den eigentlichen Code, sondern nur das Ergebnis). Es erfolgt
lediglich die Anzeige der fertigen Seite.
3.3 Entwicklung mit ASP
Eine vollständige ASP-Datei kann die folgenden Elemente beinhalten:
• HTML-Code
• Script-Delimiters (Abgrenzungszeichen für die einzelnen ASP-Scriptteile)
• Script-Code
• ASP-Objekte
Die Syntax einer .asp-Datei wird im Folgenden am Beispiel „Hallo Welt“
demonstriert: <%@ LANGUAGE="VBSCRIPT" %>
Seite 7
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
HEAD
META HTTP-EQUIV Content-Type content text/html char
set iso 8859 1
TITLE Aufbau einer ASP Anwendung /TITLE
/HEAD
BODY
Call Hallo ()
Response Write ( HR )
/BODY
/HTML
Im ersten Abschnitt ( Script /Script ) wird eine Funktion „Hallo“ definiert,
die eine Begrüßung und das aktuelle Datum ausgeben soll
Im zweiten Abschnitt ( HEAD /HEAD ) wird der Standard-Kopf einer HTML
Seite definiert und der Seitentitel gesetzt
Im dritten Abschnitt erfolgt die eigentliche Definition der Seite. Dabei wird
zunächst, wie bei jeder Seite, mit BODY der Beginn der Seite definiert. Die
ASP-Engine erhält nun mit der Zeichenfolge die Aufforderung, den nachfol
genden Text zu interpretieren. Zunächst wird die Prozedur Hallo() aufgerufen
Durch das Objekt Response und dessen Methode Write wird auf der Standard
Ausgabe (in diesem Fall der Webbrowser des Clients) der Text „Hallo Heute ist
der 11 12 2000 “ in großer Schrift ausgegeben. Dabei wird die Formatierung des
Textes über den Standard-HTML Befehl H1 /H1 vorgenommen. Das beson
dere ist das dynamische Einfügen des aktuellen Datums
Diese Aufgabe könnte theoretisch auch direkt auf der Client-Seite über ein ein
faches Java-Script übernommen werden. Dieses Beispiel dient jedoch nur dem
Verständnis der allgemeinen Syntax
3.3.1 Objektorientierter Ansatz der ASP-Programmierung
Die ASP-Technologie unterstützt wie die meisten modernen Programmierspra
chen eine objekt-orientierte Programmierung. Bei der objektorientierten Pro
grammierung werden bestimmte Objekte mit Eigenschaften und Methoden
erzeugt. Diese Objekte dienen als Vorlage und werden zur Benutzung
instanziiert. Eine lokale Kopie eines Objektes kann nun Eigenschaften besitzen
Diese werden durch Methoden verändert. Vollständige Programmiersprachen,
wie z B. JAVA, bieten eine Vielzahl von Objekten und lassen auch die Definition
Seite 8
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
eigener Objekte zu. ASP bietet nur einige Objekte, mit einem sehr beschränkten Funktionsumfang. Der skriptorientierte Ansatz der ASP-Technologie erfordert aber für die meisten Lösungen auch keine weiteren Objekte.
Die folgende Tabelle zeigt die gebräuchlichsten Objekte.
Jedes Objekt besitzt mehrere Methoden, die eine Kommunikation mit der Applikation erlauben. Die Client-Server-Interaktion findet bei ASP immer über solche Methoden statt.
3.3.1.1 Request-Objekt
Über das Objekt Request werden Informationen der Client-Seite dem Server zur Verfügung gestellt. Das Request-Objekt besitzt dabei verschiedene Methoden, um auf Informationen zuzugreifen. Die Methoden orientieren sich an der Art der Informationsabfrage. Gibt der Benutzer z.B. Daten in eine Textbox ein, so wird die Methode Form des Objektes genutzt.
Über den Funktionsaufruf Request.Form(„Textfeld“) wird der Inhalt des Feldes „Textfeld“ ausgelesen. Der Server kann mit den so gewonnen Informationen nun eine spezifische Aktion auslösen.
Weitere Methoden des Request-Objektes sind:
Seite 9
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
• QueryString - Informationen in der URL werden ausgelesen (z.B. ID=0815)
• Cookie - In einem Cookie gespeicherte Informationen werden an den Server übertragen (oft bei Warenkörben)
• ServerVariable - eine Variable auf dem Server wird verändert
• ClientCertificate - Eine Client-Berechtigung wird abgefragt (gerade im Sicherheitsbereich sehr wichtig)
3.3.1.2 Response-Objekt
Das Response-Objekt steuert das direkte Verarbeiten von Anweisungen auf dem Server. Da das Ergebnis einer ASP-Anfrage immer eine HTML-Datei ist, muß diese vollständig auf dem Server erzeugt werden. Dieser als „parsen“ bezeichnete Vorgang erfolgt auf der Server-Seite immer über das Response-Objekt. Die wichtigste Methode des Response-Objektes ist die Methode Write. Sie ist die Entsprechung des bekannten Befehls Print. Ein Aufruf der Art Res-ponse.Write(„dies ist Text
“) erstellt auf der Server-Seite also eine HTML-Datei, in der der komplette Text enthalten ist.
3.3.1.3 Application-Objekt
In diesem Objekt werden auf der Server-Seite applikationsabhängige Variablen gespeichert. Klassische Beispiele sind Datenbankverbindungen, Währung- oder Umrechnungsfaktoren, Zahlenformate usw.
Das Application-Objekt wird bei Start der Applikation erzeugt und kann zur Laufzeit verändert werden. Dabei steht das (einmalige) Applikation-Objekt allen Nutzern zur Verfügung und kann auch von allen geändert werden.
Der Ansatz der Objektorientierung bei ASP arbeitet jedoch recht selten mit Application-Objekten, da diese nicht dynamisch auf veränderte Situationen reagieren können.
3.3.1.4 Session-Objekt
Das Session-Objekt speichert Informationen auf Benutzerebene. Dies können z.B. Benutzername, Kreditkartennummer oder eine einmalige Benutzeridentifikation sein. Bei Einkaufssystemen wird dieses Session-Objekt zunehmend häufiger genutzt. Immer dann, wenn der Nutzer keine Cookies zulässt oder mehrere
Seite 10
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Nutzer an einem Rechner arbeiten, kann eine Cookie-basierte Lösung keine Nutzerdaten speichern. Durch die Vergabe einer Session-ID kann ein Benutzer eindeutig identifiziert werden. Für die Dauer des Besuches der Web-Seite wird das Session-Objekt über die Session-ID zur Verfügung gestellt.
Der Ablauf bei einer Bestellung wäre folgendermaßen:
1. Kunde ruft Startseite auf
2. Server vergibt Session-ID
3. Nutzer ruft Einkaufsfunktion auf
4. Server zeigt Shop und übergibt (meist in der URL) die Session-ID
5. Nutzer wählt mehrere Artikel aus
6. Server kann innerhalb des Systems z.B. Datenbank mit jedem gewählten Artikel und Session-ID speichern.
Am Ende dieses Vorganges kann der Server die Session-ID mit dem Benutzer verknüpfen und so zwischenspeichern oder der Kundenkartei hinzufügen. In der Kombination mit Cookies ist eine Session-ID das wichtigste Instrument zur Kundenanalyse und Marktforschung.
3.3.2 Dynamische Inhalte durch Datenbankanbindung
Die wohl wichtigste Anwendung der ASP-Technologie ist die Interaktion mit verschiedensten Datenquellen. Dabei kann praktisch jede Datenquelle genutzt werden, die über einen ODBC-Treiber 5 angesprochen werden kann. Jede Datenquelle muss also auf dem Server über einen entsprechenden Eintrag (Data Source Name - DSN) bekannt gemacht werden. Es spielt aber keine Rolle, ob es sich um eine lokale Access-Datei oder um eine Oracle-Datenbank auf einem Server handelt. In beiden Fällen wird die Verbindung über den entsprechenden Treiber aufgebaut.
Um dynamisch Daten aus einer Datenbank auszulesen, werden entsprechend der Active-Strategie von Microsoft ActiveX-Objekte genutzt. Die ActiveX-Komponente ADO (Active Data Object) wird im ActiveX-Server-Framework ange-
5 Opendatabase connectivity
Seite 11
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
sprochen und leitet die Anfragen über die ODBC-Treiber an die Datenquellen weiter. Das ActiveX-Framework umfaßt alle ActiveX-Objekte, die innerhalb einer ASP-Umgebung eingesetzt werden können. Hier sind die beiden wesentlichsten die ADO und die ActiveX-Scripting-Engine, die die eigentliche Interpretation der Skript-Dateien vornimmt und die entsprechenden Anweisungen durchführt. Sie ist auch für die Generierung der HTML-Datei zuständig.
Die folgende Grafik veranschaulicht diesen Zusammenhang.
Abbildung 3: Anbindung einer Datenbank
Seite 12
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
4 Realisierung eines Postershops
4.1 Systemabgrenzung
4.1.1 Technisch
Der virtuelle Poster-Shop „Poster“ soll die Einsatzmöglichkeiten der ASP-Technologie demonstrieren. Dabei werden die technischen Elemente ausführlich erläutert, die in dem Postershop zum Einsatz kommen. Es besteht nicht der Anspruch, sämtliche ASP-Elemente abzudecken. Die folgenden Elemente wurden im Postershop eingesetzt:
• Post Methode
• Cookies
• Post (Übergabe über die URL)
• Dynamische Navigation
o Offset
o Master-Detail Beziehung
Darüber hinaus wird auch das Datenmodell des Postershops erläutert.
4.1.2 Funktional
Ziel ist es, dem Benutzer auf der Startseite dynamisch die neuesten Poster in Form einer News-Liste bekannt zu machen und eine Art Charts in Form einer Top-10-Liste bereitzustellen. Basierend auf dem ausgewählten Künstler soll eine Liste mit seinen weiteren Werken angezeigt werden. Über einen Button kann jedes Poster in den Bestellkorb übernommen werden.
Über eine Maske soll außerdem die Bearbeitung des Warenkorbes möglich sein. Abschließend kann von einem Warenkorb ausgehend eine Bestellung ausgelöst werden. Dafür ist die Eingabe der Lieferadresse notwendig. Die Adresse wird mit einer eindeutigen Nummer in die Datenbank geschrieben.
Seite 13
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
4.2 Datenmodell
Für die Umsetzung des Postershops muß zunächst ein entsprechendes Datenmodell entwickelt werden, welches neben dem reinen Posterbestand auch noch Funktionen wie Top-10, News und weiterführende Informationen zu den Künstlern zur Verfügung stellen soll.
Abbildung 4 : Datenmodell des Postershops
Über ASP werden diverse Datenbankabfragen durchgeführt. Anhand der Suchfunktion wird die generelle Funktionsweise beschrieben, die natürlich auch auf alle anderen Abfragen übertragen werden kann. Der Programmcode ähnelt dem von Visual Basic. Bei einer Abfrage wird immer ein Recordset erzeugt. Das Recordset enthält das Ergebnis der Abfrage und kann über den ASP-Code direkt angesprochen werden. Im ersten Schritt wird das Recordset (rsMaler) auf die Datenbank „ASPBilder“ eingestellt. Diese Datenbank muß einen DSN- (Data Source Name) Eintrag in der Systemsteuerung haben. Anschließend kann das Recordset mit der Abfrage gefüllt werden.
rsMaler.ActiveConnection = "dsn=ASPBilder;"
rsMaler.Source = "SELECT Bildname, Vorname, Nachname, Bildnummer FROM Anzeige
WHERE Bildname like '%" + Replace(rsMaler__varBildname, "'", "''") + "%' AND Nachname like '%" +
Replace(rsMaler__varNachname, "'", "''") + "%' AND Vorname like '%" + Replace(rsMaler__varVorname, "'", "''") + "%'"
Das Recordset wird dynamisch mit den Eingaben des Suchformulars gefüllt, sofern Einträge gemacht worden sind. Die obige Abfrage würde als Ergebnis sämtliche Poster liefern. Durch die Eingabe eines Bildnamens, eines Malervor-oder nachnamens würde die Ergebnismenge eingeschränkt werden.
Seite 14
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
4.3 Dynamische Anzeige von Daten
Die folgende Abbildung enthält das Ergebnis der im vorigen Kapitel vorgestellten Suche. Als Filter wurde der Nachname des Malers (Kandinsky) eingetragen, so dass als Ergebnis die Bilder des Malers Wassily Kandinsky angezeigt werden.
Abbildung 5: Suchergebnis
Der Quellcode dieser auf dem Client angezeigten Seite enthält keine ASP-Anteile mehr. Der Server hat eine reine HTML- Datei geliefert. Dies ist sinnvoll, da der Client auf diese Weise entlastet wird und der Benutzer keine Einblicke in den Aufbau der Strukturen der Datenbank erhält.
Da es dem Benutzer nicht zuzumuten wäre, wenn alle Bilder eines Malers auf einmal angezeigt werden würden, wird das erzeugte Recordset in mehrere Teile untergliedert. Wie man in Abbildung 5 erkennen kann, hat der Benutzer über die Befehle „vorherige Seite“ und „nächste Seite“ die Möglichkeit, weitere Daten anzeigen zu lassen. Dieses Verfahren wird mit Hilfe von Offsets realisiert. Wenn z.B. ein Recordset 90 Datensätze enthält und die maximale Größe eines Offsets 10 Datensätze beträgt, wird das Recordset in 9 Teile zerlegt. Die Identifizierung der einzelnen Teile erfolgt über einen statischen Link, in dem die Offsetposition über eine ID übergeben wird. Das folgende Beispiel zeigt, wie ein solcher Link aussehen könnte.
http://localhost/franchise_search.asp?txtBildname=&Search=Searc
h&offset=10
Das nächste Offset hätte die ID Offset=20. Durch Offsets lassen sich größere Datenmengen mit wenig Aufwand dynamisch darstellen.
Seite 15
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
ASP bietet jedoch weitaus mehr dynamische Elemente. So lassen sich in ASP übliche Elemente einer Programmiersprache wie z.B. Schleifen implementieren. So werden in dem folgenden Beispiel zwei If-Anweisungen in eine For -Next Schleife geschachtelt.
For Each Item In Request.QueryString
If (Item <> "UC_EmptyCart") Then
End If
Next
Im ersten Abschnitt wird das Objekt Request angesprochen. Die Methode QueryString ermittelt Daten aus der übergebenen URL. Für jedes Element in der URL wird dann überprüft, ob der übergebene Befehl UC_EmptyCart lautet oder ob ein Element übergeben wird. Wird als Befehl UC_EmptyCart übergeben, so wird der aktuelle Warenkorb gelöscht. Ist ein Element in der URL übergeben worden, so wird der bisherige Warenkorb um ein weiteres Element ergänzt.
In einer Schleife werden auch die Datensätze aus der Datenbank ausgelesen. Dabei kann entweder nur eine bestimmte Anzahl von Datensätzen oder alle Datensätze angezeigt werden. Realisiert wird dies über das oben schon erwähnte Offset.
In der HTML-Datei werden Kopf und Fuß einer Tabelle vordefiniert und die einzelnen Tabellenzeilen dann dynamisch mit Inhalt gefüllt.
Abbildung 6: Realisierung einer Schleife
Über die Bedingung lassen sich z.B. komplette Elemente in Abhängigkeit von Bedingungen anzeigen oder verbergen. So wird für den Postershop zum Beispiel die Navigation (<< Vorige Seite Nächste Seite >>) in Abhängigkeit von der Position innerhalb des Recordsets angezeigt. Befindet man sich am Anfang des Recordsets, so wird dem Benutzer zwar die Möglichkeit gegeben, den nächsten Datensatz anzuzeigen, jedoch erscheint die Schaltfläche << Vorige Seite nicht. Ebenso wird beim letzten Datensatz eine Navigation über das Ende des
Seite 16
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Recordsets hinaus nicht erlaubt. Bei der Anzeige der Nachrichten wird diese Navigation eingesetzt.
4.4 Aufbau der Client- Server Interaktion
4.4.1 Nachrichten
Die Nachrichten werden über eine sogenannte Master-Detail Beziehung dargestellt. D.h. es gibt eine Masterseite (Abbildung 7: Master), auf der die Überschriften der Nachrichten mit einem Kurztext dargestellt werden. Die Überschrift ist mit der Detailseite (Abbildung 8: Detail) verknüpft, auf der die komplette Nachricht angezeigt wird.
Abbildung 7: Master
Abbildung 8: Detail
Seite 17
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Die Links von der Master zur Detailseite werden vom Server fest definiert und mit Hilfe einer ID gesteuert. So erhält die erste Seite die ID=1. Der folgende Link zeigt, wie die URL aussehen könnte:
http://localhost/asp_tutorial/scaal_extranet/extranet_news_arti
cle.asp?id=1
4.4.2 Warenkorb
Der Warenkorb ermöglicht eine Mengenänderung und das Löschen des kompletten Warenkorbes. Zudem berechnet er den gesamten Kaufpreis und gibt das Ergebnis aus. Zu jeder Bestellposition wird zur Kontrolle noch einmal ein Vorschaubild angezeigt.
Abbildung 9: Warenkorb
Der Warenkorb wird über Textdateien, sog. Cookies, auf der Clientseite gesteuert. Entscheidet sich der Benutzer, einen Artikel über die Schaltfläche „In den Einkaufskorb“ vorzumerken, so erhält der Server den Befehl, den bisherigen Cookie um die neue Position zu ergänzen oder einen neuen anzulegen. Dieser
Seite 18
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Cookie wird dann an den Client übertragen. Die folgende Abbildung soll den Ablauf demonstrieren.
Abbildung 10: Cookie setzen
Um den Warenkorb dann tatsächlich anzuzeigen, benötigt der Client nicht nur die Informationen, die im Cookie gespeichert sind, sondern noch weitere Daten vom Server. Ruft der Client also seinen Warenkorb auf, so schickt er seinen Cookie an den Server, dieser liest die darin enthaltenen Informationen aus und generiert aus einer Vorlage, der Datenbank und den Informationen aus dem Cookie die fertige HTML-Seite und schickt diese dem Client. Die folgende Abbildung zeigt diesen Sachverhalt.
Client
Abbildung 11: Anzeige des Warenkorbes
Seite 19
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
4.4.3 Speicherung der Bestellung
Wurden alle gewünschten Poster dem Warenkorb hinzugefügt, kann über den Link das Bestellformular aufgerufen werden. Hierbei wird der im Cookie des Benutzer gespeicherte Warenkorb ausgelesen und als Tabelle angezeigt. Gleichzeitig wird ein einfaches HTML-Formular generiert, in das der Kunde seine persönlichen Daten eintragen muss.
Abbildung 12: Bestellmaske
Wenn der Kunde nun den Button „Bestellen“ betätigt, werden
a. die persönlichen Daten aus dem Web-Formular in die Tabelle
b. die aktuelle Bestellnummer aus der Tabelle „NextOrderID“ ausgelesen.
c. die Daten aus dem Cookie in die Datenbank auf dem Webserver geschrieben.
d. der Cookie, der den Warenkorb des Kunden enthält, gelöscht.
Seite 20
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Danach erfolgt eine Weiterleitung auf eine „Dankeschön-Seite“. An dieser Stelle muss der Benutzer den Bestellvorgang mit dem Druck auf die OK-Schaltfläche abschließen. Die vorhandene „NextOrderID“ wird nun um eins erhöht.
Seite 21
Active Server Pages Jens Zaedow Florian Schaeffer Oliver Stoltenberg
5 Bewertung
Die ASP-Technik wird sehr kontrovers diskutiert. Es gibt eine Reihe von Vor- und Nachteilen, die gegeneinander aufgewogen werden müssen. Letztendlich muss vor dem Hintergrund der einzelnen Projekte entschieden werden, ob ASP geeignet ist. Um die Entscheidung zu erleichtern, werden die wichtigsten Argumente genannt: Möglichkeiten:
• Schnelle, unkomplizierte Erstellung von dynamischen Seiten
• Zugriff auf beliebige ODBC-Quelle
• Kostengünstiger, als komplizierte objektgesteuerte Entwicklungsumgebung
• Die meisten Komponenten werden mit WIN 98/2000 mitgeliefert
o Personal Webserver
o Frontpage in Office
• Aufbauen von dynamischen Web-Sites, selbst wenn der Browser keine Scripts interpretieren kann (Browserunabhängigkeit)
• Möglichkeit, diverse Skriptsprachen zu kombinieren
• Fünf eingebaute Objekte (Request, Response, Server, Session, Application)
• Unterstützung von ActiveX-Serverkomponenten
• Zusatzkomponenten von Drittanbietern (sowohl frei als auch kommerziell)
Seite 22
Active Server Pages Jens Zaedow Florian Schaeffer Oliver Stoltenberg
Grenzen:
• Der Einsatz von ASP ist beschränkt auf eine heterogene Microsoft-Umgebung
• Der Internetserver muss ASP unterstützen
• Modularisierung ist zwar theoretisch über ActiveX -Objekte möglich, ist aber sehr aufwendig - bei großen Projekten kann dies ein entscheidender Nachteil sein
• Keine wiederverwendbaren Java Objekte, die bei ähnlicher Aufgabenstellung wiederverwendet werden können
• Cross-Media Publishing ist nicht möglich
• Sicherheitsbedenken, da ActiveX (ado 6 ) serverseitig ausgeführt wird
• Unübersichtlicher Code durch die Mischung von HTML, Text und ActiveX-Skripten
6 active data objects
Seite 23
Active Server Pages
Jens Zaedow Florian Schaeffer Oliver Stoltenberg
6 Weiterführende Ressourcen
6.1 Literatur
Christian Wenz, Tobias Hauser:
Dynamic Web-Publishing - Jetzt lerne ich.... Einfache Web-Programmierung mit HTML, JavaScript, Perl PHP und ASP, Markt und Technik; ISBN: 3827257646
Christian Wenz:
Workshop ASP
Addison-Wesley, München; ISBN: 3827316936
Jörg Krause:
Microsoft Active Server Pages. Programmierung dynamischer, datenbankgestützter Webseiten Addison-Wesley, München; ISBN: 3827316561
Jörg Krause:
ASP-Programmierpraxis. ADO, ADSI und CDO im Detail
Addison-Wesley, München; ISBN: 3827316553
Uwe Bünning:
Internet Intern. Dynamische Webseiten mit ASP
DATA Becker, Ddf.; ISBN: 3815820197
Stephan Walther, Jonathan Levine:
E-commerce-Programmierung mit ASP in 21 Tagen
Markt u. Technik, Mchn.; ISBN: 3827258391
Seite 24
Quote paper:
Oliver Stoltenberg, 2000, ASP - Active Server Pages, Munich, GRIN Publishing GmbH
This text can be quoted and accessed from this url:
Embed
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Presentations, Models, Tutorials, Instructions
Elaboration, 25 Pages
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Presentations, Models, Tutorials, Instructions
Elaboration, 35 Pages
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Presentations, Models, Tutorials, Instructions
Elaboration, 15 Pages
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Presentations, Models, Tutorials, Instructions
Elaboration, 25 Pages
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Presentations, Models, Tutorials, Instructions
Elaboration, 20 Pages
Erstellen einer schriftlichen Hausarbeit
Presentations, Models, Tutorials, Instructions
Termpaper, 14 Pages
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Presentations, Models, Tutorials, Instructions
Script, 46 Pages
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Presentations, Models, Tutorials, Instructions
Elaboration, 39 Pages
Oliver Stoltenberg has published the text ASP - Active Server Pages
Oliver Stoltenberg has uploaded a new text
Toni Menzel has commented on the text ASP - Active Server Pages
Andreas Kordwig, Christian Trennhaus, Christian Wenz, José Luis Cortés Díaz
Toni Menzel
Performance-Einstufung von JSP.
Woher kommt die Behauptung, JavaServerPages seien "weniger" performant?
Meinen Erfahrungen nach ist eine J2EE Application mit Web GUI (eben JSP) sehr viel schneller als die "Redmonder" ASP Version!
MfG Toni
on Monday, August 20, 2001-