Sei in: Per i Webmaster - Corso di ASP - Oggetto Application
Per capire cosa sia l'oggetto Application e cosa può fare, dobbiamo ricordare che un'applicazione è definita da tutti i file contenuti in una directory virtuale che è stata esplicitamente configurata per essere la radice (root) dell'applicazione e di tutte le sue subdirectory. Con questo oggetto possiamo:
- essere avvisati quando un'applicazione inizia, così che possiamo effettuare delle operazioni in fase di startup
- essere avvisati quando un'applicazione si sta fermando, così che possiamo effettuare delle operazioni per chiudere l'applicazione stessa in modo corretto
- immagazzinare informazioni che possono essere utilizzate da tutti i client che accedono all'applicazione
C'è una singola istanza dell'oggetto Application per ogni applicazione che gira sul server ma potrebbero esserci più client che stanno accedendo alla stessa applicazione. Questo oggetto immagazzina variabili e/o oggetti che possono essere utilizzati da ogni pagina ASP che è parte dell'applicazione. Il diagramma che segue ci mostra la relazione tra applicazioni, oggetti Application e oggetti Session.
Per inizializzare delle variabili in un oggetto Application, immagazziniamo le informazioni necessarie in uno speciale file ASP che si chiama global.asa. Vediamo un primo esempio di file global.asa:
<SCRIPT
LANGUAGE="VBScript" RUNAT="Server">
Sub
Application_OnStart
Application("myAppVariable") = " "
Application("anotherAppVariable") = 0
End Sub
</SCRIPT>
In questo pezzo di codice abbiamo utilizzato un evento (di 4 disponibili) e cioè Application_OnStart. Questo evento si eseguirà solo una volta nel momento in cui un primo utente si connetterà ad una pagina che fa parte dell'applicazione. L'evento Application_OnStart viene eseguito prima che una prima sessione sia creata, cioè prima dell'evento Session_OnStart. Quello che accade, in pratica, è che vengono inizializzate due variabili, una come stringa vuota e l'altra con valore 0, che possono poi essere utilizzate all'interno di una normale pagina ASP nel modo che segue:
<%
Application.Lock
Application("myAppVariable") = Now
Application("anotherAppVariable) = Application("anotherAppVariable) + 1
Application.Unlock
Response.Write Application("myAppVariable") & "<br>"
Response.Write Application("anotherAppVariable")
%>
Per leggere tutte le variabili con validità a livello di applicazione che abbiamo inizializzato, possiamo sfruttare la Contents Collection dell'oggetto Application nel modo che segue:
<%
Dim Key
For Each Key In
Application.Contents
Response.Write (Key & " vale " & Application(Key))
Next
%>
Metodi dell'oggetto Application
L'oggetto
Application ha due metodi (più altri due tramite la Contents Collection):
Lock e Unlock. Il metodo Lock serve per bloccare l'applicazione in modo
che le variabili memorizzate nell'oggetto Application non possano essere
modificate se non da un client alla volta, come nell'esempio precedente.
Questo serve per fare in modo che i dati non vengano corrotti per una
eventuale simultaneità di operazioni sui dati stessi. Il metodo Unlock
sblocca le variabili dell'oggetto Application preventivamente bloccate col
metodo Lock. Una novità dell'ASP 3.0 sono i due metodi Remove e RemoveAll
accessibili tramite la Contents Collection che servono per rimuovere un
elemento dalla collection o tutti gli elementi in un colpo solo. Vediamo
un esempio:
- Application("PrimaVariabile") = "Gatti"
- Application("SecondaVariabile") = "Cani"
- Application.Contents.Remove("PrimaVariabile")
Il file Global.asa
Abbiamo già detto che esiste un
file ASP speciale che si chiama global.asa nel quale possiamo
immagazzinare oggetti e variabili che hanno validità a livello di
applicazione. In questo file possiamo memorizzare dati che avranno
validità anche a livello di sessione. Il totale degli eventi che si
possono generare in ogni file global.asa con del codice VBScript è 4;
vediamo un esempio di un file global.asa con all'interno il codice di
base.
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
'...codice VBScript
End Sub
Sub Application_OnEnd
'...codice VBScript
End Sub
Sub Session_OnStart
'...codice VBScript
End Sub
Sub Session_OnEnd
'...codice VBScript
End Sub
</SCRIPT>
Vediamo quindi che cosa sono le sessioni e le variabili di sessione e come possiamo utilizzarle.
