Please wait
Please install the Adobe Flash Player if no e-book is displayed.
Scholary Paper (Seminar), 2000, 29 Pages
Author: Oliver Stoltenberg
Subject: Computer Science - Software
Details
Institution/College: University of Applied Sciences
Tags: Active, Server, Pages, Informatik, Anwendung
Year: 2000
Pages: 29
Grade: 1,0
Language: German
ISBN (E-book): 978-3-638-97352-6
File size: 406 KB
Other users also were interested in the following titles:
Fulltext (computer-generated)
Hausarbeit im Kurs Informatikanwendungen II
WS 00/01
Herr Godbersen
Active Server Pages
Florian Schaeffer
fschaeffer@tfh-berlin.de
Oliver Stoltenberg
ostoltenberg@tfh-berlin.de
Jens Zaedow
jzaedow@tfh-berlin.de
Vorwort
Die folgende Tabelle stellt dar, welche Kapitel von welchem Studenten
geschrieben wurden.
Kapitel Student
2 3.2
Jens Zaedow (660565)
3.3
Florian Schaeffer (661896)
4
Oliver Stoltenberg (661897)
1 & 5
Florian Schaeffer, Oliver Stoltenberg, Jens Zaedow
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 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 Techni-
ken 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 HTML1
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 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 CGI3 -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-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.
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 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 eigentli-
chen Programmfunktionen abgelegt. Zur Laufzeit ersetzt der Server die Platz-
halter 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.
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
ASP ist keine Programmiersprache im
t
herkömmlichen Sinne, sondern ein Stan-
x
i
t
ä
l
e
dard, der unterschiedliche Sprachen
p
m
Visual
miteinander verbindet. Bei diesen Pro-
Ko
Basic
grammiersprachen handelt es sich um
sog. Skriptsprachen. Diese bilden eine
Zwischenstufe zwischen der Seitenbe-
VBA
schreibungssprache HTML und vollwer-
tigen Programmiersprachen wie Java,
C++ oder Visual Basic. HTML dient im
Normalfall dazu, Formatierungen und
VB Skript
Verknüpfungen von Text zu erstellen.
Abbildung 1 - Komplexitätsdreieck
Programmiersprachen erfüllen dagegen
Programmiersprachen/Skriptsprachen
die Aufgabe, komplexe Anweisungen
Seite 5
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 Skriptspra-
chen, 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 Funktionsmerk-
mal 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 umge-
setzt werden. Gerade durch die Verwendung von VBScript als primäre Skript-
sprache 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
dy.namis
ASP- c
D h
atei
W indows
erzeugte H TML-
Datei
Internet
dynamisch
ASP-Engine
erzeugte H TML-
(Komponente)
Datei
Unix
IIS-Server
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" %>
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
Sub Hallo ()
Response.Write("<H1>Hallo! Heute ist der" & Date & " </H1>")
End Sub
</SCRIPT>
<HTML>
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änk-
ten Funktionsumfang. Der skriptorientierte Ansatz der ASP-Technologie erfor-
dert aber für die meisten Lösungen auch keine weiteren Objekte.
Die folgende Tabelle zeigt die gebräuchlichsten Objekte.
Objekt
Anwendungsbereich
Objekt Request
Abrufen von Benutzerinformationen
Objekt Response
Senden von Informationen an die Benutzer
Objekt Server
Steuern der ASP-Ausführungsumgebung
Objekt Session
Speichern von Informationen über eine Benutzersitzung
Objekt Application
Gemeinsames Nutzen von Informationen durch die Be-
nutzer einer Anwendung
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" bezeich-
nete 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(,,<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
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 Kun-
denanalyse 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-
5 Open database 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 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.
W indows 9X, 2000, NT
Internet Inform ation Server, Personal W eb Server
ActiveX Server Fram ework
ActiveX
ActiveX
Scripting
Data
Engine
Objects
HT ML
ASP
Access
O racle
SQ L Server
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-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 wur-
den 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 Datenmo-
dell entwickelt werden, welches neben dem reinen Posterbestand auch noch
Funktionen wie Top-10, News und weiterführende Informationen zu den Künst-
lern zur Verfügung stellen soll.
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.
rsMaler.ActiveConnection = "dsn=ASPBilder;"
rsMaler.Source = "SELECT Bildname, Vorname, Nachname, Bildnum-
mer
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 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 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 implementie-
ren. 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
If (Len(newQS) > 1) Then newQS = newQS & "&"
newQS = newQS & Item & "=" & Ser-
ver.URLencode(Request.QueryString(Item))
End If
Next
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 ein-
zelnen Tabellenzeilen dann dynamisch mit Inhalt gefüllt.
Name Preis
Größe
...
Solange
Datensätze
<Name> <Preis>
<Größe>
vorhanden
sind
Gesamtpreis (sum(Preis)
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
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 darge-
stellt. 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 komplet-
ten Warenkorbes. Zudem berechnet er den gesamten Kaufpreis und gibt das
Ergebnis aus. Zu jeder Bestellposition wird zur Kontrolle noch einmal ein Vor-
schaubild angezeigt.
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
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.
1.) schickt Befehl an Server
Client
Server
4.) liest Daten aus
2.) fordert Cookie vom Client
Datenbank
3.) schickt bisherigen Cookie an Server
5.) schickt aktualisierten Cookie
mit Informationen aus der
Datenbank an Client
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.
Client
Server
1.) fordert den W arenkorb
vom Server
2.) Server fordert Cookie vom Client
liest Daten
3.) Client schickt Cookie an Server
liest
Vorlage
liest Cookie
4.) schickt fertige HT ML-Seite an 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
,,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.
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-Schalt-
flä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 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
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, Applica-
tion)
· Unterstützung von ActiveX-Serverkomponenten
· Zusatzkomponenten von Drittanbietern (sowohl frei als auch kommer-
ziell)
Seite 22
Active Server Pages
Jens Zaedow
Florian Schaeffer
Oliver Stoltenberg
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 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, datenbankge-
stü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
Active Server Pages
Jens Zaedow
Florian Schaeffer
Oliver Stoltenberg
6.2 Internetlinks
ASPcode.ist eine hervorragende Quelle für ASP Quellcode-
Beispiele.
http://aspcode.com
ASPWire bietet ein großes Archiv an Active Server Pages
News.
http://aspwire.com
15 Seconds ist die größte IIS und ASP Entwicklungs-Seite die
online verfügbar ist.
http://www.15seconds.com
ASP Connections Conference richtet sich an ASP Entwickler.
Themen sind z.B. ASP Performance, IIS 5.0, ASP 3.0, XML,
ADO, E-Commerce, VID, COM, COM+, MTS, DHTML, load
balancing, and more.
http://www.asp.connection.com/asp
Eine der ersten Seiten, die sich intensiv mit dem Thema
befasst.
http://www.asphole.com
4GuysFromRolla kombiniert Web Technologien, Programmie-
rung mit Humor.
http://www.4guysfromrolla.com
aspGuys.com ist ein neues Portal für ASP Entwickler.
http://www.aspguys.xom
Diese Seite ist relativ neu, ist aber auf jeden Fall einen
Besuch wert.
http://www.askasp.com
Seite 25
Comments
Other users also were interested in the following titles:
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für Microsoft Word
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für OpenOffice.org
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 9,99 EUR
Formatvorlage zur Erstellung einer Diplomarbeit / Vorlage zur Erstellung einer Hausarbeit
Author: Marco FeindlerPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2008 Download as PDF-file for 6,99 EUR
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wissenschaftlichen Arbeit
Author: Zoran ZivkovicPresentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR
Erstellen einer schriftlichen Hausarbeit
Author: Claudia NickelPresentations, Models, Tutorials, Instructions, 2006 Download as PDF-file for 4,99 EUR
Grundtechniken wissenschaftlichen Arbeitens
Author: Maik PhilippPresentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - Hausarbeiten - Seminararbeiten
Author: Mark RichterPresentations, Models, Tutorials, Instructions, 2008
This text can be quoted and accessed from this url:
20.08.2001 21:35:43
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