Inhaltsverzeichnis
1 Einleitung
2 Von der statischen zur dynamischen Webseite
2.1 Statische Inhalte - klassisches HTML
2.2 Dynamische Generierung von Webseiten
2.2.1 Klassische Verfahren
2.2.2 Active Server Pages
2.2.3 Java Server Pages
2.2.4 WebObjects, Cold Fusion
3 Das Verfahren Active Server Pages
3.1 Sprachen für Active Server Pages
3.2 Allgemeine Funktionsweise von ASP
3.3 Entwicklung mit ASP
3.3.1 Objektorientierter Ansatz der ASP-Programmierung
3.3.2 Dynamische Inhalte durch Datenbankanbindung
4 Realisierung eines Postershops
4.1 Systemabgrenzung
4.1.1 Technisch
4.1.2 Funktional
4.2 Datenmodell
4.3 Dynamische Anzeige von Daten
4.4 Aufbau der Client- Server Interaktion
4.4.1 Nachrichten
4.4.2 Warenkorb
4.4.3 Speicherung der Bestellung
5 Bewertung
6 Weiterführende Ressourcen
6.1 Literatur
6.2 Internetlinks
Vorwort
Die folgende Tabelle stellt dar, welche Kapitel von welchem Studenten geschrieben wurden.
Abbildung in dieser Leseprobe nicht enthalten
1 Einleitung
Die Active Server Pages (ASP) - Technologie ist ein Verfahren, um bisher stati- sche Webseiten mit dynamischen Inhalten zu füllen. In dieser Hausarbeit sollen die Möglichkeiten, aber auch die Grenzen der ASP-Technologie aufgezeigt wer- den.
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.
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 http2 -Protokoll eine HTML-Datei von einem Web- server 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 Interaktion mit dem Benutzer ist aber nur in begrenztem Umfang möglich. Der schwerwiegendste Nachteil ist jedoch die Notwendigkeit der manuellen Seitenbearbeitung, 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 CGI3 -Schnittstelle dar. Mit Hilfe dieser Schnittstelle hat der Client die Möglichkeit, eine HTTP-Anforderung an eine ausführbare Anwendung zu stellen, 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-Sei- ten 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öffentli- chen.
- Das Entwickeln von ASP-Anwendungen wird dadurch erleichtert, dass eine Vielzahl von ActiveX-Objekten genutzt werden können. So wird bei- spielsweise 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 Funktio- nen hinzugefügt werden, um Daten zu verarbeiten und hilfreiche Infor- mationen bereitzustellen.
- Mit ASP erstellte Inhalte sind mit den Standard-Webbrowsern kompati- bel.
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 umfang- reiche 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-Publishing4 vereinfacht. Auch XML lässt sich mit einem solchen System wesentlich besser nutzen. Zum anderen ermöglicht die Einbin- dung eines „vollwertigen“ Programmiersystems auch komplexe und sicherheits- kritische 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 basie- rendes System.
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
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1 - Komplexitätsdreieck Programmiersprachen/Skriptsprachen
ASP ist keine Programmiersprache im herkömmlichen Sinne, sondern ein Stan- dard, der unterschiedliche Sprachen miteinander verbindet. Bei diesen Pro- grammiersprachen handelt es sich um sog. Skriptsprachen. Diese bilden eine Zwischenstufe zwischen der Seitenbe- schreibungssprache HTML und vollwer- tigen Programmiersprachen wie Java, C++ oder Visual Basic. HTML dient im Normalfall dazu, Formatierungen und Verknüpfungen von Text zu erstellen. Programmiersprachen erfüllen dagegen die Aufgabe, komplexe Anweisungen 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.
Abbildung in dieser Leseprobe nicht enthalten
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 übergeben. 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:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1 - Komplexitätsdreieck Programmiersprachen/Skriptsprachen
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 HTMLSeite 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 nachfolgenden Text zu interpretieren. Zunächst wird die Prozedur Hallo() aufgerufen. Durch das Objekt Response und dessen Methode Write wird auf der StandardAusgabe (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 besondere ist das dynamische Einfügen des aktuellen Datums.
Diese Aufgabe könnte theoretisch auch direkt auf der Client-Seite über ein einfaches 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 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.
Abbildung in dieser Leseprobe nicht enthalten
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:
- 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 Response.Write(„<H1>dies ist Text</H1>“) 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 Benutzeridentifi- kation sein. Bei Einkaufssystemen wird dieses Session-Objekt zunehmend häufi- ger genutzt. Immer dann, wenn der Nutzer keine Cookies zulässt oder mehrere 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 ver- schiedensten Datenquellen. Dabei kann praktisch jede Datenquelle genutzt werden, die über einen ODBC-Treiber5 angesprochen werden kann. Jede Daten- quelle 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-Kom- ponente ADO (Active Data Object) wird im ActiveX-Server-Framework ange- 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 wesent- lichsten die ADO und die ActiveX-Scripting-Engine, die die eigentliche Interpre- tation 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 in dieser Leseprobe nicht enthalten
Abbildung 3: Anbindung einer Datenbank
4 Realisierung eines Postershops
4.1 Systemabgrenzung
4.1.1 Technisch
Der virtuelle Poster-Shop „Poster“ soll die Einsatzmöglichkeiten der ASP-Tech- nologie 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
- Offset
- 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.
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 in dieser Leseprobe nicht enthalten
Abbildung 4 : Datenmodell des Postershops
Über ASP werden diverse Datenbankabfragen durchgeführt. Anhand der Such- funktion 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.
Abbildung in dieser Leseprobe nicht enthalten
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 Malervoroder nachnamens würde die Ergebnismenge eingeschränkt werden.
4.3 Dynamische Anzeige von Daten
Die folgende Abbildung enthält das Ergebnis der im vorigen Kapitel vorgestell- ten Suche. Als Filter wurde der Nachname des Malers (Kandinsky) eingetragen, so dass als Ergebnis die Bilder des Malers Wassily Kandinsky angezeigt werden.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 5: Suchergebnis
Der Quellcode dieser auf dem Client angezeigten Seite enthält keine ASPAnteile 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.
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.
Abbildung in dieser Leseprobe nicht enthalten
Im ersten Abschnitt wird das Objekt Request angesprochen. Die Methode Que- ryString 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 in dieser Leseprobe nicht enthalten
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 Posi- tion 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 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 in dieser Leseprobe nicht enthalten
Abbildung 7: Master
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 8: Detail
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 in dieser Leseprobe nicht enthalten
Abbildung 9: Warenkorb
Der Warenkorb wird über Textdateien, sog. Cookies, auf der Clientseite gesteu- ert. 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
Cookie wird dann an den Client übertragen. Die folgende Abbildung soll den Ablauf demonstrieren.
Abbildung in dieser Leseprobe nicht enthalten
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 Abbil- dung zeigt diesen Sachverhalt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 11: Anzeige des Warenkorbes
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 in dieser Leseprobe nicht enthalten
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 „Kunden“ der Datenbank geschrieben. Die Datenbank vergibt dabei automatisch eine neue Kundennummer.
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.
Danach erfolgt eine Weiterleitung auf eine „Dankeschön-Seite“. An dieser Stelle muss der Benutzer den Bestellvorgang mit dem Druck auf die OK-Schalt- fläche abschließen. Die vorhandene „NextOrderID“ wird nun um eins erhöht.
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 ge- eignet ist. Um die Entscheidung zu erleichtern, werden die wichtigsten Argu- mente genannt:
Möglichkeiten:
- Schnelle, unkomplizierte Erstellung von dynamischen Seiten
- Zugriff auf beliebige ODBC-Quelle
- Kostengünstiger, als komplizierte objektgesteuerte Entwicklungsumge- bung
- Die meisten Komponenten werden mit WIN 98/2000 mitgeliefert
- Personal Webserver
- 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, Applica- tion)
- Unterstützung von ActiveX-Serverkomponenten
- Zusatzkomponenten von Drittanbietern (sowohl frei als auch kommer- ziell)
Grenzen:
- Der Einsatz von ASP ist beschränkt auf eine heterogene Microsoft-Umge- bung
- 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 entscheiden- der Nachteil sein
- Keine wiederverwendbaren Java Objekte, die bei ähnlicher Aufgabenstellung wiederverwendet werden können
- Cross-Media Publishing ist nicht möglich
- Sicherheitsbedenken, da ActiveX (ado6 ) serverseitig ausgeführt wird
- Unübersichtlicher Code durch die Mischung von HTML, Text und ActiveX- Skripten
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
6.2 Internetlinks
Abbildung in dieser Leseprobe nicht enthalten
[...]
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.
4 Veröffentlichen einer Struktur in diversen Formaten (html, pdf)
5 Open database connectivity
Häufig gestellte Fragen
Was ist das Hauptthema dieses Dokuments?
Dieses Dokument befasst sich hauptsächlich mit der Active Server Pages (ASP)-Technologie, ihrer Funktionsweise und ihrer Anwendung zur Erstellung dynamischer Webseiten. Es wird auch ein Beispiel für einen virtuellen Postershop zur Veranschaulichung der Konzepte verwendet.
Was sind Active Server Pages (ASP)?
ASP ist eine Technologie von Microsoft, die es ermöglicht, statische Webseiten mit dynamischen Inhalten zu füllen. Skripte können direkt in HTML-Dateien geschrieben werden, wodurch die Entwicklung interaktiver Webanwendungen vereinfacht wird.
Wie unterscheiden sich dynamische von statischen Webseiten?
Statische Webseiten bestehen aus manuell erstellten HTML-Dateien, die unverändert ins Internet gestellt werden. Dynamische Webseiten werden dagegen bei jeder Anforderung dynamisch generiert, z. B. durch ASP-Skripte oder CGI-Programme.
Welche Sprachen können für ASP-Skripte verwendet werden?
ASP unterstützt standardmäßig VBScript (als primäre Skriptsprache) und JScript/JavaScript. Es können jedoch auch andere Skriptsprachen wie Perl integriert werden.
Wie funktioniert der Ablauf einer ASP-Anfrage?
Wenn ein Web-Client eine ASP-Datei anfordert, interpretiert die ASP-Komponente auf dem Webserver den Skriptcode und liefert ein HTML-Dokument an den Webbrowser zurück. Die Seiten werden komplett auf dem Server generiert.
Welche Objekte stehen in ASP zur Verfügung?
Zu den gängigsten ASP-Objekten gehören Request (zum Abrufen von Client-Informationen), Response (zum Senden von Daten an den Client), Application (zum Speichern applikationsabhängiger Variablen) und Session (zum Speichern benutzerbezogener Informationen).
Wie können Datenbanken in ASP-Anwendungen eingebunden werden?
ASP ermöglicht die Interaktion mit verschiedenen Datenquellen über ODBC-Treiber. Die ActiveX-Komponente ADO (Active Data Object) wird verwendet, um Anfragen an die Datenquellen weiterzuleiten.
Was ist der Postershop und wozu dient er?
Der virtuelle Postershop "Poster" dient als Beispielprojekt, um die Einsatzmöglichkeiten der ASP-Technologie zu demonstrieren. Er zeigt unter anderem die Verwendung von Post-Methoden, Cookies, dynamischer Navigation und Datenbankanbindung.
Was sind Master-Detail-Beziehungen im Kontext des Postershops?
Master-Detail-Beziehungen werden verwendet, um Nachrichten darzustellen, wobei die Masterseite (Überschriften und Kurztexte) mit der Detailseite (vollständige Nachricht) verknüpft ist.
Wie funktioniert der Warenkorb im Postershop?
Der Warenkorb wird über Cookies auf der Clientseite gesteuert. Wenn ein Benutzer einen Artikel in den Warenkorb legt, wird ein Cookie mit den entsprechenden Informationen erstellt oder aktualisiert.
Welche Vor- und Nachteile hat die ASP-Technologie?
Zu den Vorteilen gehören die schnelle Erstellung dynamischer Seiten, der Zugriff auf ODBC-Quellen und die Browserunabhängigkeit. Zu den Nachteilen gehören die Beschränkung auf Microsoft-Umgebungen, Sicherheitsbedenken und ein unübersichtlicher Code.
Wo finde ich weiterführende Informationen zu ASP?
Das Dokument enthält eine Liste von Literatur und Internetlinks, die weitere Informationen zur ASP-Technologie bieten.
- Arbeit zitieren
- Oliver Stoltenberg (Autor:in), 2000, ASP - Active Server Pages, München, GRIN Verlag, https://www.grin.com/document/98902