ASP Global.asa



Fichier Global.asa

Le fichier Global.asa est un fichier facultatif qui contient des déclarations d'objets, de variables et de méthodes accessibles par chaque page de l'application ASP.

Tous les scripts de navigateur légaux (JavaScript, VBScript, JScript, PerlScript, etc.) peuvent être utilisés dans Global.asa.

Le fichier Global.asa ne peut contenir que le contenu suivant :

  • Événement d'application

  • Événement de session

  • Déclaration<object>

  • Déclaration TypeLibrary

  • #include directive

Remarque : Le fichier Global.asa doit être stocké dans le répertoire racine de l'application ASP, et chaque application ne peut avoir qu'un seul fichier Global.asa.


Événements dans Global.asa

Dans Global.asa, vous pouvez indiquer aux objets d'application et de session quoi faire lorsque l'application/session démarre et quoi faire lorsque l'application/session se termine Quoi. Le code permettant d'accomplir cette tâche est placé dans le gestionnaire d'événements. Le fichier Global.asa peut contenir quatre types d'événements :

Application_OnStart - Cet événement se produit lorsque le premier utilisateur appelle la première page de l'application ASP. Cet événement se produit après le redémarrage du serveur Web ou la modification du fichier Global.asa. 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 une application ASP.

Session_OnEnd - Cet événement se produit chaque fois que l'utilisateur termine la session. Si l'utilisateur ne demande aucune page dans le délai spécifié (le délai par défaut est de 20 minutes), la session utilisateur prendra fin.

Application_OnEnd - Cet événement se produit après que le dernier utilisateur ait terminé sa session. Généralement, cet événement se produit lorsque le serveur Web est arrêté. Ce sous-programme est utilisé pour effacer les paramètres après l'arrêt de l'application, tels que la suppression d'enregistrements ou l'écriture d'informations dans un fichier texte.

Un fichier Global.asa pourrait ressembler à ceci :

<script language="vbscript" runat="server">

sub Application_OnStart
'du code
end sub

sub Application_OnEnd
'du code
fin du sous

sous Session_OnStart
'du code
end sub

sub Session_OnEnd
'du code
fin du sous

</script>

Remarque : Comme nous ne pouvons pas insérer de scripts en utilisant les délimiteurs de script ASP (<% et %>) dans le fichier Global.asa, nous devons placer le sous-programme dans le fichier HTML < Inside the script> ; élément.


<object> La déclaration

peut créer un objet avec une portée de session ou d'application dans le fichier Global.asa en utilisant la balise <object>

Remarque : La balise <object> doit être en dehors de la balise <script>

Syntaxe

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

ParamètresDescription
portéeDéfinir l'objet (Session ou Application).
idSpécifiez un identifiant unique pour l'objet.
ProgIDL'identifiant associé à ClassID. Le format de ProgID est : [Vendor.]Component[.Version].
参数描述
scope设置对象(Session 或 Application)的作用域。
id为对象指定一个唯一的 id。
ProgID与 ClassID 关联的 id。ProgID 的格式是:[Vendor.]Component[.Version]。

ProgID 或 ClassID 必需被指定。

ClassID为 COM 类对象指定一个唯一的 id。

ProgID 或 ClassID 必需被指定。

ProgID ou ClassID doit être spécifié. <🎜>
ClassIDSpécifiez un identifiant unique pour l'objet de classe COM. <🎜>ProgID ou ClassID doit être spécifié. <🎜>

Instances

La première instance crée un objet de portée de session nommé "MyAd" en utilisant le paramètre ProgID :

<object runat="server" scope ="session" id="Monannonce" progid="MSWC.AdRotator">
</object>

La deuxième instance crée un objet de portée d'application nommé "MyConnection" à l'aide du paramètre ClassID :

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
< 🎜>
Les objets déclarés dans le fichier Global.asa peuvent être utilisés par n'importe quel script de l'application :

GLOBAL.ASA :

<object runat= "serveur" scope="session" id="Monannonce" progid="MSWC.AdRotator">
</object>

Vous pouvez référencer l'objet "MyAd" depuis n'importe quelle page de votre application ASP :

Un fichier .ASP :

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>


Déclaration TypeLibrary

