ASP-Session-Objekt
- Vorherige Seite ASP-Cookies
- Nächste Seite ASP-Anwendung
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。
Session 对象
当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。
ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。
Das Session-Objekt wird verwendet, um Informationen über den Benutzer zu speichern oder Einstellungen für die Session eines Benutzers zu ändern. Die in das Session-Objekt gespeicherten Variablen enthalten Informationen über einen einzelnen Benutzer und sind für alle Seiten der Anwendung verfügbar. Die in das Session-Objekt gespeicherten Informationen sind in der Regel Name, ID und Parameter. Der Server erstellt für jeden neuen Benutzer eine neue Session und löst diese Session beim Ablauf auf.
Wann beginnt die Session?
Wann beginnt die Session?
- Wenn ein neuer Benutzer eine ASP-Datei anfordert und die Datei Global.asa die Subroutine Session_OnStart referenziert;
- Wenn ein Wert im Session-Variable gespeichert wird;
- Wenn ein Benutzer eine ASP-Datei anfordert und Global.asa einen Objekt durch das <object>-Tag mit dem Scope der Session erstellt;
Wann endet die Session?
Wenn der Benutzer innerhalb der festgelegten Zeit keine Anfrage oder Aktualisierung der Seite im Anwendungsfenster vornimmt, endet die Session. Der Standardwert beträgt 20 Minuten.
Wenn Sie die Ablaufzeit verlängern oder verkürzen möchten, können Sie Timeout Eigenschaft.
Das folgende Beispiel setzt eine Ablaufzeit von 5 Minuten fest:
<% Session.Timeout=5 %>
Um die Session sofort zu beenden, verwenden Sie Abandon Methode:
<% Session.Abandon %>
Achtung:Das Hauptproblem bei der Verwendung von Session ist, wann sie beendet werden sollten. Wir wissen nicht, ob die letzte Anfrage des Benutzers die letzte Anfrage war. Daher sind wir uns nicht sicher, wie lange die Session "leben" sollte. Wenn man zu lange auf eine inaktive Session wartet, kann es zu einer Überbeanspruchung der Serverressourcen kommen. Wenn die Session jedoch zu früh gelöscht wird, muss der Benutzer von vorne beginnen, da der Server alle Informationen gelöscht hat. Es ist schwierig, die passende Zeitspanne für die Ablaufzeit zu finden.
Hinweis:Wenn Sie Session-Variablen verwenden, speichern Sie bitte nicht zu viele Daten darin.
Speichern und Abrufen von Session-Variablen
Der größte Vorteil des Session-Objekts ist, dass darin Variablen gespeichert werden können, die für spätere Webseiten gelesen werden können, und sein Anwendungsbereich ist sehr breit.
Das folgende Beispiel weist "Donald Duck" der Session-Variable "username" zu und "50" der Session-Variable "age" zu:
<% Session("username")="Donald Duck" Session("age")=50 %>
Sobald ein Wert in das Session-Variable gespeichert wird, kann er von jeder Seite der ASP-Anwendung verwendet werden:
Willkommen <%Response.Write(Session("username"))%>
Das Ergebnis dieser Zeile ist: "Welcome Donald Duck".
Sie können auch Benutzerparameter im Session-Objekt speichern und diese Parameter abrufen, um zu entscheiden, welche Seite dem Benutzer zurückgegeben wird.
Im folgenden Beispiel wird vorgeschrieben, falls der Benutzer eine niedrige Bildschirmauflösung verwendet, wird eine reine Textversion der Seite zurückgegeben:
<%Wenn Session("screenres")="low" Then%> Dies ist die Textversion der Seite <%Else%> Dies ist die Multimedia-Version der Seite <%End If%>
Entfernen Sie Session-Variablen
Das contents-Set enthält alle Session-Variablen.
Sie können die remove-Methode verwenden, um Session-Variablen zu entfernen.
Im folgenden Beispiel wird, falls der Wert der Session-Variablen "age" kleiner als 18 ist, die Session-Variablen "sale" entfernt:
<% Wenn Session.Contents("age")<18 dann Session.Contents.Remove("sale") End If %>
Um alle Variablen aus der Session zu entfernen, verwenden Sie die RemoveAll-Methode:
<% Session.Contents.RemoveAll() %>
Iterieren Sie durch das contents-Set
Das contents-Set enthält alle Session-Variablen. Sie können durch das Set iterieren, um die darin gespeicherten Variablen anzuzeigen:
<% Session("username")="Donald Duck" Session("age")=50 dim i Für Jedes i in Session.Contents Response.Write(i & "<br />") Next %>
Ergebnis:
username age
Wenn Sie die Anzahl der Elemente im contents-Set benötigen, können Sie das count-Attribut verwenden:
<% dim i dim j j=Session.Contents.Count Response.Write("Session-Variablen: " & j) Für i=1 bis j Response.Write(Session.Contents(i) & "<br />") Next %>
Ergebnis:
Session-Variablen: 2 Donald Duck 50
Durchlaufe die StaticObjects-Kollektion
Durch das Durchlaufen der StaticObjects-Kollektion kann der Wert aller Objekte, die im session-Objekt gespeichert sind, angezeigt werden:
<% dim i Für Jedes i in Session.StaticObjects Response.Write(i & "<br />") Next %>
- Vorherige Seite ASP-Cookies
- Nächste Seite ASP-Anwendung