In der veröffentlichten Serie haben wir zwei ASP -Objekte erörtert: Anwendungsobjekte und Sitzungsobjekt, sodass wir auf Sammlungen, Methoden, Eigenschaften und Ereignisse zugreifen können, die vom Anwendungsobjekt- und Sitzungsobjekt bereitgestellt werden. In diesem Abschnitt werden diese beiden Objekte aus der Perspektive der Programmierung untersucht.
· Erstellen Sie ein Anwendungsobjekt, wenn eine ASP -DLL geladen wird und die erste Anforderung an eine ASP -Webseite beantwortet wird. Dieses Objekt bietet einen Speicherplatz zum Speichern von Variablen und Objekten, die für alle von allen Besuchern eröffneten Webseiten zur Verfügung stehen.
· Wenn ein Besucher zum ersten Mal eine ASP -Seite von der Website anfordert, erstellen Sie ein Sitzungsobjekt für ihn und bleiben bis zum Standardzeitleitungszeitraum (oder der vom Skript festgelegte Zeitüberschreitungszeitraum) gültig. Das Objekt bietet einen Speicherplatz zum Speichern von Variablen und Objekten, die nur für Webseiten verfügbar sind, die während der Aktivität der Sitzung vom Besucher geöffnet wurden.
Beziehung
1. Überblick über ASP -Anwendungsobjektmitglieder
In diesem Abschnitt werden die Sammlung, Methoden und Ereignisse von Anwendungsobjekten beschrieben (die Anwendungsobjekte haben keine Eigenschaften). Das Sitzungsobjekt (mit Eigenschaften) wird im nächsten Abschnitt erläutert. Dann werden wir weiterhin die mit diesen Objekten erfüllten Aufgaben untersuchen und ausführlicher erklären, wie jedes Mitglied jedes Objekts funktioniert.
1. Sammlung von Anwendungsobjekten
Das Anwendungsobjekt enthält zwei Sammlungen, mit denen Variablen und Objekte im globalen Anwendungsraum zugreifen können. Die Sammlung und Beschreibung lautet wie folgt:
Sammlung und Beschreibung von Tabellenanwendungsobjekten
| versammeln | veranschaulichen |
| Inhalt | Es gibt keine Menge aller Variablen (und ihrer Werte), die im Anwendungsobjekt gespeichert sind, das mit dem <Object> -Element definiert ist. Enthält Verweise auf Variantenarrays und Objektinstanzen vom Varianten -Typ |
| StaticObjects | Eine Sammlung aller Variablen (und ihrer Werte), die im Anwendungsobjekt gespeichert sind, das mit dem <Objekt> -Element definiert ist |
2. Methoden von Anwendungsobjekten
Die Anwendungsobjektmethode ermöglicht das Löschen von Werten im globalen Anwendungsraum und steuert den gleichzeitigen Zugriff auf Variablen in diesem Bereich. Die Methoden und Anweisungen sind in der folgenden Tabelle angezeigt:
Methoden und Beschreibungen von Tabellenanwendungsobjekten
| Verfahren | veranschaulichen |
| Contents.remove (variable_name) | Entfernen Sie eine Variable namens Variable_Name aus der Anwendung.Content Collection |
| Inhalt.removeall () | Löschen Sie alle Variablen aus der Anwendung.Content Collection |
| Sperren() | Sperren Sie das Anwendungsobjekt so, dass nur die aktuelle ASP -Seite auf den Inhalt zugreifen kann. Wird verwendet, um sicherzustellen, dass gleichzeitige Operationen mit Methoden durchgeführt werden, mit denen zwei Benutzer den Wert gleichzeitig lesen und ändern können |
| Entsperren () | Schalten Sie ASP -Webseiten auf Anwendungsobjekten frei |
Beachten Sie, dass Variablen nicht aus der Anwendung gelöscht werden können. StaticObjects Collection während der Laufzeit.
3. Ereignisse von Anwendungsobjekten
Das Anwendungsobjekt enthält zwei Ereignisse, die beim Starten und Ende ausgelöst werden, wie in der folgenden Tabelle gezeigt:
Ereignisse und Beschreibungen von Tabellenanwendungsobjekten
| Ereignis | veranschaulichen |
| OnStart | Ausgelöst, wenn ASP startet, bevor der Benutzer die auszuführende Webseite anfordert und bevor ein Benutzer das Sitzungsobjekt erstellt wird. Wird verwendet, um Variablen zu initialisieren, Objekte zu erstellen oder einen anderen Code auszuführen |
| Betreten | Ausgelöst, wenn die ASP -Anwendung endet. Tritt nach, nachdem die letzte Benutzersitzung beendet ist und der gesamte Code im berührten Ereignis dieser Sitzung ausgeführt wurde. Am Ende werden alle in der Anwendung vorhandenen Variablen abgebrochen |
ASPs Session -Objekt -Mitglieds -Übersicht
In diesem Abschnitt werden alle Mitglieder eines Sitzungsobjekts beschrieben.
1. Sammlung von Sitzungsobjekten
Das Sitzungsobjekt enthält zwei Sätze, mit denen Variablen und Objekte im lokalen Sitzungsraum des Benutzers zugreifen können. Diese Sammlungen und Beschreibungen sind in der folgenden Tabelle angezeigt:
Setzen und Beschreibung von Tabellensitzungsobjekten
| versammeln | veranschaulichen |
| Inhalt | Eine Sammlung aller Variablen und deren Werte, die in diesem bestimmten Sitzungsobjekt gespeichert sind, und diese Variablen und Werte werden mit <Object> Elementen nicht definiert. Enthält Verweise auf Variantenarrays und Objektinstanzen vom Varianten -Typ |
| StaticObjects | Eine Sammlung aller in diesem Sitzungsobjekt gespeicherten Variablen |
2. Merkmale von Sitzungsobjekten
Das Sitzungsobjekt bietet vier Eigenschaften. Diese Eigenschaften und Beschreibungen sind in der folgenden Tabelle angezeigt:
Tabelle 3-7 Eigenschaften und Beschreibungen von Sitzungsobjekten
| Eigentum | veranschaulichen |
| Codepage | Lesen/Schreiben. Ganze Zahl. Definiert die Codeseite zum Anzeigen von Seiteninhalten im Browser. Codeseiten sind numerische Werte eines Zeichensatzes, und verschiedene Codeseiten können in verschiedenen Sprachen und Orten verwendet werden. Zum Beispiel wird ANSI -Code Seite 1252 in amerikanischen Englisch und den meisten europäischen Sprachen verwendet. Code Seite 932 wird für japanische Zeichen verwendet |
| Lcid | Lesen/Schreiben. Ganze Zahl. Definiert die Seitenbereichs -ID (LCID), die an den Browser gesendet wurde. LCID ist eine internationale Standardabkürzung, die eine Region eindeutig identifiziert. LCID kann auch bei Formatträumen und anderen Aussagen verwendet werden, solange ein optionaler LCID -Parameter vorliegt. LCID kann auch in der ASP -Verarbeitungsanweisung <%& hellip;%> festgelegt werden und hat Vorrang vor den Einstellungen im LCID -Attribut der Sitzung. Dieses Kapitel enthält später eine Liste der ASP -Verarbeitungsanweisungen |
| Sitzung | Schreibgeschützte. Lange Form. Gibt die Sitzungskennung für diese Sitzung zurück, die beim Erstellen der Sitzung vom Server generiert wird. Nur eindeutig während der gesamten Lebensdauer des übergeordneten Anwendungsobjekts, kann sie wiederverwendet werden, wenn eine neue Anwendung beginnt |
| Time-out | Lesen/Schreiben. Ganze Zahl. Definieren Sie eine Zeitlimitzeit in Minuten für diese Sitzung. Wenn der Benutzer während der Zeitlimitzeit keine Webseite aktualisiert oder anfordert, endet die Sitzung. Sie können es nach Bedarf auf jeder Webseite ändern. Der Standardwert beträgt 10 Minuten. Diese Zeit sollte auf Websites mit hoher Verwendung kürzer sein |
3. Methoden der Sitzungsobjekte
Das Sitzungsobjekt ermöglicht das Entfernen bestimmter Werte aus dem Sitzungsraum auf Benutzerebene und beendet die Sitzung nach Bedarf. Die Methoden und Beschreibungen des Säsionsobjekts sind in der folgenden Tabelle angezeigt:
Methoden und Beschreibungen von Tabellensitzungsobjekten
| Verfahren | veranschaulichen |
| Contents.remove (variable_name) | Entfernen Sie eine Variable namens Variable_Name aus der Sammlung von Sitzung.Content |
| Inhalt.removeall () | Entfernen Sie alle Variablen aus der Sammlung von Sitzung.Content |
| Aufgeben() | Wenn die Ausführung der Webseite abgeschlossen ist, wird die aktuelle Benutzersitzung beendet und das aktuelle Sitzungsobjekt undokumentiert. Aber selbst nachdem die Methode aufgerufen wurde, können auf die Variablen der aktuellen Sitzung auf der Seite zugegriffen werden. Wenn der Benutzer die nächste Seite anfordert, wird eine neue Sitzung gestartet und ein neues Sitzungsobjekt erstellt (falls vorhanden) Beachten Sie, dass Variablen nicht aus der Sitzung gelöscht werden können. StaticObjects Collection während der Laufzeit. |
4. Ereignisse von Sitzungsobjekten
Das Sitzungsobjekt enthält zwei Ereignisse, die beim Start und Ende ausgelöst werden, wie in Tabelle 3-9 gezeigt:
Tabelle 3-9 Ereignisse und Beschreibungen von Sitzungsobjekten
| Ereignis | veranschaulichen |
| OnStart | Ausgelöst, wenn die ASP -Benutzersitzung beginnt, bevor die vom Benutzer angeforderte Webseite ausgeführt wird. Wird verwendet, um Variablen zu initialisieren, Objekte zu erstellen oder einen anderen Code auszuführen. |
| Betreten | Ausgelöst, wenn die ASP -Benutzersitzung endet. Ausgehend von der letzten Seitenanforderung des Benutzers zur Anwendung wird das Ereignis ausgelöst, wenn der Zeitlimit -Zeitüberschreitungszeitraum überschritten wurde. Wenn die Sitzung endet, stornieren Sie alle Variablen in dieser Sitzung. Dieses Ereignis wird ebenfalls ausgelöst, wenn die Aufgabe -Methode verwendet wird, um eine ASP -Benutzersitzung im Code zu beenden |
Ereignisse mit Anwendung und Sitzung
Die Anwendungs- und Sitzungsobjekte von ASP spiegeln Funktionen wider, die andere ASP-integrierte Objekte nicht haben. Wie jedoch in der vorherigen Objektmitgliedstabelle zu sehen ist, sind dies Ereignisse, die sich auf die ASP -Sitzung und die Arbeit der Anwendung beziehen.
1. Ereignishandler für Anwendung und Sitzung
Wenn eine Anwendung oder Sitzung beginnt oder endet, löst der ASP ein Ereignis aus. Diese Ereignisse können erkannt und beantwortet werden, indem gewöhnlicher Skriptcode in einer Sonderdatei namens Global.asa geschrieben wird, die sich im Stammverzeichnis einer Anwendung befindet (für die Standardwebsite ist /inetpub /wwwroot verzeichnis oder als Ordner als als ein definiertes Ordner echte Anwendung). Diese Datei kann ein oder mehrere <Object> -Elemente von HTML enthalten, mit denen Komponenteninstanzen in der Anwendung oder Benutzersitzung verwendet werden sollen.
Der folgende Code ist ein Beispiel für die Global.asa -Datei. Wir konzentrieren uns nur auf das Element <Objekt> und diese Codezeilen, die mit dem Keyword festgelegt werden:
| <!- Deklary Instanz der ASPCounter-Komponente mit Anwendungsebene //-> < Objekt -ID = ASPCounter Runat = Server Scope = Anwendung Progid = mswc.counter > </Objekt > <!- Erklären Sie die Instanz der AspContentLimk-Komponente mit Session Scope //-> < Objekt -ID = ASPContentLink Runat = Server Scope = Session Progid = mswc.nextlink> </Objekt > < script language = vbScript Runat = Server > Sub application_onstart () 'Erstellen Sie eine Instanz eines ADO-Datensatzes mit Anwendungsebene auf Bewerbungsebene Setzen Sie die Anwendung (adoconnection) = server.createObject (adodb.Connection) Dim VarArray (3) 'Erstellen Sie ein Variante -Array und füllen Sie es Vararray (0) = Dies ist a VarArray (1) = Variante -Array VarArray (2) = in der gespeichert in der VarArray (3) = Anwendungsobjekt Anwendung (variante_array) = varArray'Store It in der Anwendung Anwendung (start_time) = cstr (jetzt) 'Speichern Sie das Datum/die Uhrzeit als Zeichenfolge Anwendung (Visit_Count) = 0 'Setzen Sie die Zählervariable auf Null Ende sub Sub application_onend () Setzen Sie die Anwendung (Adoconnection) = nichts Ende sub Sub sesson_onstart () 'Erstellen Sie eine Instanz der Adrotatorkomponente mit Sitzungsstufe auf Sitzungsebene SET Session (Aspadrotator) = Server.CreateObject (MSWC.Adrotator) Dim Vararray (3) 'Erstellen Sie eine Variante -Arry und füllen Sie sie Vararray (0) = Dies ist a VarArray (1) = Variante -Array VarArray (2) = in der gespeichert in der Vararray (3) = Sitzungsobjekt Sitzung (variante_array) = vararray 'speichern es in der Sitzung Sitzung (start_time) = cstr (jetzt) 'Speichern Sie das Datum/die Uhrzeit als Zeichenfolge 'Wir können auf den Inhalt der Anfrage und Antwort in einem Session_onstart zugreifen Ereignishandler für die Seite, die die Sitzung initiiert hat. 'Platzieren Sie, dass der ASP -Seitenkontext so verfügbar ist. 'Als Beispiel können wir die IP -Adresse des Benutzers erhalten: Sitzung (your_ip_address) = request.servervariables (remote_addr) Application.lock intvisitsits = application (Visit_count) +1 Anwendung (Visit_Count) = intVisits Application.unlock Ende sub Sub session_onend () Setzen Sie Sitzung (Aspadrotator) = nichts Ende sub </script > |
Da diese globale.asa -Datei in diesem Kapitel in der Beispielseite in diesem Kapitel verwendet wird, muss die Datei in das Stammverzeichnis der Website oder in ein als virtuelles Anwendung konfiguriertes Verzeichnis gestellt werden und das Verzeichnis anderer Beispieldateien eingeben .
Werte lesen und speichern
Beachten Sie das obige Beispiel, wie Sie Anwendungs- und Sitzungsvariablen lesen, genauso wie Sie eine Sammlung von Anforderungs- und Antwortobjekten aufnehmen. Legen Sie die Werte dieser Variablen ein:
| Application (variable_name) = variable_value Application (variable_name) = variable_array_variable_name Setzen Sie die Anwendung (variable_name) = Object_Reference |
Erhalten Sie die Werte dieser Variablen:
| variable_value = application (variable_name) variant_array_variable = application (variable_name) Setzen |
Natürlich kann der gleiche Ansatz für Sitzungsobjekte verfolgt werden.
Wenn Sie das Anwendungsobjekt sperren und entsperren, wenn Sie von einem Sitzungsereignisprozessor zugegriffen werden, ist dieselbe Verarbeitung erforderlich. Dies ist nicht erforderlich, wenn Sie auf Werte in Anwendungsobjekten zugreifen, die Code in Anwendungsereignissen verwenden. Dies liegt daran, dass in jeder Anwendung nur eine Instanz des Anwendungsobjekts vorhanden ist und der Code des Event -Handlers nur dann ausgeführt wird, wenn keine aktive Benutzersitzung vorhanden ist.
Sie können auch sehen, wie ein grundlegender Benutzersitzungsschalter implementiert ist. Hier ist eine Variable-Variable-Variable_Count, die automatisch erhöht wird, wenn eine neue Sitzung beginnt. Im Allgemeinen ist es nicht darauf beschränkt, Werte einfach in Anwendungs- oder Sitzungsobjekte zu speichern. Die Website des Webentwicklers enthält beispielsweise eine entsprechende globale Datei auf http://webdev.wrox.co.uk werden aus der Anfrage erhalten. servervariables Sammlung. Dies bietet eine grundlegende Methode, um die Anzahl der Besucher zu zählen und einige grundlegende Informationen über Besucher zu sammeln.