TypeLibrary (bibliothèque de types) est un conteneur qui contient des fichiers DLL correspondant aux objets COM. En incluant un appel à TypeLibrary dans le fichier Global.asa, vous pouvez accéder aux constantes de l'objet COM et votre code ASP peut mieux signaler les erreurs. Si votre application Web repose sur des objets COM de types de données déclarés dans une bibliothèque de types, vous pouvez déclarer la bibliothèque de types dans Global.asa.

Syntaxe

<!--METADATA TYPE="TypeLib"
file="
filename" uuid="id" version="numéro" lcid="localeid"-->
< tr>
ParamètreDescription
fileSpécifie le chemin absolu vers la bibliothèque de types.
paramètre file ou paramètre uuid, les deux sont indispensables.
参数描述
file规定指向类型库的绝对路径。

file 参数或者 uuid 参数,两者缺一不可。

uuid规定了类型库的唯一的标识符。

file 参数或者 uuid 参数,两者缺一不可。

version可选。用于选择版本。如果没有找到需要的版本,将使用最接近的版本。
lcid可选。用于类型库的地区标识符。
uuid spécifie l'identifiant unique de la bibliothèque de types. <🎜>paramètre file ou paramètre uuid, les deux sont indispensables. <🎜>
versionFacultatif. Utilisé pour sélectionner la version. Si la version requise n'est pas trouvée, la version la plus proche sera utilisée.
lcidFacultatif. L'identifiant de paramètres régionaux utilisé pour la bibliothèque de types.

Valeur d'erreur

Le serveur renverra l'un des messages d'erreur suivants :

错误代码描述
ASP 0222无效的类型库规范
ASP 0223没有找到类型库
ASP 0224无法加载类型库
ASP 0225无法包装类型库

Remarque : La balise METADATA peut apparaître n'importe où dans le fichier Global.asa (soit à l'intérieur, soit à l'extérieur de la balise <script>). Cependant, nous recommandons toujours de placer la balise METADATA en haut du fichier Global.asa.


Limitations

Limitations sur ce qui peut être référencé dans le fichier Global.asa :

  • Vous ne pouvez pas afficher le contenu dans le fichier Global.asa texte du fichier. Aucune information ne peut être affichée sur ce fichier.

  • Vous ne pouvez utiliser que les objets Serveur et Application dans les sous-programmes Application_OnStart et Application_OnEnd. Dans le sous-programme Session_OnEnd, vous pouvez utiliser les objets Serveur, 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.

L'exemple suivant montre comment détecter l'heure exacte à laquelle un visiteur arrive pour la première fois sur un site Web. L'heure est stockée dans un objet Session nommé "started", et la valeur de la variable "started" est accessible par n'importe quelle page ASP de l'application :

<script language="vbscript" runat= "server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa est également disponible Pour contrôler l’accès aux pages.

L'exemple suivant montre comment rediriger chaque nouveau visiteur vers une autre page, en l'occurrence une page nommée "newpage.asp" :

<script language="vbscript" runat ="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

Vous pouvez inclure des fonctions dans le fichier Global.asa.

Dans l'exemple suivant, lorsque le serveur Web démarre, le sous-programme Application_OnStart démarre également. Le sous-programme Application_OnStart appelle ensuite un autre sous-programme nommé « getcustomers ». Le sous-programme « getcustomers » ouvre une base de données et récupère un jeu d'enregistrements de la table « clients ». Cet ensemble d'enregistrements est affecté à un tableau, et n'importe quelle page ASP peut accéder à ce tableau sans interroger la base de données :

<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("sélectionner le nom des clients")
Application("clients")=rs .GetRows
rs.Close
conn.Close
end sub

</script>


Exemple Global.asa

Dans cet exemple, nous allons créer un fichier Global.asa qui calcule le nombre actuel de visiteurs.

  • Lorsque le serveur démarre, Application_OnStart définit la valeur de la variable d'application "visiteurs" à 0.

  • Chaque fois qu'un nouveau visiteur arrive, le sous-programme Session_OnStart ajoutera 1 à la variable "visiteurs".

  • A chaque fois que le sous-programme Session_OnEnd est déclenché, le sous-programme décrémente la variable "visiteurs" 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>

Dans le fichier ASP, afficher le nombre de visiteurs actuels :

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Il y a <%response.write (Application ("visiteurs"))%> en ligne maintenant !</p>
</body>
</html>