Register or log in at GRIN

Your e-mail-address or password is wrong
Register now
For new authors: free, easy and fast
This will be used as your user name, please specify a valid e-mail address

Lost password

Your e-mail-address or password is wrong

Request a new password
ASP - Active Server Pages close

Please wait

Please install the Adobe Flash Player if no e-book is displayed.

ASP - Active Server Pages

Scholary Paper (Seminar), 2000, 29 Pages
Author: Oliver Stoltenberg
Subject: Computer Science - Software

Details

Event: Informatik Anwendung II
Institution/College: University of Applied Sciences
Tags: Active, Server, Pages, Informatik, Anwendung
Category: Scholary Paper (Seminar)
Year: 2000
Pages: 29
Grade: 1,0
Language: German
Archive No.: V98902
ISBN (E-book): 978-3-638-97352-6

File size: 406 KB


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

Toni Menzel
20.08.2001 21:35:43
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
Add Comment
Your comment is reviewed before being published

Other users also were interested in the following titles:

Erstellen einer schriftlichen Hausarbeit

Author: Claudia Nickel
Presentations, Models, Tutorials, Instructions, 2006 Download as PDF-file for 4,99 EUR

Grundtechniken wissenschaftlichen Arbeitens

Author: Maik Philipp
Presentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR

This text can be quoted and accessed from this url:

http://www.grin.com/e-book/98902/asp-active-server-pages
please wait Please wait