Global ASA





http://www.morpheusweb.it/html/manuali/asp/asp_globalasa.asp

Il file Global.asa e' un file opzionale che puo' contenere dichiarazioni di oggetti, variabili, metodi e puo' essere
acceduto da ogni pagina dell’applicazione ASP.

Il file Global.asa

Il file Global.asa e' un file opzionale che puo' contenere dichiarazioni di oggetti, variabili, metodi e puo' 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 puo' 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 puo' avere soltanto un file
Global.asa.

Eventi nel Global.asa

Nel file Global.asa si puo' 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 e' 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 visibilita' di sessione o applicazione, utilizzando il tag <object> nel file Global.asa.

Nota: Il tag <object> deve stare al di guori di tag <script>

Sintassi

<object runat="server" scope="scope" id="id"{progid="progID"|classid="classID"}>
....
</object>

Parametro Descrizione
scope Imposta l’ambito dell’oggetto (Session o Application)
id Specifica un identificatore unico per l’oggetto
ProgID Un id associato all’id di classe.

Il formato e' [Fornitore.]Componente[.Versione]
ClassID Specifica un id unico per un oggetto ProgID e ClassID devono essere specificati.


Esempi

Il primo esempio crea un oggetto di session chiamato "MyAd" usando il parametro ProgID:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"></object>
Il secondo esempio crea un oggetto di applicazione chiamato "MyConnection" utilizzando il parametro ClassID:

<object runat="server" scope="application" id="MyConnection" lassid=" Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"></object>
Gli oggetti dichiarati nel Global.asa possono essere usati da qualsiasi script nell’applicazione:

GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd"progid="MSWC.AdRotator"></object>

Facciamo riferimento all’oggetto in un file:

ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Dichiarazioni TypeLibrary

Un TypeLibrary e' 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.

Sintassi

<!--METADATA TYPE="TypeLib" file=" filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid"-->
Parametro Descrizione
File 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 puo' restituire uno dei seguenti messaggi di errore:

Error Code Descrizione
ASP 0222 Specifica di type library
ASP 0223 Type library
ASP 0224 Non e' possible caricare la Type library
ASP 0225 Non e' possible spostare il Type library


Restrizioni

Cosa e' possibile includere nel Global.asa:
Non si puo' visualizzare del testo scritto nel Global.asa. Questo file non puo' 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 e' usato spesso per inizializzare le variabili.
L’esempio In basso mostra come determinare quando un utente e' entrato nell’applicazione (o nel sito). Il tempo
e' memorizzato nella variabile di sessione chiamata "started", e tale valore puo' 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 puo' 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 e' assegnato ad un aray, e puo' 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

</SCRIPT>










( globalasa.html )- by Paolo Puglisi - Modifica del 17/12/2023