Il file Global.asa è un file opzionale che può contenere dichiarazioni
di oggetti, variabili, metodi e può essere acceduto da ogni pagina dell’applicazione
ASP.
Il file Global.asa
Il file Global.asa è un file opzionale che può contenere dichiarazioni
di oggetti, variabili, metodi e può essere acceduto da ogni pagina dell’applicazione
ASP. Tutti gli script (JavaScript, VBScript, JScript, PerlScript, etc.) possono
essere usati nel file Global.asa.
Il file Global.asa può contenere solo le seguenti sezioni:
Eventi Application
Eventi Session
Dichiarazioni <object>
Dichiarazioni TypeLibrary
La direttiva #include
Nota: Il file Global.asa deve essere memorizzato nella direcrory principale dell’applicazione
ASP, ed ogni applicazione ASP può avere soltanto un file
Global.asa.
Eventi nel Global.asa
Nel file Global.asa si può dir eagli oggetti application e session cosa
fare quando l’applicazione o la sessione inizia o finisce. Il codice viene
inserito in dei gestori di eventi.
Il file Global.asa contiene quattro tipi di
eventi:
Application_OnStart – quando il PRIMO utente richiama la prima pagina dell’applicazione.
Questo evento avviene quando il Web server viene riavviato o dopo che il Global.asa è modificato.
L’evento "Session_OnStart" avviene immediatemente dopo.
Session_OnStart – tutte le volte che un NUOVO utente richiede la prima
pagina in un’applicazione.
Session_OnEnd – l’evento avviene TUTTE le volte che un utente termina
una sessione. U nutente termina una sessione quando non richiede pagine per un
certo lasso di tempo (di default 20 minuti).
Application_OnEnd – avviene quando l’ultimo utente termina una sessione
(tipicamente quando viene fermato il Web server.
Ecco un esempio di file Global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart 'codice End Sub
Sub Session_OnStart 'codice End Sub
Sub Session_OnEnd 'codice End Sub
Sub Application_OnEnd 'codice End Sub
</SCRIPT>
Nota: Non possiamo usare i delimitatori di script asp (<% e %>) per inserire
scripts nel file Global.asa, dobbiamo inserire le subroutines all’interno
di tag <script>.
Dichiarazioni <object>
E’ possibile creare oggetti con visibilità di sessione o applicazione,
utilizzando il tag <object> nel file Global.asa.
Nota: Il tag <object> deve stare al di guori di tag <script>
ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Dichiarazioni TypeLibrary
Un TypeLibrary è un contenitore per file DLL corrispondenti ad un oggetto
COM. Includendo una chiamata nel file Global.asa, le costanti dell’oggetto
COM possono essere accedute, e gli errori possono essere riportati meglio nel
codice ASP.
Specifica un percorso assoluto per un type library. Richiesto
Uuid
Specifica un identificatore univoco. Richiesto
version
Opzionale. Usato per identificare la versione
localeid
Opzionale.
Errori
Il server può restituire uno dei seguenti messaggi di errore:
Error Code
Descrizione
ASP 0222
Specifica di type library
ASP 0223
Type library
ASP 0224
Non è possible caricare la Type library
ASP 0225
Non è possible spostare il Type library
Restrizioni
Cosa è possibile includere nel Global.asa:
Non si può visualizzare del testo scritto nel Global.asa. Questo file
non può visualizzare informazioni
Possiamo usare solo oggetti Server ed Application nelle subroutine Application_OnStart
ed Application_OnEnd. Nella subrutine Session_OnEnd subroutine, possiamo usare
oggetti Server, Application, e Session. Nella subrutine Session_OnStart subroutine
possiamo utilizzare tutti gli oggetti built-in
Come usare le Subroutines
Il Global.asa è usato spesso per inizializzare le variabili.
L’esempio in basso mostra come determinare quando un utente è entrato
nell’applicazione (o nel sito). Il tempo è memorizzato nella variabile
di sessione chiamata "started", e tale valore può essere usato
in qualsiasi pagina asp dell’applicazione:
<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end
sub
</script>
Il Global.asa può anche essere usato per controllare gli accessi alle
pagine.
L’esempio in basso mostra come ridirezionare ogni nuovo visitatore ad una
pagina chiamata "newpage.asp":
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end
sub
</script>
Ne Global.asa si possono includere anche delle funzioni.
Nell’esempio in basso, la subrutine the Application_OnStart viene richiamata
quando il webserver viene avviato, quindi la subroutine Application_OnStart chiama
un’altra subroutine "getcustomers". La "getcustomers" apre
una connessione ad un database e recupera I record dalla tabella "customers" table.
Il recordset è assegnato ad un aray, e può errere acceduto dalle
pagine dell’applicazionesenza eseguire query sul database:
<script language="vbscript" runat="server">
sub Application_OnStart
getcustomers
end
sub
sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set
rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end
sub
</script>
Esempio di file Global.asa
Nell’esempio seguente creeremo un file Global.asa che conta il numero di
utenti collegati al sito.
Application_OnStart imposta la variabile "visitors" a zero quando viene
avviato il server
La subroutine Session_OnStart aggiunge 1 alla variabile "visitors" ogni
volta che un utente si collega
La subroutine The Session_OnEnd toglie 1 alla variabile "visitors" ogni
volta che un utente lascia il sito
Il file Global.asa:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart Application.Lock Application("collegati") = 0 Application.UnLock End Sub
Sub Session_OnStart Application.Lock Application("collegati") = Application("collegati") + 1 Application.UnLock End Sub
Sub Session_OnEnd Application.Lock Application("collegati") = Application("collegati") - 1 Application.UnLock End Sub