Neueste Web-Entwicklung Tutorials
 

ASP Session-Objekt


Ein Session-Objekt speichert Informationen über, oder Ändern von Einstellungen für eine Benutzersitzung.


Das Session-Objekt

Wenn Sie mit einer Anwendung auf dem Computer arbeiten, öffnen Sie es, einige Änderungen tun, und Sie schließen Sie es dann. Das ist ähnlich wie bei einer Session. Der Computer weiß, wer Sie sind. Er weiß, wenn Sie die Anwendung öffnen und wenn Sie es schließen. Aber im Internet gibt es ein Problem: der Web-Server nicht weiß, wer Sie sind und was Sie tun, weil die HTTP-Adresse nicht Zustand halten.

ASP löst dieses Problem durch ein eindeutiges Cookie für jeden Benutzer. Das Cookie wird auf den Computer des Benutzers gesendet und es enthält Informationen, die den Benutzer identifiziert. Diese Schnittstelle wird das Session-Objekt aufgerufen.

Das Session-Objekt speichert Informationen über, oder Ändern von Einstellungen für eine Benutzersitzung.

in einer Session-Objekt halten Informationen gespeicherten Variablen über einen einzelnen Benutzer, und sind auf alle Seiten in einer Anwendung zur Verfügung. Gemeinsame gespeicherten Informationen in Session-Variablen sind Name, ID und Vorlieben. Der Server erstellt ein neues Session-Objekt für jeden neuen Benutzer, und zerstört das Session-Objekt, wenn die Sitzung abläuft.


Wann ist eine Sitzung starten?

Eine Sitzung beginnt, wenn:

  • Ein neuer Benutzer fordert eine ASP-Datei und die Datei Global.asa enthält ein Session_OnStart Verfahren
  • Ein Wert wird in einer Variable gespeichert Session
  • Ein Benutzer fordert eine ASP - Datei und die Datei Global.asa verwendet das <object> -Tag ein Objekt mit Sitzungsbereich zu instanziiert

Wann endet eine Sitzung?

Eine Sitzung endet, wenn ein Benutzer nicht angefordert hat, oder eine Seite in der Anwendung für einen bestimmten Zeitraum aktualisiert. Standardmäßig ist diese 20 Minuten.

Wenn Sie ein Timeout - Intervall festlegen mögen , die kürzer oder länger als der Standard ist, verwenden Sie die Timeout - Eigenschaft.

Das folgende Beispiel stellt ein Timeout-Intervall von 5 min:

<%
Session.Timeout=5
%>

Verwenden Sie die Abandon - Methode eine Sitzung zu beenden sofort:

<%
Session.Abandon
%>

Note: Das Hauptproblem bei Sitzungen ist , wenn sie enden soll. Wir wissen nicht, ob die letzte Anforderung des Benutzers der letzte war oder nicht. So wissen wir nicht , wie lange wir die Sitzung halten "alive" . zu lange Warten auf eine Sitzung im Leerlauf verbraucht Ressourcen auf dem Server, aber wenn die Sitzung zu gelöscht wird bald der Benutzer alle beginnen muss immer wieder, weil der Server alle Daten gelöscht. das Recht Timeout-Zeit zu finden, kann schwierig sein!

Tip: Nur speichern kleine Datenmengen in Session - Variablen!


Speichern und Abrufen von Session-Variablen

Das Wichtigste über das Session-Objekt ist, dass Sie Variablen darin speichern kann.

Das folgende Beispiel wird die Session Variable username zu "Donald Duck" und dem Session - Variablen age zu "50" :

<%
Session("username")="Donald Duck"
Session("age")=50
%>

Wenn der Wert in einer Sitzungsvariablen gespeichert ist, kann es von jeder Seite in der ASP-Anwendung zu erreichen:

Welcome <%Response.Write(Session("username"))%>

Die Zeile oben zurückkehrt: "Welcome Donald Duck" .

Sie können auch Benutzereinstellungen im Session-Objekt speichern und Zugriff dann diese Präferenz zu wählen, welche Seite an den Benutzer zurück.

Das folgende Beispiel gibt eine Nur-Text-Version der Seite, wenn der Benutzer eine niedrige Bildschirmauflösung hat:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

Entfernen Sie Session-Variablen

Der Inhalt Sammlung enthält alle Session-Variablen.

Es ist möglich, ein Session-Variable mit der Remove-Methode zu entfernen.

Das folgende Beispiel entfernt den Session - Variable "sale" , wenn der Wert der Session - Variablen "age" ist niedriger als 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

Um alle Variablen in einer Sitzung zu entfernen, verwenden Sie die RemoveAll Methode:

<%
Session.Contents.RemoveAll()
%>

Schleife durch die Kollektion Inhalt

Der Inhalt Sammlung enthält alle Session-Variablen. Sie können Schleife durch den Inhalt Sammlung, um zu sehen, was in ihm gespeichert ist:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

Ergebnis:

username
age

Wenn Sie nicht die Anzahl der Elemente in der Inhalts Sammlung kennen, können Sie die Count-Eigenschaft verwenden:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

Ergebnis:

Session variables: 2
Donald Duck
50

Schleife durch die Static Sammlung

Sie können die Staticsammelschleife durch, die Werte aller Objekte im Session-Objekt gespeichert, um zu sehen:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>