1 ASP Session Objekt|Artikel|Projekt OsUp

ASP Session Objekt


Das Session Objekt wird benutzt um Informationen zu speichern. Variablen, welche im Session Objekt gespeichert werden, enthalten Informationen über einen einzelnen Besucher. Diese Variablen sind auf jeder Seite in der ganzen Website verfügbar.


Das Session Objekt

Wenn sie mit einer Software arbeiten, z.B. mit Winword etwas schreiben und speichern, dann weiss der Computer wer sie sind. Er weiss, wann sie die Software starten und wann sie das Programm wieder schliessen. Im Internet gibt es ein Problem: Der Webserver weiss nicht wer der Besucher ist und was er macht, weil das HTTP Protokoll keinen festen Status besitzt.


ASP löst dieses Problem indem es für jeden Besucher ein Cookie erstellt. Das Cookie wird an den Browser gesandt und enthält Informationen, welche den Besucher eindeutig identifizieren. Diese Verbindung nennt man das Session Objekt.

Das Session Objekt wird benutzt um Informationen zu speichern. Variablen, welche im Session Objekt gespeichert werden, enthalten Informationen über einen einzelnen Besucher. Diese Variable ist auf jeder Seite in der ganzen Website verfügbar. Der Webserver erstellt eine Session für jeden neuen Besucher, und löscht das Session Objekt wieder wenn die Session abgelaufen ist (Session Timeout).


Wann startet die Session?

Eine Session wird gestartet wenn:

  • ein neuer Besucher eine ASP-Datei anfordert, und die Global.asa Datei eine Session_OnStart Funktion enthält
  • eine Session Variable erstellt wird

Wann läuft die Session ab?

Eine Session endet, wenn ein Besucher innerhalb einer bestimmten Zeit, keine Seite mehr anfordert oder aktualisiert. Standard Zeit (Session Timeout) ist 20 Minuten.

Wenn man den Timeout Intervall länger oder kürzer als die Standard Zeit setzen möchte, benutzt man die Timeout Eigenschaft. Das Beispiel unterhalb setzt den Timeout Interval auf 5 Minuten.

<%
Session.Timeout=5
%>

Um eine Session früher zu beenden, kann man die Methode Abandon benutzen.

<%
Session.Abandon
%>

Beachte: Das grösste Problem beim Benutzen von Sessions ist, WANN wird eine Session nicht mehr gebraucht. Wir wissen nicht, wann ein Besucher wirklich die letzte Seite verlangt hat. Wir wissen nicht, ob die letzte Anfrage auch wirklich die endgültig letzte ist oder nicht. Tatsächlich wissen wir nicht, wie lange wir die Session am Leben erhalten sollen. Wenn wir zu lange warten werden die Ressourcen des Webserver stark belastet. Wenn wir aber die Session zu früh löschen, laufen wir Gefahr, dass der Besucher zurückkommt und der Webserver alle Informationen bereits gelöscht hat. So dass der Besucher wieder von neuem starten muss. Den richtigen Timeout Intervall zu finden ist schwierig.

Tipp: Wenn man Session Variablen benutzt, sollte man nur wenig Daten speichern.


Speichern und abfragen von Variablen

Das wichtigste am Session Objekt ist, dass man Variablen im Session Objekt speichern kann. Zum Beispiel so:

<% 
Session("Vorname")="Hans"
Session("Alter")=24
%>

Dieses Beispiel setzt die Session Variable vorname auf Hans und die Session Variable Alter auf 24.

Wenn ein Wert in eine Session Variable gespeichert wurde, kann man von jeder Seite innerhalb der Applikation wie folgt auf diesen Wert zugreifen:
Session("Vorname"):

Willkommen<%Response.Write(Session("Vorname"))%>

Die Ausgabe lautet dann:

Willkommen Hans


Alle Session Variablen lesen

Mit Hilfe der Eigenschaft Contents, kann man alle Variablen, welche innerhalb einer Session gespeichert werden, ausgeben:

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

Resultat:

vorname
alter

Wenn man nicht genau weiss, wieviele Variablen die Session enthält, kann man mit Hilfe der Count Eigenschaft dies ermitteln:

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

Resultat:

Session Variablen: 2
Hans
24

Sie k?nnen keine Kommentare abgeben!