Fichier Global.asa ASP
- Page précédente ASP #include
- Page suivante Email ASP
Le fichier Global.asa est un fichier optionnel qui peut contenir des déclarations d'objets, de variables et de méthodes accessibles par chaque page de l'application ASP. Tous les scripts légaux de navigateur peuvent être utilisés dans Global.asa.
Fichier Global.asa
Le fichier Global.asa est un fichier optionnel qui peut contenir des déclarations d'objets, de variables et de méthodes accessibles par chaque page de l'application ASP. Tous les scripts légaux de navigateur peuvent être utilisés dans Global.asa.
Le fichier Global.asa peut inclure le contenu suivant :
- Événement Application
- Événement Session
- Déclaration <object>
- Déclaration de TypeLibrary
- Instruction #include
Remarque :Le fichier Global.asa doit être placé dans le répertoire racine de l'application ASP et chaque application ne peut avoir qu'un seul fichier Global.asa.
Événement dans Global.asa
Dans Global.asa, nous pouvons indiquer ce que font les objets application et session au démarrage et à la fin. Le code pour accomplir cette tâche est placé dans les opérateurs d'événements. Le fichier Global.asa peut contenir quatre types d'événements :
Application_OnStart - Cet événement se produit à chaque fois que le premier utilisateur appelle la première page de l'application ASP. Cet événement se produit lorsque le serveur Web redémarre ou lorsque le fichier Global.asa est modifié. L'événement "Session_OnStart" se produit immédiatement après cet événement.
Session_OnStart - Cet événement se produit à chaque fois qu'un nouvel utilisateur demande sa première page dans l'application ASP.
Session_OnEnd - Cet événement se produit à chaque fois qu'un utilisateur termine sa session. Si aucune page n'est demandée pendant une période définie (l'événement par défaut est de 20 minutes), la session se termine.
Application_OnEnd - Cet événement se produit après que le dernier utilisateur ait terminé sa session. Dans les cas typiques, cet événement se produit lorsque le serveur Web s'arrête. Ce sous-programme est utilisé pour supprimer les paramètres après l'arrêt de l'application, par exemple supprimer des enregistrements ou écrire des informations dans un fichier texte.
Le fichier Global.asa peut ressembler à ceci :
<script language="vbscript" runat="server"> sous-programme Application_OnStart 'some code end sub sous-programme Application_OnEnd 'some code end sub sous-programme Session_OnStart 'some code end sub sous-programme Session_OnEnd 'some code end sub </script>
Remarque :Comme les séparateurs de script de ASP (<% et %>) ne peuvent pas être utilisés pour insérer des scripts dans le fichier Global.asa, nous devons utiliser l'élément HTML <script>.
Déclaration <object>
Vous pouvez créer des objets avec portée session ou application en utilisant le balisage <object> dans le fichier Global.asa.
Remarque :Le balisage <object> doit être placé en dehors du balisage <script>.
Syntaxe :
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Paramètre | Description |
---|---|
scope | Définissez le domaine d'application de l'objet (domaine ou portée) (Session ou Application). |
id | Spécifiez un id unique pour l'objet. |
ProgID |
Id associé à ClassID. Le format de ProgID est : [Vendor.]Component[.Version]. Il est nécessaire de spécifier ProgID ou ClassID. |
ClassID |
Spécifiez un id unique pour l'objet de classe COM. Il est nécessaire de spécifier ProgID ou ClassID. |
Instance
La première instance crée un objet nommé "MyAd" en utilisant le paramètre ProgID et dans le scope session :
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
La deuxième instance crée un objet nommé "MyConnection" en utilisant le paramètre ClassID :
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
Ces objets déclarés dans ce fichier Global.asa peuvent être utilisés par tout script de l'application.
GLOBAL.ASA :
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Vous pouvez utiliser l'objet "MyAd" à partir de n'importe quelle page de l'application ASP :
Un fichier .ASP :
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Déclaration de TypeLibrary
TypeLibrary (Bibliothèque de types) est un conteneur qui contient des fichiers DLL correspondant aux objets COM. En incluant des appels à TypeLibrary dans Global.asa, vous pouvez accéder aux constantes des objets COM et le code ASP peut mieux signaler les erreurs. Si l'application de votre site dépend d'objets COM déjà déclarés dans la bibliothèque de types, vous pouvez déclarer la bibliothèque de types dans Global.asa.
Syntaxe :
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Paramètre | Description |
---|---|
file | Définit le chemin absolu vers la bibliothèque de types. Les paramètres file ou uuid sont obligatoires, l'un ou l'autre. |
uuid | Définit un identifiant unique pour la bibliothèque de types. Les paramètres file ou uuid sont obligatoires, l'un ou l'autre. |
version | Optionnel. Utilisé pour choisir la version. Si la version spécifiée n'est pas trouvée, la version la plus proche sera utilisée. |
lcid | Optionnel. Identifiant régional de la bibliothèque de types. |
Valeur d'erreur
Le serveur renverra l'un des messages d'erreur suivants :
Erreur | Code | Description |
---|---|---|
ASP | 0222 | Spécification de bibliothèque de types invalide |
ASP | 0223 | La bibliothèque de types introuvable |
ASP | 0224 | La bibliothèque de types ne peut pas être chargée |
ASP | 0225 | La bibliothèque de types ne peut pas être enveloppée |
Remarque :Les balises METADATA peuvent être placées à n'importe quel endroit dans le fichier Global.asa (à l'intérieur ou à l'extérieur de la balise <script>). Cependant, nous recommandons encore de placer les balises METADATA en haut du fichier Global.asa.
Limites
Limites sur le contenu que l'on peut faire référence dans le fichier Global.asa :
Vous ne pouvez pas afficher le texte du fichier Global.asa. Ce fichier ne peut pas afficher d'informations.
Vous ne pouvez utiliser les objets Server et Application que dans les sous-programmes Application_OnStart et Application_OnEnd. Dans le sous-programme Session_OnEnd, vous pouvez utiliser les objets Server, Application et Session. Dans le sous-programme Session_OnStart, vous pouvez utiliser n'importe quel objet intégré.
Comment utiliser les sous-programmes
Global.asa est souvent utilisé pour initialiser des variables.
Les exemples ci-dessous montrent comment détecter le moment précis où le visiteur arrive pour la première fois sur le site. Le temps est stocké dans un objet Session nommé "started", et la valeur de la variable "started" peut être accédée par n'importe quel page ASP de l'application :
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa peut également être utilisé pour contrôler l'accès aux pages.
Les exemples ci-dessous montrent comment rediriger chaque visiteur nouveau vers une autre page, dans cet exemple, il sera redirigé vers la page "newpage.asp" :
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Nous pouvons également inclure des fonctions dans Global.asa.
Dans les exemples ci-dessous, lorsque le serveur Web démarre, la sous-programme Application_OnStart est également démarré. Ensuite, la sous-programme Application_OnStart appelle un autre sous-programme nommé "getcustomers". La sous-programme "getcustomers" ouvre une base de données, puis récupère un ensemble de enregistrements de la table "customers". Cet ensemble de enregistrements est assigné à un tableau, et sans consulter la base de données, n'importe quel page ASP peut accéder à ce tableau :
<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>
Instance Global.asa
Dans cet exemple, nous allons créer un fichier Global.asa qui peut calculer le nombre de visiteurs actuels.
Application_OnStart réinitialise la valeur de la variable Application "visitors" à 0 au démarrage du serveur.
Lorsqu'un nouveau utilisateur accède, le sous-programme Session_OnStart ajoute 1 à la variable "visitors".
Lorsque le sous-programme Session_OnEnd est déclenché, ce sous-programme décrémente la variable "visitors" de 1.
Fichier Global.asa :
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
Ce fichier ASP affiche le nombre d'utilisateurs actuels :
<html> <head> </head> <body> <p>Il y a actuellement <%response.write(Application("visitors"))%> en ligne!</p> </body> </html>
- Page précédente ASP #include
- Page suivante Email ASP