Le module Web

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création d'applications serveur Web avec WebBroker


Le module Web (Web.HTTPApp.TWebModule) est un descendant de System.Classes.TDataModule ; il s'utilise de la même façon : pour offrir un contrôle centralisé pour les règles de gestion et les composants non visuels dans l'application Web.

Ajoutez tout générateur de contenu que votre application utilise pour générer les messages de réponse. Il peut s'agir de producteurs de contenu tels qu'un serveur Web agissant comme un client dans une application de base de données multi-niveau.

Le module Web ne se contente pas de stocker les composants non visuels et des règles de gestion : il fait aussi office de répartiteur Web en associant les messages de requête HTTP reçus aux éléments d'action qui génèrent les réponses à ces requêtes.

Vous avez peut-être déjà un module de données paramétré avec les composants non visuels et les règles de gestion que vous souhaitez utiliser dans votre application Web. Vous pouvez alors remplacer le module Web par ce module de données : Il suffit de supprimer le module Web généré automatiquement et de le remplacer par votre module de données. Ajoutez ensuite un composant Web.HTTPApp.TWebDispatcher à votre module de données pour qu'il puisse répartir les messages de requête vers les éléments d'action, comme le ferait un module Web. Si vous voulez modifier la façon dont les éléments d'action sont choisis pour répondre aux messages de requête HTTP reçus, dérivez un nouveau composant répartiteur de Web.HTTPApp.TCustomWebDispatcher et ajoutez-le au module de données.

Votre projet ne peut contenir qu'un répartiteur. Il peut s'agir soit du module Web qui est automatiquement généré lorsque vous créez le projet, soit du composant TWebDispatcher que vous ajoutez au module de données qui remplace le module Web. Si un second module de données contenant un répartiteur est créé lors de l'exécution, l'application serveur Web générera une erreur.

Remarque : Le module Web que vous paramétrez en phase de conception est en fait un modèle. Dans les applications ISAPI et NSAPI, chaque message de requête crée un thread distinct. Une instance du module Web et de son contenu est créée dynamiquement pour chaque thread.

Avertissement : Le module Web d’une application serveur Web à base de DLL ou de SO (pour la plate-forme Linux) est mis en mémoire cache pour une utilisation ultérieure afin d’améliorer les temps de réponse. L’état du répartiteur et sa liste d’actions ne sont pas réinitialisés entre deux requêtes. Si vous activez ou désactivez des éléments d’action en cours d’exécution, vous obtiendrez des résultats imprévisibles lorsque ce module sera utilisé pour les requêtes client suivantes.

Voir aussi