Die Advertisement-Rotator-Komponente
Die Browser-Capabilities-Komponente
5
Der Einsatz von ActiveX-Komponenten
Active Server Pages werden mit verschiedenen hilfreichen Built-In-Komponenten ausgeliefert. Diese Komponenten können innerhalb von ASP-Applikationen benutzt werden, um verschiedene Web-Entwicklungsaufgaben durchzuführen. In diesem Kapitel lernen Sie, wie Sie die folgenden Komponenten einsetzen können, um ASP-Applikationen zu erstellen:
Die ASP-Umgebung beinhaltet weiterhin ein Komponente zum Zugriff auf eine Datenbank. Am achten und neunten Tag lernen Sie die Grundlagen des Zugriffs auf eine Datenbank aus einer ASP-Applikation heraus. Zusätzlich zu dieser Komponente verfügt ASP über eine Komponente zur Erstellung von Tabellen innerhalb von Web-Seiten.
Die Advertisement-Rotator-Komponente
Diese Methode ist hervorragend dazu geeignet, um eine Reihe von Grafiken anzuzeigen, sobald ein Anwender eine Web-Seite besucht. Sie können diese Steuerung dazu benutzen, um hilfreiche Nachrichten anzuzeigen oder Werbeanzeigen auf der Web-Seite zu plazieren. Des weiteren eignet sich diese Komponente hervorragend, um den Web-Surfer zu verschiedenen Regionen Ihrer Web-Seiten zu führen. Es ist dank der Advertisement-Rotator-Methode sehr einfach, eine Reihe von Grafiken periodisch erscheinen zu lassen.
Der Anwender sieht bei einem Reload der Web-Seite unterschiedliche Grafiken im Gegensatz zu einer Serie von Grafiken, die nacheinander im Rahmen einer animierten GIF-Datei abgespielt werden. |
Zuvor ist es notwendig, einen Rotationsplan zu entwickeln. Dies geschieht mittels einer einfachen Text-Datei, die Informationen über die entsprechenden Grafiken enthält, die einem Rotationsverfahren unterzogen werden sollen, sowie aus zwei Sektionen besteht, die durch ein Multiplikationszeichen (*) getrennt sind. Die erste Sektion beinhaltet eine Liste mit Schlüsselwörtern, die nicht unbedingt vorhanden sein müssen (es gibt Default-Werte). Die folgenden Schlüsselwörter können in der Sektion der Rotator-Schedule-Datei vorhanden sein:
Die Tabelle 5.1 listet die Default-Werte der Schlüsselwörter auf, die in der ersten Sektion der Rotator-Schedule-Datei zu finden sind.
Tabelle 5.1: Die Default-Werte der Schlüsselwörter
Schlüsselwort |
Default-Wert |
REDIRECT |
N/A |
WIDTH |
440 |
HEIGTH |
60 |
BORDER |
1 |
Setzen Sie BORDER auf den Wert 0, um die Begrenzungen um die Werbeflächen zu löschen. |
Die zweite Sektion der Rotator-Schedule-Datei beinhaltet Informationen über jede Grafik, die einer Rotation unterliegen soll. Jedes Image benötigt vier Zeilen an Informationen:
Die ASP-Applikation aus Listing 5.1 demonstriert, wie drei Advertisement-Grafiken rotieren (siehe Abbildung 5.1).
Listing 5.1: Eine ASP-Applikation, die drei Grafiken rotiert
1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <HTML>
4: <HEAD>
5: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
6: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
7: <TITLE>Advertisement Rotator Web Page</TITLE>
8: </HEAD>
9: <BODY BGCOLOR=FFFFFF>
10:
11: <%
12: ` The Advertisement Rotator object is instantiated.
13: Set AdRotator = Server.CreateObject("MSWC.AdRotator")
14: %>
15:
16: <H2>
17: The following image is rotated using the Advertisement Rotator
object
18: </H2>
19:
20: <!--
21: The GetAdvertisement method of the Advertisement Rotator object
22: is used to display an advertisement image.
23: -->
24:
25: <%= AdRotator.GetAdvertisement ("Advertisements.txt") %>
26:
27: </BODY>
28: </HTML>
Abbildung 5.1: |
Alles, was Sie zur Rotation von Grafiken benötigen, ist eine ASP-Applikation, die eine Rotator-Schedule-Datei sowie zwei ASP-Statements beinhaltet. Die erste Zeile initiiert die Advertisement-Rotator-Komponente, wie in Zeile 13 des Listings 5.1 zu sehen ist. Danach können die Grafiken angezeigt werden, indem die Methode GetAdvertisement der Advertisement-Rotator-Komponente Anwendung findet (Zeile 25). Im Anschluß daran rotieren die Grafiken, und zwar jedesmal, wenn ein Anwender die entsprechende Web-Seite besucht (siehe Abbildungen 5.2 und 5.3).
Abbildung 5.2: |
Abbildung 5.3: |
Die Rotator-Schedule-Datei der ASP-Applikation ist aus Listing 5.2 ersichtlich. Das Sternchen in Zeile 2 trennt die zwei Sektionen der Datei.
Listing 5.2: Die Rotator-Schedule-Datei, welche die Applikation aus Listing 5.1 benutzt.
1: BORDER 4
2: *
3: Advertisement-1.jpg
4: -
5: Description of advertisement 1
6: 10
7: Advertisement-2.jpg
8: -
9: Description of advertisement 2
10: 20
11: Advertisement-3.jpg
12: -
13: Description of advertisement 3
14: 30
Die Browser-Capabilities-Komponente
Diese Komponente ist sehr hilfreich bei der Erstellung von Browser-übergreifenden Web-Applikationen. Wenn Sie Web-Applikationen entwickeln, können Sie nicht sicherstellen, daß alle Anwender die neueste Version des Internet Explorers verwenden. Die Browser-Capabilities-Komponente stellt fest, welche Browser-Version der Anwender einsetzt und welche Features dieser unterstützt. Um die Browser-Capabilities-Komponente zu nutzen, müssen Sie zuerst einmal das ASP-Statement <% Set BrowserCapabilities = Server.CreateObject("MSWC.BrowserType") %> nutzen. Nachdem die Komponente aktiviert wurde, sind Sie in der Lage, die Fähigkeiten des Web-Browsers mittels der Syntax BrowserCapabilities.<Keyword> zu benutzen. <Keyword> kann mit den Werten aus Tabelle 5.2 gefüllt werden. BrowserCapabilities.tables gibt ein TRUE zurück, wenn der Web-Browser Tabellen unterstützt.
Tabelle 5.2: Informationen, die die Browser-Capabilities-Komponente zurückgeben kann
Schlüsselwort |
Beschreibung |
browser |
Name des Web-Browsers |
platform |
Benutztes Betriebssystem |
version |
Version des Web-Browsers |
majorver |
Major-Versions-Nummer |
minorver |
Minor-Versions-Nummer |
frames |
Fragt den Browser nach Frame-Unterstützung |
tables |
Fragt den Browser nach Tabellenunterstützung |
cookies |
Fragt nach der Browser-Unterstützung für Cookies |
backgroundsounds |
Fragt nach der Browser-Unterstützung für Hintergrundmusik |
vbscript |
Fragt nach der Browser-Unterstützung von VBScript |
javascript |
Fragt nach der Browser-Unterstützung von JavaScript |
Die Applikation aus Listing 5.3 gibt Auskunft über die Fähigkeiten des Web-Browsers (siehe Abbildungen 5.4 und 5.5).
Listing 5.3: Capabilities (Fähigkeiten) eines Browsers feststellen
1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <HTML>
4: <HEAD>
5: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
6: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
7: <TITLE>Determining Capabilities Of The Browser</TITLE>
8: </HEAD>
9:
10: <BODY BGCOLOR=FFFFFF>
11:
12: <H2>
13: The Browser Capabilities Component can be used
14: to determine the capabilities of the browser.
15: </H2>
16:
17:
18: <% Set BrowserCapabilities = Server.CreateObject
("MSWC.BrowserType") %>
19:
20: <TABLE>
21: <TR>
22: <TD>
23: Name of the Web browser
24: </TD>
25: <TD>
26: <%= BrowserCapabilities.browser %>
27: </TD></TR>
28: <TR><TD>
29: Operating system being used
30: </TD>
31: <TD>
32: <%= BrowserCapabilities.platform %>
33: </TD></TR>
34: <TR><TD>
35: Version of the Web browser
36: </TD>
37: <TD>
38: <%= BrowserCapabilities.version %>
39: </TD></TR>
40: <TR><TD>
41: Major version number
42: </TD>
43: <TD>
44: <%= BrowserCapabilities.majorver %>
45: </TD></TR>
46: <TR><TD>
47: Minor version number
48: </TD>
49: <TD>
50: <%= BrowserCapabilities.minorver %>
51: </TD></TR>
52: <TR><TD>
53: Does the Web browser support frames?
54: </TD>
55: <TD>
56: <%If BrowserCapabilities.frames Then %>
57: True
58: <%Else %>
59: False
60: <%End If%>
61: </TD></TR>
62: <TR><TD>
63: Does the Web browser support tables?
64: </TD>
65: <TD>
66: <%If BrowserCapabilities.tables Then%>
67: True
68: <%Else %>
69: False
70: <%End If%>
71: </TD></TR>
72: <TR><TD>
73: Does the Web browser support cookies?
74: </TD>
75: <TD>
76: <%If BrowserCapabilities.cookies Then%>
77: True
78: <%Else %>
79: False
80: <%End If%>
81: </TD></TR>
82: <TR><TD>
83: Does the Web browser support background sounds?
84: </TD>
85: <TD>
86: <%If BrowserCapabilities.backgroundsounds Then%>
87: True
88: <%Else %>
89: False
90: <%End If%>
91: </TD></TR>
92: <TR><TD>
93: Does the Web browser support VBScript?
94: </TD>
95: <TD>
96: <%If BrowserCapabilities.vbscript Then%>
97: True
98: <%Else %>
99: False
100: <%End If%>
101: </TD></TR>
102: <TR><TD>
103: Does the Web browser support JavaScript?
104: </TD>
105: <TD>
106: <%If BrowserCapabilities.javascript Then%>
107: True
108: <%Else %>
109: False
110: <%End If%>
111: </TD>
112: </TR>
113: </TABLE>
114:
115: </BODY>
116: </HTML>
Abbildung 5.4: |
Abbildung 5.5: |
Sie wissen jetzt, wie Sie die Browser-Capabilities-Komponente anwenden können, um die Fähigkeiten des jeweiligen Browsers festzustellen. Benutzen Sie diese Komponente, um den unterschiedlichen Browsern mit deren Fähigkeiten und Funktionen erfolgreich begegnen zu können.
Die Text-Stream-Komponente gestattet Ihren ASP-Applikationen Zugriff auf das File-System des Servers. Diese Komponente wurde erstellt, um auf einfache Weise Text-Streams innerhalb von ASP-Applikationen zu steuern. Die Text-Stream-Komponente benutzt das FileSystem-Objekt, um Text-Streams zu Dateien zu schreiben bzw. aus ihnen zu lesen. Dieses Objekt hat zwei Methoden, die dazu benutzt werden können, Text-Streams zu manipulieren:
Es ist möglich, zwei oder mehrere Kopien einer Applikation zur selben Zeit ablaufen zu lassen. In Fällen wie diesen benutzen Sie bitte File-Lokking, um gleichzeitige Zugriffe auf diese Datei zu Zwecken der Modifikation zu verhindern. |
Bevor Methoden des Objektes FileSystem benutzt werden können, muß das Objekt mit den folgenden ASP-Statements versehen werden.
Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
Nachdem das FileSystem-Objekt initiiert wurde, können Sie die CreateTextFile-Methode oder die OpenTextFile-Methode benutzen, um Text-Streams zu manipulieren.
Eigenschaften des TextStreams-Objekts
Wenn ein Text-Stream gelesen wird, können die Eigenschaften des TextStream-Objektes (siehe Tabelle 5.3) dazu benutzt werden, um ihre aktuelle Position in der Datei festzustellen.
Tabelle 5.3: Die Eigenschften des TextStream-Objekts
Eigenschaft |
Beschreibung |
Diese Eigenschaft wird benutzt, um festzustellen, ob Sie sich am Ende einer Zeile befinden, wenn Sie die Zeichen eines Text-Streams auslesen. Diese Eigenschaft ist sehr hilfreich, wenn Sie ein Zeichen einer Datei lesen - mit Hilfe der Read-Methode. | |
Diese Eigenschaft stellt fest, ob Sie sich am Ende eines Text-Streams befinden, und benutzt die ReadLine-Methode, um eine Zeile einzulesen. | |
Diese Eigenschaft stellt fest, wie viele Zeichen von Zeilenbeginn an eingelesen wurden. | |
Bezeichnet die Anzahl der Zeilen, die Sie bisher gelesen haben. |
Die Methoden des TextStream-Objekts
Zusätzlich zur Close-Methode besitzt das TextStream-Objekt Methoden, die zum Lesen, Schreiben und zum Überspringen von Text gedacht sind. Die Close-Methode schließt ein TextStream-Objekt. Die Tabellen 5.4 bis 5.6 zeigen verschiedene Methoden des TextStream-Objekts.
Tabelle 5.4: Die Methoden des TextStream-Objektes, die benutzt werden, um Informationen zu lesen
Methode |
Beschreibung |
Read |
Wird benutzt, um einen Text zeichenweise einzulesen. |
ReadAll |
Diese Methode sollte nicht für sehr große Dateien benutzt werden. Die ReadAll-Methode lädt den aktuellen TextStream in den Arbeitsspeicher. |
ReadLine |
Liest die aktuelle Zeile eines Textes ein. |
Tabelle 5.5: Die Methoden des TextStream-Objektes, um Informationen in den
Ausgabe-Stream zu schreiben
Methode |
Beschreibung |
Write |
Schreibt einen String mit Zeichen in den Ausgabe-Stream |
WriteLine |
Schreibt einen String mit Zeichen in den Ausgabe-Stream, der von einem Return gefolgt wird. |
WriteBlankLines |
Wird benutzt, um eine Leerzeile einzufügen. Mittels Parameter kann die Anzahl der Leerzeilen definiert werden. |
Tabelle 5.6: Die Methoden des TextStream-Objektes, um Zeilen zu überspringen
Methode |
Beschreibung |
Skip |
Überspringt eine definierte Anzahl von Zeichen. |
SkipLine |
Überspringt die aktuelle Zeile und fährt mit der nächsten Zeile fort. |
Die Benutzung der CreateTextFile-Methode
Diese Methode erstellt eine Text-Datei. Nachdem die Datei erstellt wurde, gibt die Methode CreateTextFile ein TextStream-Objekt aus, das dazu benutzt werden kann, Text zu lesen oder zu schreiben. Die Syntax der Methode lautet wie folgt:
Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
FileStreamObject.CreateTextFile (<NameOfFile>,<Overwrite>, <Unicode>)
<NameOfFile> ist der Name der Datei, die erstellt wurde. <Overwrite> beinhaltet einen Booleschen Wert. Ist dieser Wert TRUE, so wird das bestehende File überschrieben. Sollte der Wert FALSE sein, besteht keine Notwendigkeit, die entsprechende Datei zu überschreiben. Ebenso verhält es sich mit <Unicode>, das einen Booleschen Wert enthält. Ist der Wert TRUE, dann handelt es sich um eine Unicode-Datei; sollte der Wert FALSE sein, dann handelt es sich um eine ASCII-Datei. Für die meisten Anwendungsgebiete dürften ASCII-Daten durchaus ausreichend sein. Benutzen Sie Unicode nur, wenn die Möglichkeiten von ASCII ausgeschöpft sind.
Die ASP-Applikation aus Listing 5.4 erstellt eine Text-Datei mit der Bezeichnung TextFile.txt und gibt den String Hello World! aus.
Listing 5.4: Die CreateTextFile-Methode
1: Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
2: Set WriteStream = FileStreamObject.CreateTextFile
("TextFile.txt", True)
3: WriteStream.WriteLine("Hello World!")
4: WriteStream.Close
Die Benutzung der OpenTextFile-Methode
Diese Methode kann benutzt werden, um eine Text-Datei auszulesen oder Textfragmente dieser anzuhängen. Die Syntax lautet wie folgt:
Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
Set TextStream = FileStreamObject.OpenTextFile (<FileName>, <Mode>,<Create>)
Die Parameter <Mode> und <Create> sind optional. |
<FileName> ist der Name der Datei, welches geöffnet ist. <Mode> wird benutzt, um den Input/Output-Modus des Text-Streams zu spezifizieren. Dateien können entweder in einem Input- oder Output-Modus geöffnet werden. Ersetzen Sie <Mode> durch ForReading, um eine Datei zum Lesen zu öffnen (Input), bzw. durch ForAppending, um eine Datei zu öffnen und einen Text anzuhängen. <Create> ist ein optionales Boolesches Argument, das feststellt, ob eine neue Datei erstellt werden soll, wenn <FileName> nicht existiert. Ersetzen Sie <Create> durch TRUE, um eine neue Datei zu erstellen, falls <FileName> nicht existiert. Ersetzen Sie <Create> durch FALSE, wenn dem nicht so ist.
Die ASP-Applikation aus Listing 5.4 erstellt eine Text-Datei mit der Bezeichnung TextFile.txt und gibt den String Hello World! aus. Nachdem dies geschehen ist, liest und gibt die Applikation den Inhalt von TextFile.txt aus (siehe Abbildung 5.6).
Listing 5.5: Die OpenTextFile-Methode
1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <HTML>
4: <HEAD>
5: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
6: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
7: <TITLE>Manipulating Text Streams</TITLE>
8: </HEAD>
9: <BODY BGCOLOR=FFFFFF>
10:
11: <H2>
12: The FileSystemObject can be used to manipulate
13: text streams.
14: </H2>
15:
16: <H3>
17: Now creating "TextFile.txt" ...
18: </H3>
19:
20: <%
21: Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
22: Set WriteStream = _
23: FileStreamObject.CreateTextFile(Server.MapPath ("/ASP/Chapter-05") _
24: & "\TextFile.txt", True)
25: WriteStream.WriteLine("Hello World!")
26: WriteStream.Close
27:
28: %>
29:
30: <H3>
31: Now reading and displaying the contents of "TextFile.txt" ...
32: </H3>
33:
34: <%
35: Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
36: Set ReadStream = FileStreamObject.OpenTextFile ( _
37: Server.MapPath ("/ASP/Chapter-05") _
38: & "\TextFile.txt", 1)
39:
40: While not ReadStream.AtEndOfStream
41: Response.Write ReadStream.Readline
42: ReadStream.SkipLine()
43: Wend
44: Set ReadStream=Nothing
45: %>
46:
47: </BODY>
48: </HTML>
FileSystemObject erstellt eine neue Datei im aktuellen Verzeichnis. Änderungen jedweder Art beziehen sich immer nur auf das jeweilige aktuelle Verzeichnis. Um eine Suche nach den neu erstellten Dateien auf Ihrer Festplatte zu vermeiden, sollten Sie die Server.MapPath-Methode verwenden, die einen relativen Pfadnamen zum Dokumentenhauptverzeichnis Ihres Web-Servers spezifiziert. Die Zeilen 23 bis 24 des Listings 5.5 zeigen Ihnen ein Beispiel, wie diese Methode angewendet wird, um den Pfad zur Datei TextFile.txt zu spezifizieren. |
Abbildung 5.6: |
Zusammenfassung
Die in ASP integrierten Komponenten machen es einfacher, komplexe Web-Applikationen zu erstellen. Die Advertisement-Rotator-Komponente kann dazu benutzt werden, um eine Serie von Grafiken auf dem Bildschirm zyklisch rotieren zu lassen. Die Browser-Capabilities-Komponente wird benutzt, um festzustellen, über welche Fähigkeiten der Client-Browser verfügt. Dank dieser Komponente können Sie Ihre Web-Seiten den verschiedenen am Markt befindlichen Browsern anpassen. Verschiedene Text-Streams können eine ASP-Applikation manipulieren und beeinflussen. Eine Komponente dafür ist ebenfalls in ASP integriert.
Was kommt als nächstes?
Das HTTP-Protokoll behält keine Informationen über die letzte HTTP-Seite für zukünftige Transaktionen. Cookies werden benutzt, um diese Einschränkung des HTTP-Protokolls zu umgehen. Avctive Server Pages erleichtern die Manipulation von Cookies auf einfache Weise. Im nächsten Kapitel sehen Sie, wie es möglich ist, Web-Applikationen zu entwickeln, die Informationen zwischen verschiedenen HTTP-Sessions behalten. Cookies können Verwendung finden, um komplizierte Web-Applikationen, wie beispielsweise Shopping-Lösungen oder personalisierte Web-Seiten, zu erstellen.
Fragen und Antworten
Frage:
Welche Methode des FileSystem-Objekts kann benutzt werden, um einen Text anzuhängen?
Antwort:
Die OpenTextFile-Methode bietet diese Möglichkeit.
Frage:
Soll ich den ASCII- oder Unicode-Modus verwenden, um eine einfache Text-Datei zu erstellen?
Antwort:
Der ASCII-Modus ist die bevorzugte Methode an dieser Stelle.
Frage:
Welches ASP-Statement soll ich benutzen, um eine Text-Datei mit der Bezeichnung NumVisits.txt zu erstellen, falls diese nicht existiert?
Antwort:
Der folgende ASP-Code erstellt eine Text-Datei mit der Bezeichnung NumVisits.txt, die noch nicht existiert:
1: Set FileStreamObject = CreateObject("Scripting.FileSystemObject")
2: Set WriteStream = FileStreamObject.CreateTextFile("NumVisits.txt", ¬False)
Aufgaben
1. Erstellen Sie eine ASP-Applikation, die ein Gästebuch implementiert und im Rahmen dessen eine Text-Datei benutzt.
2. Erstellen Sie eine ASP-Applikation, die den Namen des jeweiligen Web-Browsers einer Text-Datei hinzufügt, sobald die Applikation aufgerufen wird. Die Applikation soll eine neue Text-Datei erstellen, die noch nicht existiert und das Format MMDDYYYY hat. Eine Datei, die am 15. Juli 1997 erstellt wurde, soll beispielsweise die Bezeichnung 07151997.txt haben.
Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH.