Création d'un objet Active Server

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création d'une page Active Server - Index


Un objet Active Server est un objet Automation qui accède à toutes les informations de l'application ASP et aux messages HTTP qu'elle utilise pour communiquer avec les navigateurs. Il descend de AspTlb.TASPObject ou de AspTlb.TASPMTSObject (qui à son tour descend de System.Win.ComObj.TAutoObject), et il gère les protocoles d'Automation, en s'exposant pour être utilisé par d'autres applications ou par le script dans la page Active Server. Pour créer un objet Active Server, utilisez l'expert Objet Active Server.

Votre projet d'objet Active Server peut prendre, selon vos besoins, la forme d'un exécutable (exe) ou d'une bibliothèque (dll). Cependant vous devez tenir compte des inconvénients liés à l'utilisation d'un serveur hors processus.

Pour afficher l'expert d'objet Active Server :

  1. Choisissez Fichier > Nouveau > Autre.
  2. Sous Projets Delphi, sélectionnez le dossier ActiveX.
  3. Double-cliquez sur l'icône Bibliothèque ActiveX. Cela crée un projet DLL qui hébergera l'objet Active Server.
  4. Choisissez de nouveau Fichier > Nouveau > Autre again.
  5. Dans le dossier Projets Delphi, double-cliquez sur l'icône Objet Active Server.
  6. Dans l'expert, spécifiez le nom du nouvel objet Active Server et spécifiez les modèles d'instanciation et de thread qu'il faut gérer.

Ces paramètres déterminent comment l'objet peut être appelé. Vous devez écrire l'implémentation de telle manière qu'elle soit conforme au modèle (par exemple, en évitant les conflits de thread). Ce qui rend unique l'objet Active Server est sa capacité à accéder aux informations relatives à l'application ASP et aux messages HTTP échangés entre la page Active Server et les navigateurs client Web. L'accès à ces informations se fait via les éléments intrinsèques ASP. Vous pouvez, dans l'expert, spécifier comment votre objet y accède en spécifiant l'option Type d'Active Server :

  • Si vous utilisez IIS 3 ou IIS 4, vous pouvez utiliser Méthodes d'événement de niveau page. Avec ce modèle, votre objet implémente les méthodes OnStartPage et OnEndPage appelées au chargement/déchargement de la page Active Server. Quand l'objet est chargé, il obtient automatiquement une interface IScriptingContext qu'il utilise pour accéder aux éléments intrinsèques ASP. Ces interfaces sont à leur tour reflétées sous la forme de propriétés héritées de la classe de base (TASPObject).
  • Si vous utilisez IIS5 ou plus, utilisez le type Contexte d'objet. Avec ce modèle, votre objet obtient une interface IObjectContext qu'il utilise pour accéder aux éléments intrinsèques ASP. Là encore, ces interfaces sont à leur tour reflétées sous la forme de propriétés héritées de la classe de base (TASPMTSObject). L'avantage de cette approche tient à ce que l'objet accède à tous les autres services proposés par IObjectContext. Pour accéder à l'interface IObjectContext interface, simply call GetObjectContext (defined in the mtx unit) as follows: ObjectContext := GetObjectContext;

Vous pouvez demander à l'expert de générer une page .ASP simple pour accueillir le nouvel objet Active Server. La page générée contient un script minimaliste (écrit en VBScript) qui crée votre objet Active Server à partir de son ProgID et indique où vous pouvez appeler ses méthodes. Ce script appelle Server.CreateObject pour démarrer votre objet Active Server.

Remarque : Même si le script de test généré utilise VBScript, une page Active Server peut également contenir du code Jscript.

Lorsque vous sortez de l'expert, une nouvelle unité est ajoutée au projet en cours ; elle contient la définition de l'objet Active Server. De plus, l'expert ajoute un projet de bibliothèque de types et ouvre l'éditeur de bibliothèque de types. Vous pouvez alors exposer les propriétés et méthodes de l'interface via la bibliothèque de type comme indiqué dans Définition de l'interface d'un objet COM. Quand vous écrivez l'implémentation des propriétés et méthodes de votre objet, vous pouvez tirer profit des éléments intrinsèques ASP pour obtenir des informations sur l'application ASP et les messages HTTP qu'elle utilise pour communiquer avec les navigateurs.

Comme tout autre objet Automation, l'objet Active Server implémente une interface double, qui gère aussi bien la liaison précoce (à la compilation) via la VTable et la liaison tardive (à l'exécution) via l'interface IDispatch.

Voir aussi