Fichier Global.asa 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>