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> |