Réponse aux messages de requête avec des éléments d'action

De RAD Studio
Aller à : navigation, rechercher

Remonter à Eléments d'action


Le plus gros du travail de l'application serveur Web est effectué par les éléments d'action lors de leur exécution. Lorsque le répartiteur Web déclenche un élément d'action, ce dernier peut répondre au message de requête en cours de deux manières :

  • Si un composant générateur est associé à l'élément d'action comme valeur de sa propriété Producer, ce générateur affecte automatiquement le contenu Content du message de réponse à l'aide de sa méthode Content. La page Internet de la palette d'outils inclut une série de composants générateur de contenu qui permettent d'élaborer une page HTML pour le contenu du message de réponse.
  • Une fois que le générateur a affecté un contenu de réponse (si un générateur est associé), l'élément d'action reçoit un événement HTTPApp.OnAction. Le gestionnaire d'événement OnAction reçoit l'objet Web.HTTPApp.TWebRequest qui représente le message de requête HTTP et un objet Web.HTTPApp.TWebResponse permettant de remplir les informations de réponse.

Si le contenu de l'élément d'action peut être généré par un seul générateur de contenu, il est plus simple d'affecter le générateur de contenu comme valeur de la propriété Producer de l'élément d'action. Toutefois, tout générateur de contenu demeure accessible à partir du gestionnaire d'événement OnAction. Le gestionnaire d'événement OnAction offre une souplesse supplémentaire, qui vous permet d'utiliser plusieurs générateurs de contenu, d'affecter des propriétés de message de réponse, etc.

Le composant générateur de contenu et le gestionnaire d'événement OnAction peuvent utiliser tous les objets et toutes les méthodes de bibliothèque d'exécution pour répondre aux messages de requête. Ils peuvent accéder à des bases de données, faire des calculs, construire ou sélectionner des documents HTML, etc. Pour plus d'informations sur la génération de contenu de réponse à l'aide de composants générateur de contenu, voir Génération du contenu des messages de réponse.

Envoi de la réponse

Un gestionnaire d'événement OnAction peut renvoyer la réponse au client Web à l'aide des méthodes de l'objet TWebResponse. Cependant, si aucun élément d'action n'envoie la réponse au client, elle sera envoyée par l'application serveur Web si le dernier élément d'action ayant analysé la requête indique que la requête a été traitée.

Utilisation de plusieurs éléments d'action

Vous pouvez répondre à une requête depuis un seul élément d'action ou répartir le travail entre plusieurs éléments d'action. Si l'élément d'action n'élabore pas complètement le message de réponse, il doit indiquer cet état dans le gestionnaire d'événement OnAction en mettant le paramètre Handled à False.

Si de nombreux éléments d'action se partagent la tâche de répondre aux messages de requête et que chacun met Handled à False, pensez à vérifier que l'élément d'action par défaut laisse le paramètre Handled à True. Sinon, aucune réponse n'est envoyée au client Web.

Lorsque plusieurs éléments d'action se partagent la gestion du message de requête, il faut que le gestionnaire d'événement OnAction de l'élément d'action par défaut ou que le gestionnaire d'événement AfterDispatch du répartiteur vérifie que toutes les tâches ont bien été effectuées. Si ce n'est pas le cas, il devra définir le code d'erreur adéquat.

Voir aussi