ASP-Global.asa-Datei
- Vorherige Seite ASP #include
- Nächste Seite ASP-E-Mail
Eine Global.asa-Datei ist eine optionale Datei, die Objekte, Variablen und Methoden deklariert, die von jeder Seite der ASP-Anwendung aufgerufen werden können. Alle gültigen Browser-Skripte können in Global.asa verwendet werden.
Global.asa-Datei
Eine Global.asa-Datei ist eine optionale Datei, die Objekte, Variablen und Methoden deklariert, die von jeder Seite der ASP-Anwendung aufgerufen werden können. Alle gültigen Browser-Skripte können in Global.asa verwendet werden.
Ein Global.asa-Datei kann folgende Inhalte enthalten:
- Application-Event
- Session-Event
- <object>-Deklaration
- TypeLibrary-Deklaration
- Include-Anweisung
Anmerkung:Der Global.asa-Datei muss im Stammverzeichnis der ASP-Anwendung gespeichert werden und jede Anwendung kann nur eine Global.asa-Datei haben.
Event in Global.asa
In der Datei Global.asa können wir mitteilen, was die application- und session-Objekte beim Start und Beenden tun sollen. Der Code, der diese Aufgabe erledigt, wird in den Ereignis-Handler gelegt. Die Datei Global.asa kann vier Arten von Ereignissen enthalten:}}
Application_OnStart - Dieses Ereignis tritt ein, wenn der erste Benutzer die erste Seite seiner ASP-Anwendung aufruft. Dieses Ereignis tritt ein, wenn der Web-Server neu gestartet wird oder die Datei Global.asa geändert wird. Das "Session_OnStart"-Ereignis tritt sofort nach diesem Ereignis auf.
Session_OnStart - Dieses Ereignis tritt ein, wenn ein neuer Benutzer die erste Seite seiner ASP-Anwendung anfordert.
Session_OnEnd - Dieses Ereignis tritt ein, wenn ein Benutzer seine Session beendet. Wenn innerhalb einer bestimmten Zeit (Standardereignis ist 20 Minuten) keine Seite angefordert wird, endet die Session.
Application_OnEnd - Dieses Ereignis tritt ein, nachdem der letzte Benutzer seine Session beendet hat. Ein typisches Szenario ist, dass dieses Ereignis beim Beenden des Web-Servers auftritt. Dieser Sub-Prozess wird verwendet, um nach dem Beenden der Anwendung Einstellungen zu löschen, z.B. Datenbanken zu löschen oder Informationen in eine Textdatei zu schreiben.
Die Datei Global.asa könnte so aussehen:
<script language="vbscript" runat="server"> sub Application_OnStart 'some code end sub sub Application_OnEnd 'some code end sub sub Session_OnStart 'some code end sub sub Session_OnEnd 'some code end sub </script>
Anmerkung:Da Script-Separator (<% und %>) in der Datei Global.asa nicht verwendet werden können, müssen wir den HTML <script>-Element verwenden.
<object>-Deklaration
Sie können Objekte mit session- oder application-Bereich durch den Einsatz des <object>-Tags in der Datei Global.asa erstellen.
Anmerkung:Der <object>-Tag sollte außerhalb des <script>-Tags platziert werden.
Syntax:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Parameter | Beschreibung |
---|---|
scope | Stellen Sie den Bereich (Bereich) des Objekts ein (Session oder Application). |
id | Spezifizieren Sie eine eindeutige ID für das Objekt. |
ProgID |
ID, die mit der ClassID verbunden ist. Der Format der ProgID ist: [Vendor.]Component[.Version]. Der ProgID oder ClassID muss angegeben werden. |
ClassID |
Spezifizieren Sie eine eindeutige ID für das COM-Klassenobjekt. Der ProgID oder ClassID muss angegeben werden. |
Instanz
Der erste Instanz hat ein Objekt namens "MyAd" erstellt und verwendet den ProgID-Parameter für den session-Objektbereich:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Der zweite Instanz hat ein Objekt namens "MyConnection" erstellt und verwendet den ClassID-Parameter.
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
Diese Objekte, die in dieser Global.asa-Datei deklariert werden, können von jedem Skript in der Anwendung verwendet werden.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Sie können das "MyAd"-Objekt von jeder Seite der ASP-Anwendung referenzieren:
Ein .ASP-Datei:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary-Deklaration
TypeLibrary (Typenbibliothek) ist ein Container, der die DLL-Dateien enthält, die auf COM-Objekte zutreffen. Durch das Einbinden von Aufrufen auf die TypeLibrary in Global.asa können die Konstanten der COM-Objekte aufgerufen werden, und das ASP-Code kann besser Fehler melden. Wenn die Anwendung Ihrer Website von COM-Objekten abhängt, die in der Typenbibliothek bereits deklariert wurden, können Sie die Typenbibliothek in Global.asa deklarieren.
Syntax:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Parameter | Beschreibung |
---|---|
file | Definiert den absoluten Pfad zur Typbibliothek. Parameter file oder uuid, einer von beiden ist obligatorisch. |
uuid | Definiert den eindeutigen Identifikator für die Typbibliothek. Parameter file oder uuid, einer von beiden ist obligatorisch. |
version | Optional. Wird verwendet, um die Version auszuwählen. Wenn die angegebene Version nicht gefunden wird, wird die nächste Version verwendet. |
lcid | Optional. Landkennung für die Typbibliothek. |
Fehlerwert
Der Server wird eine der folgenden Fehlermeldungen zurückgeben:
Fehler | Code | Beschreibung |
---|---|---|
ASP | 0222 | Ungültige Typbibliotheksspezifikation |
ASP | 0223 | Type library not found |
ASP | 0224 | Type library cannot be loaded |
ASP | 0225 | Type library cannot be wrapped |
Anmerkung:Der METADATA-Tag kann an jedem Ort der Datei Global.asa platziert werden (sowohl innerhalb als auch außerhalb des <script>-Tags). Wir empfehlen jedoch, den METADATA-Tag am Anfang der Datei Global.asa zu platzieren.
Beschränkungen
Beschränkungen bezüglich des Inhalts, der in der Datei Global.asa zitiert werden kann:
Man kann den Text in der Datei Global.asa nicht anzeigen. Diese Datei kann keine Informationen anzeigen.
Man kann nur die Server- und Application-Objekte in den Unterprogrammen Application_OnStart und Application_OnEnd verwenden. In dem Unterprogramm Session_OnEnd können Server, Application und Session-Objekte verwendet werden. Im Unterprogramm Session_OnStart können alle eingebauten Objekte verwendet werden.
Wie man Unterprogramme verwendet
Global.asa wird oft zur Initialisierung von Variablen verwendet.
Das folgende Beispiel zeigt, wie das genaue Eintreffen eines Besuchers auf die Website ermittelt wird. Die Zeit wird im als "started" bezeichneten Session-Objekt gespeichert und der Wert von "started" kann von jeder ASP-Seite im Anwendungskontext abgerufen werden:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa kann auch zur Kontrolle des Zugangs zu Seiten verwendet werden.
Das folgende Beispiel zeigt, wie jeder neue Besucher auf eine andere Seite umgeleitet wird, in diesem Beispiel wird auf die Seite "newpage.asp" umgeleitet:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Wir können auch Funktionen in Global.asa enthalten.
Im folgenden Beispiel wird, wenn der Web-Server startet, auch der Unterprogramm Application_OnStart gestartet. Anschließend ruft der Unterprogramm Application_OnStart ein weiteres Unterprogramm namens "getcustomers" auf. Das Unterprogramm "getcustomers" öffnet eine Datenbank und holt eine Datensatzgruppe aus der Tabelle "customers" zurück. Diese Datensatzgruppe wird einem Array zugewiesen, so dass jede ASP-Seite ohne Abfrage der Datenbank auf dieses Array zugreifen kann:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Global.asa-Beispiel
In diesem Beispiel erstellen wir eine Global.asa-Datei, die die aktuellen Besucher zählen kann.
Application_OnStart setzt den Wert der Application-Variable "visitors" auf 0, wenn der Server startet.
Wenn ein neuer Benutzer den Zugriff hat, wird das Unterprogramm Session_OnStart die Variable "visitors" um 1 erhöhen.
Wenn der Unterprogramm Session_OnEnd ausgelöst wird, wird von der Variable "visitors" 1 abgezogen.
Global.asa-Datei:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
Diese ASP-Datei zeigt die Anzahl der aktuellen Benutzer an:
<html> <head> </head> <body> <p>Es gibt <%response.write(Application("visitors"))%> online!</p> </body> </html>
- Vorherige Seite ASP #include
- Nächste Seite ASP-E-Mail