Im vorherigen Artikel hat der Autor ausführlich die Verwendung der ASP-integrierten Objektantwort vorgestellt.
Zusätzlich zu Objekten, die zum Senden, Empfangen und Verarbeiten von Daten verwendet werden, gibt es auch einige sehr praktische Objekte, die aktive Serveranwendungen und individuelle Benutzerinformationen in ASP darstellen.
Schauen wir uns zuerst das Anwendungsobjekt an. Alle .asp -Dateien im selben virtuellen Verzeichnis und seine Unterverzeichnisse bilden die ASP -Anwendung. Anstatt Anwendungsobjekte zu verwenden, können wir Informationen unter allen Benutzern einer bestimmten Anwendung freigeben und während des Serverbetriebs dauerhaft Daten speichern. Darüber hinaus verfügt das Anwendungsobjekt über Methoden, um den Zugriff auf Daten und Ereignisse auf Anwendungsebene zu steuern, mit denen ein Prozess ausgelöst werden kann, wenn eine Anwendung gestartet und gestoppt wird.
Lassen Sie uns gemeinsam über Anwendungsobjekte erfahren.
1. Attribute
Obwohl das Anwendungsobjekt keine integrierten Eigenschaften aufweist, können wir benutzerdefinierte Eigenschaften mithilfe der folgenden Syntax festlegen, die auch als Sammlungen bezeichnet werden kann.
Anwendung (Eigenschaft/Sammlungsname) = Wert
Wir können Eigenschaften des Anwendungsobjekts mit dem folgenden Skript deklarieren und erstellen.
< %
Anwendung (myvar) = Hallo
Setzen Sie die Anwendung (myobj) = server.createObject (MyComponent)
%>
Sobald wir die Eigenschaften des Anwendungsobjekts zuweisen, bleibt es bestehen, bis der Webserverdienst so geschlossen ist, so dass die Anwendung beendet. Da die im Anwendungsobjekt gespeicherten Werte von allen Benutzern der Anwendung gelesen werden können, sind die Eigenschaften des Anwendungsobjekts besonders geeignet, um Informationen zwischen Benutzern der Anwendung zu übergeben.2. Methode
Anwendungsobjekte verfügen über zwei Methoden, die beide verwendet werden, um mehrere Benutzer zu verarbeiten, die in der Anwendung gespeicherte Daten schreiben
1. Die Sperrmethode verbietet anderen Kunden, die Eigenschaften des Anwendungsobjekts zu ändern.
Die Sperrmethode verhindert, dass andere Kunden im Anwendungsobjekt gespeicherte Variablen ändern, um sicherzustellen, dass nur ein Kunde Anwendungsvariablen gleichzeitig ändern und zugreifen kann. Wenn der Benutzer die Entsperrmethode nicht explizit aufruft, wird der Server das Anwendungsobjekt entsperrt, nachdem die .asp -Datei beendet oder zeitsübergreifend.
Schauen wir uns das folgende Programm an, in dem die Anwendung die Anzahl der Seitenzugriffe aufzeichnet:< %
DimviSsitSnumvisits = 0
Application.lockApplication (numvissitsites) = application (numvissits) + 1
Application.unlock
%>
Willkommen auf dieser Seite, Sie sind der < %= Application (numvissitsits) %> Besucher auf dieser Seite!
Speichern Sie das obige Skript in Ihrer .asp -Datei und fügen Sie Ihrer Seite leicht einen Zähler hinzu.
2. Im Gegensatz zur Sperrmethode ermöglicht die Entsperrmethode andere Kunden, die Eigenschaften des Anwendungsobjekts zu ändern.
Im obigen Beispiel entsperren im obigen Beispiel die Entsperrmethode das Objekt, sodass der nächste Client den Wert von Numvisen erhöhen kann.
III
1. Application_onstart
Das Ereignis application_onstart erfolgt vor der ersten Erstellung einer neuen Sitzung (d. H. Das Session_onstart -Ereignis). Das Ereignis application_onstart wird ausgelöst, wenn der Webserver startet, und ermöglicht Anforderungen an Dateien, die in der Anwendung enthalten sind. Die Verarbeitung des Ereignisses application_onstart muss in der global.asa -Datei geschrieben werden.Die Syntax des Ereignisses application_onstart lautet wie folgt:
<Script Language = scriptsprunguage runat = server>
Sub application_onstart.
Ende sub
< /Script>
2. Applicati
on_onend
Das Ereignis application_onend erfolgt nach dem Session_onend -Ereignis, wenn die Anwendung bearbeitet wird.
Schauen wir uns einige Dinge an, auf die Sie bei der Verwendung von Anwendungsobjekten achten müssen.
ASP-integrierte Objekte können nicht in Anwendungsobjekten gespeichert werden. Beispielsweise gibt jede folgende Zeile einen Fehler zurück.
< %
Setzen Sie die Anwendung (var1) = Sitzung
Setzen Sie die Anwendung (var2) = Anforderung
Setzen Sie die Anwendung (var3) = Antwort
Setzen Sie die Anwendung (var4) = Server
Setzen Sie die Anwendung (var5) = Anwendung
Setzen Sie die Anwendung (var6) = ObjectContext
%>
Wenn Sie ein Array in einem Anwendungsobjekt speichern, ändern Sie die im Array gespeicherten Elemente nicht direkt. Zum Beispiel kann das folgende Skript nicht ausgeführt werden.
< % Application (StoredArray) (3) = neuer Wert %>
Dies liegt daran, dass das Anwendungsobjekt als Sammlung implementiert wird. Array Element StoredArray (3) Es wurde keine neue Zuordnung erhalten. Dieser Wert wird in die Sammlung von Anwendungsobjekten enthalten und überschreibt alle zuvor an diesem Ort gespeicherten Informationen. Es wird empfohlen, dass Sie vor dem Abrufen oder Ändern der Objekte im Array eine Kopie des Arrays erhalten, wenn Sie das Array im Anwendungsobjekt speichern. Beim Betrieb in einem Array sollten Sie alle Arrays im Anwendungsobjekt speichern, damit alle von Ihnen vorgenommenen Änderungen gespeichert werden. Das folgende Skript zeigt dies.
--- Asp8a.asp ---
< %
dim myarray ()
Redim myarray (5)
Myarray (0) = Hallo
Myarray (1) = eine andere Zeichenfolge
Application.lock
Anwendung (StoredArray) = MyArray
Application.unlock
Antwort.Redirect ASP8B.asp
%>
--- ASP8B.asp ---
< %
LocalArray = Anwendung (StoredArray)
LocalArray (1) = dort
Antwort.Write LocalArray (0) und LocalArray (1)
Application.lock
Anwendung (StoredArray) = localArray
Application.unlock
%>
Ein weiteres sehr praktisches ASP-integriertes Objekt, das ähnliche Funktionen wie Anwendungsobjekte hat, ist die Sitzung. Wir können das Sitzungsobjekt verwenden, um die für eine bestimmten Benutzersitzung erforderlichen Informationen zu speichern. Wenn der Benutzer zwischen Seiten der Anwendung springt, werden Variablen, die im Sitzungsobjekt gespeichert sind, nicht gelöscht, und diese Variablen existieren immer, wenn der Benutzer auf die Seite in der Anwendung zugreift. Wenn ein Benutzer eine Webseite aus der Anwendung anfordert und der Benutzer keine Sitzung hat, erstellt der Webserver automatisch ein Sitzungsobjekt. Wenn die Sitzung abläuft oder aufgegeben wird, endet der Server die Sitzung.
Sitzungsobjekte auf dem Server können verwaltet werden, indem eindeutige Cookies an das Client -Programm gesendet werden. Wenn ein Benutzer zum ersten Mal eine Seite in der ASP -Anwendung anfordert, muss der ASP die HTTP -Headerinformationen überprüfen, um festzustellen, ob ein Cookie mit dem Namen ASPSessionID in der Nachricht vorhanden ist. Global eindeutiger Wert für die Sitzung und senden Sie diesen Wert als Wert des neuen ASPSessionID -Cookies an den Client. Die häufigste Funktion eines Sitzungsobjekts besteht darin, Benutzerpräferenzen zu speichern. Wenn der Benutzer beispielsweise angibt, dass er die Grafiken nicht anzeigen möchte, kann er die Informationen in einem Sitzungsobjekt speichern. Darüber hinaus wird es häufig in Programmen verwendet, die Kunden identifizieren. Es ist zu beachten, dass der Sitzungsstatus nur in Browsern aufbewahrt wird, die Cookies unterstützen, und wenn der Kunde die Cookie -Option ausschaltet, funktioniert die Sitzung nicht.
1. Attribute
1. Sessionid
SES
Die SionID -Eigenschaft gibt die Sitzungsidentität des Benutzers zurück. Beim Erstellen einer Sitzung generiert der Server für jede Sitzung eine separate Identität. Die Sitzungskennung wird als länglicher Datentyp zurückgegeben. In vielen Fällen kann SessionID für Webseitenregistrierungsstatistiken verwendet werden.
2. Zeitüberschreitung
Die Timeout -Eigenschaft gibt in wenigen Minuten ein Zeitleitungszeitlimit für das Sitzungsobjekt der Anwendung an. Wenn der Benutzer innerhalb dieses Zeitüberschreitungszeitraums keine Webseite aktualisiert oder anfordert, wird die Sitzung beendet.
2. Methode
Es gibt nur eine Methode für ein Sitzungsobjekt, bei dem die Verlassenheit alle in einem Sitzungsobjekt gespeicherten Objekte gelöscht und die Quelle dieser Objekte veröffentlicht. Wenn Sie die Vertragsmethode nicht explizit aufrufen, löscht der Server diese Objekte, sobald die Sitzung abgelaufen ist. Wenn der Server die aktuelle Seite verarbeitet hat, wird im folgenden Beispiel den Sitzungsstatus veröffentlicht.
< %Session.abandon %>
III
Das Sitzungsobjekt enthält zwei Ereignisse, die verwendet werden können, wenn das Sitzungsobjekt gestartet wird und veröffentlicht wird.
1. Das Session_onstart -Ereignis erfolgt, wenn der Server eine neue Sitzung erstellt. Der Server verarbeitet das Skript, bevor die angeforderte Seite ausgeführt wird. Das Session_onstart -Ereignis ist die beste Zeit, um Sitzungsvariablen festzulegen, da sie vor dem Zugriff auf Seiten eingestellt sind.
Obwohl das Sitzungsobjekt bleibt, wenn das Session_onstart -Ereignis einen Umleitungs- oder Endmethode -Aufruf enthält, beendet der Server die Verarbeitung der globalen.asa -Datei und löst das Skript in der Datei aus, die das Session_onstart -Ereignis auslöst.
Um sicherzustellen, dass der Benutzer beim Öffnen einer bestimmten Webseite immer eine Sitzung startet, kann die Umleitungsmethode im Session_onstart -Ereignis aufgerufen werden. Wenn der Benutzer in die Anwendung eingeht, erstellt der Server eine Sitzung für den Benutzer und verarbeitet das Skript von Session_onstart -Ereignis. Sie können das Skript in diesem Ereignis einfügen, um zu überprüfen, ob die vom Benutzer geöffnete Seite eine Startseite ist. Wenn nicht, weist dies den Benutzer an, die Antwort der Antwort aufzurufen. Das Verfahren ist wie folgt:
<Script runat = server Language = vbscript>
Sub session_onstart
startpage = /myapp/starthere.asp
CurrentPage = Request.Servervariables (script_name)
Wenn sTRCORP (CurrentPage, Startpage, 1) dann
Antwort.Redirect (Startpage)
Ende wenn
Ende sub
< /Script>
Die oben genannten Programme können nur in Browsern ausgeführt werden, die Cookies unterstützen. Da Browser, die Cookies nicht unterstützen, SessionID -Cookies nicht zurückgeben können, erstellt der Server eine neue Sitzung, wenn ein Benutzer eine Webseite anfordert. Auf diese Weise wird für jeden anfordernden Server das Skript von Session_onstart verarbeitet und der Benutzer auf die Startseite umgeleitet.
2. Das Session_onend -Ereignis findet während der Sitzung statt.
Die Verwendung von Sitzungsobjekten ist ähnlich.
Die Sitzung kann auf die folgenden drei Arten gestartet werden:
1. Ein neuer Benutzer fordert den Zugriff auf eine URL an, die die .asp -Datei in einer Anwendung identifiziert, und die global.asa -Datei der Anwendung enthält den Session_onstart -Prozess.
2. Der Benutzer speichert einen Wert im Sitzungsobjekt.
3. Der Benutzer hat die .asp -Datei einer Anwendung angefordert, und die globale. ASA -Datei der Anwendung verwendet das <FORGANGEL -Tag, um eine Instanz eines Objekts mit einem Sitzungsbereich zu erstellen.
Wenn der Benutzer innerhalb der angegebenen Zeit keine Seiten in der Anwendung anfordert oder aktualisiert, endet die Sitzung automatisch. Der Standardwert für diesen Zeitraum beträgt 20 Minuten. Sie können die Standard -Timeout -Limit -Einstellungen für eine Anwendung ändern, indem Sie die Sitzungs -Timeout -Eigenschaft in der Eigenschaftsseite der Anwendungsoptionen im Internet Service Manager einstellen. Dieser Wert sollte entsprechend den Anforderungen Ihrer Webanwendung und dem Speicherplatz des Servers festgelegt werden. Wenn Sie beispielsweise Benutzer, die Ihre Webanwendung durchsuchen möchten, nur wenige Minuten auf jeder Seite bleiben möchten, sollten Sie den Standard -Timeout -Wert für Ihre Sitzung verkürzen. Ein übermäßig langer Timeout -Wert bewirkt zu viele offene Sitzungen und erschöpfen die Speicherressourcen Ihres Servers. Wenn Sie für eine bestimmte Sitzung einen Zeitüberschreitungswert festlegen möchten, der kleiner als der Standard -Zeitlimitwert ist, können Sie das Sitzungsobjekt festlegen
Zeitüberschreitungseigentum. Das folgende Skript legt beispielsweise den Zeitüberschreitungswert auf 5 Minuten fest.
< %Sitzung.Timeout = 5 %>
Natürlich können Sie auch einen Zeitüberschreitungswert festlegen als die Standardeinstellung. Sie können eine Sitzung auch explizit mit der Abschlussmethode des Sitzungsobjekts beenden. Geben Sie beispielsweise in der Tabelle eine Schaltfläche zum Beenden an und setzen Sie den Aktionsparameter der Schaltfläche auf die URL der .asp -Datei mit den folgenden Befehlen ein.
< %Session.abandon %>
Heute haben wir zwei integrierte Objekte gelernt, die ASP häufig auf Webseiten verwenden, insbesondere auf webbasierten BBS oder Chat. . Bitte achten Sie auf die achtzehn Kampfkünste des dynamischen Website-Designs-Asp (9).