Permette
la gestione di dati e la loro visibilità a livello
di Sessione.
L'oggetto Session consente di condividere le informazioni
tra tutte le pagine di una sessione utente.
Il Server Web crea automaticamente un oggetto Session quando
una pagina è richiesta da un utente che non ha già
una sessione attiva; l'oggetto viene distrutto o al tempo
di scadenza prefissato o quando la sessione viene abbandonata.
Da notare che è possibile mantenere le informazioni
nell'oggetto Session solo se il browser dell'utente supporta
i cookies.
Sintassi:
Session.collection|property|method |
L'oggetto
Session: Collections |
La
seguente tabella mostra le Collection dell'oggetto Session:
Collections
|
Significato
|
Contents |
contiene
tutti gli elementi aggiunti a Session con gli script |
StaticObjects
|
contiene
tutti gli oggetti aggiunti a Session con il tag <OBJECT> |
L'oggetto
Session: Proprietà |
La
seguente tabella mostra le proprietà dell'oggetto Session:
Proprietà
|
Significato
|
CodePage |
la
codepage da utilizzare per i caratteri |
LCID
|
l'identificatore
locale |
SessionID
|
l'identificativo
della sessione per quell'utente |
Timeout
|
il
periodo massimo di persistenza dell'oggetto Session in
minuti |
L'oggetto
Session: Metodi |
La
seguente tabella mostra le proprietà dell'oggetto Session:
Proprietà
|
Significato
|
Abandon
|
distrugge
l'oggetto Session e libera le risorse |
Esistono
inoltre due eventi, Session_OnStart e Session_OnEnd; i relativi
script possono essere contenuti solo nel file Global.asa.
Si
possono assegnare valori a variabili Session; se la variabile
non esiste viene aggiunta alla collection Contents:
---login.asp---
<%
Session("User") = Request.Form("utente")
Session("Passw") = Request.Form("password")
Session("Email") = Request.Form("email")
' ...............
' tutte le altre istruzioni della pagina
' ...............
%>
|
E'
possibile anche utilizzare matrici, ma con la stessa avvertenza
dell'oggetto Application; essendo tutte le variabili elementi
dell'insieme Contents non è possibile accedere direttamente
agli elementi di una matrice. E' necessario comportarsi come
nel caso precedente.
E' anche possibile assegnare una istanza di un componente
ad una variabile Session; occorre tuttavia conoscere il modello
di threading del componente, che deve essere Both per
non portare al blocco della sessione.
La sintassi da utilizzare è:
<% Set Session("Obj1")
= Server.CreateObject("MyComponent.class1")
%> |
L'oggetto
può essere richiamato sia direttamente, sia estraendone
una copia locale:
1.
<% Session("Obj1").MyObjMethod
%> |
2.
<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%> |
Nota:
Sia per l'oggetto Application che per l'oggetto Session
non è possibile assegnare a variabili nesssuno degli
oggetti built-in; inoltre la creazione di oggetti con il tag
<OBJECT> è possibile solo nel file global.asa.
E'
un file opzionale nel quale specificare script da associare
agli eventi e dichiarare oggetti con persistenza a livello
Application o Session o dichiarazioni TypeLibrary; gli script
devono essere obbligatoriamente inclusi tra i tag <SCRIPT>
e </SCRIPT>.
Deve essere memorizzato nella directory principale dell'applicazione.
Eventuali procedure definite in Global.asa possono essere
richiamate solo dagli eventi Application_OnStart, Application_OnEnd,
Session_OnStart, e Session_OnEnd e non sono
disponibili per le pagine asp dell'applicazione.
Quando si modifica il file Global.asa il server attende di
aver terminato tutte la richieste in corso dell'applicazione
prima di ricompilare il file. Qualsiasi nuova richiesta provoca
un messaggio di errore che dice che la richiesta non può
essere processata mentre è in corso il restart dell'applicazione.
Attenzione: la modifica di un file incluso in Global.asa non
causa la ricompilazione di Global.asa.
In
questo esempio viene utilizzato per consentire a index.asp
di evidenziare il numero di utenti collegati:
--------------
Global.asa ----------------
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("activeusers") = 0
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
Application.Lock
Application("activeusers") = Application("activeusers")
+ 1
Application.Unlock
End Sub
Sub Session_OnEnd
Application.Lock
Application("activeusers") = Application("activeusers")
- 1
Application.Unlock
End Sub
</SCRIPT>
|
Nel
file index.asp inseriremo nella posizione voluta:
vi sono
<% =Application("activeusers")
%> utenti collegati |
|