ASP-Vorlesungsreihe (7) Verwendung von Komponenten und Objekten
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:59:15
ActiveX-Komponenten sind der Schlüssel zum Erstellen leistungsstarker Webanwendungen. Komponenten stellen Objekte bereit, die in Skripts zum Ausführen von Aufgaben verwendet werden. ASP bietet außerdem integrierte Objekte, die in Skripten verwendet werden können. In diesem Thema wird erläutert, wie von Komponenten bereitgestellte Objekte sowie integrierte Objekte verwendet werden, die direkt von Active Server Pages bereitgestellt werden.
Über Komponenten
Eine ActiveX-Komponente ist eine Datei, die Code enthält, der eine Aufgabe oder eine Reihe von Aufgaben ausführt. Komponenten können allgemeine Aufgaben ausführen, sodass Sie den Code zum Ausführen dieser Aufgaben nicht selbst erstellen müssen. Beispielsweise kann eine Tickerkomponente die neuesten Börsenkurse auf einer Webseite anzeigen. ASP wird mit gebrauchsfertigen Komponenten geliefert, beispielsweise der Datenbankzugriffskomponente. Erhalten Sie optionale Komponenten von Drittentwicklern. Oder Sie können Ihre eigene Komponente schreiben.
Sie können Komponenten als Grundbausteine für Skripte und webbasierte Anwendungen nutzen. Sie müssen lediglich wissen, wie Sie auf das von der Komponente bereitgestellte Objekt zugreifen. Selbst ein unerfahrener Skripter kann Skripts schreiben, ohne zu verstehen, wie Komponenten funktionieren. Zusammenfassend lässt sich sagen, dass Komponenten es Ihnen ermöglichen, leistungsstarke Skripte zu schreiben, ohne Programmieren lernen zu müssen.
Wenn Sie Webanwendungsentwickler sind, können Sie Geschäftslogik kapseln, indem Sie Komponenten schreiben. Sie können beispielsweise eine Komponente schreiben, um die Umsatzsteuer für ein Produkt zu berechnen. Diese Komponente kann dann in Skripten aufgerufen werden, die Kundenaufträge verarbeiten. Durch die eigenständige Berechnung der Steuersätze während der Auftragsabwicklung können Sie nur die Komponente aktualisieren, wenn sich irgendwo die Umsatzsteuer ändert, ohne den gesamten Verarbeitungsprozess ändern zu müssen. Komponenten können in jeder Sprache geschrieben werden, die das Component Object Model (COM) unterstützt, beispielsweise C, C++, Java oder Visual Basic. Wenn Sie mit der COM-Programmierung vertraut sind, ist die ActiveX-Komponente der Automatisierungsserver. Für die Ausführung auf einem Webserver dürfen ActiveX-Komponenten keine grafischen Benutzeroberflächenelemente wie die MsgBox-Funktion von Visual Basic haben.
Komponenten sind wiederverwendbar. Sobald eine Komponente auf einem Webserver installiert ist, kann sie von einem ASP-Skript, einer ISAPI-Anwendung, einer anderen Komponente auf dem Server oder einem in einer anderen COM-kompatiblen Sprache geschriebenen Programm aufgerufen werden.
Eine Instanzkomponente, die ein Komponentenobjekt generiert, ist ausführbarer Code, der in einer Dynamic Link Library (.dll) oder einer ausführbaren Datei (.exe) enthalten ist. Eine Komponente kann ein oder mehrere Objekte sowie deren Methoden und Eigenschaften bereitstellen. Um ein von einer Komponente bereitgestelltes Objekt zu verwenden, erstellen Sie eine Instanz des Objekts und weisen Sie dieser neuen Instanz einen Variablennamen zu. Instanzen von Objekten können mit der Server.CreateObject-Methode von ASP erstellt werden. Als Nächstes verwenden Sie die Variablenzuweisungsanweisungen der Skriptsprache, um die Objektinstanz zu benennen. Beim Erstellen einer Objektinstanz müssen Sie den registrierten Namen (PROGID) der Instanz angeben. Für die von ASP bereitgestellten Basiskomponenten kann die PROGID des Objekts auf der Referenzseite abgerufen werden.
Beispielsweise durchläuft die Ad Rotator-Komponente von ASP grafische Anzeigen in einer Schleife. Die Ad Rotator-Komponente stellt ein Objekt namens Ad Rotator bereit, dessen PROGID „MSWC.AdRotator“ ist. Um eine Instanz eines Ad Rotator-Objekts zu erstellen, verwenden Sie den folgenden Befehl:
VBScript:
<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
JScript:
<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
Wenn Sie mit VBScript oder JScript bereits sehr vertraut sind, werden Sie feststellen, dass es keine Skriptsprachenfunktionen zum Erstellen neuer Objektinstanzen gibt, wie z. B. CreateObject in VBScript oder New in JScript. Sie müssen die Server.CreateObject-Methode von ASP verwenden, andernfalls kann ASP die Verwendung von Objekten in Skriptsprachen nicht nachverfolgen.
Objektinstanzen können auch mit dem HTML-Tag <OBJECT> erstellt werden. Sie müssen den Serverwert für das RUNAT-Attribut und außerdem die ID-Attributgruppe für den Variablennamen angeben, der in der Skriptsprache verwendet wird. Das Objekt kann anhand des Registrierungsnamens (PROGID) oder der Registrierungsnummer (CLSID) identifiziert werden. Das folgende Beispiel erstellt eine Instanz des Ad Rotator-Objekts unter Verwendung des registrierten Namens (PROGID):
<OBJECT RUNAT=Server ID=MyAd PROGID="MSWC.AdRotator"></OBJECT>
Im folgenden Beispiel wird mithilfe der Registrierungsnummer (CLSID) eine Instanz des Ad Rotator-Objekts erstellt:
<OBJECT RUNAT=Server-ID=MyAd
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>
Erstellen eines Objekts aus einer Java-Klasse In der Java-Sprache geschriebene ActiveX-Komponenten können als Java-Klassen anstelle von DLLs übermittelt werden. Um mit Server.CreateObject eine Instanz eines Java-Klassenobjekts zu erstellen, muss die Klasse mit dem Javareg-Programm als COM-Komponente registriert werden. Anschließend können Sie Server.CreateObject mit PROGID oder CLSID verwenden.
Wenn die Objektinstanz nicht auf integrierte ASP-Objekte zugreifen und an Transaktionen teilnehmen muss, kann sie die Java-Klasse direkt aufrufen, indem sie den einfacheren Mechanismus des Java-Monitors verwendet. Sie müssen die Microsoft Virtual Machine für Java 2.0 (bereitgestellt durch die Distribution von Internet Information Server und Personal Web Server) verwenden, um den Java-Monitor verwenden zu können.
Wenn Sie einen Monitor zum Instanziieren eines Objekts verwenden möchten, müssen Sie den VBScript- oder JScript-GetObject-Befehl verwenden und den vollständigen Namen der Java-Klasse in der Form java:classname angeben. Das folgende VBScript-Beispiel generiert eine Instanz eines Java Date-Objekts.
<%
Dunkles Datum
Datum festlegen = GetObject("java:java.util.Date")
%>
<p> Das Datum ist <%= date.toString() %>
Objekte, die durch den Aufruf von GetObject anstelle von Server.CreateObject generiert werden, können nicht auf integrierte ASP-Objekte zugreifen und nicht an Transaktionen teilnehmen.
Verwendung integrierter ASP-Objekte
ASP stellt integrierte Objekte bereit, die Aufgaben ausführen. Das Request-Objekt speichert beispielsweise Referenzen aus HTML-Tabellen.
Aufrufen von Objektmethoden Methoden sind Aktivitäten, die an oder unter Verwendung eines Objekts ausgeführt werden können. Die allgemeine Syntax zum Aufrufen einer Methode lautet:
Object.Method-Parameter
Die Parameter variieren von Methode zu Methode.
Sie können beispielsweise die Write-Methode des integrierten Response-Objekts verwenden, um Informationen an den Browser zu senden, indem Sie die folgenden Anweisungen befolgen:
<% Response.Write „Hello World“ %>
Beachten Sie, dass einige Skriptsprachen die Object.Method-Syntax nicht unterstützen. Wenn die von Ihnen verwendete Sprache diese Syntax nicht unterstützt, müssen Sie einen Eintrag in der Registrierung vornehmen, um diese Sprache als primäre Skriptsprache zu verwenden.
Objekteigenschaften festlegen Eigenschaften sind charakteristische Werte, die ein Objekt beschreiben. Eigenschaften definieren Eigenschaften eines Objekts (z. B. Objekttyp) oder den Status eines Objekts (z. B. aktiviert oder deaktiviert). Die allgemeine Syntax lautet:
Objekt.Eigenschaft
Eigenschaftswerte können gelesen und eingestellt werden. Für einige Objekte können auch neue Eigenschaften hinzugefügt werden.
Beispielsweise verfügt die Ad Rotator-Komponente über eine Border-Eigenschaft, die angibt, ob die Anzeige einen Rahmen hat und wie dick der Rahmen ist. Der folgende Ausdruck gibt keinen Rahmen an:
<% MyAds.Border = 0 %>
Mit der ASP-Ausgabedirektive können Sie die aktuellen Werte bestimmter Eigenschaften anzeigen. Der folgende Befehl gibt beispielsweise TRUE zurück, wenn der Browser noch mit dem Server verbunden ist:
<%= Response.IsClientConnected %>