1. Web 调度器(Web Dispatcher)
如果您使用的是 Web 模块,它就充当 Web 调度器的角色。如果您使用的是现成的数据模块,则必须向该数据模块中添加一个单一的调度器组件(Web.HTTPApp.TWebDispatcher)。调度器维护着一个动作项集合,这些动作项知道如何处理特定类型的请求消息。当 Web 应用程序将请求对象和响应对象传递给调度器时,它负责分派请求消息。
通过向调度器添加动作来设置 Web 调度器。
1.1 向调度器添加动作
通过在调度器的“动作”属性上点击省略号按钮,从对象检查器打开动作编辑器。可以通过在动作编辑器中点击“添加”按钮,将动作项添加到调度器中。
向调度器添加动作,以响应不同的请求方法或目标 URI。您可以以多种方式设置动作项。您可以从预处理请求的动作项开始,并以一个默认动作结束,该默认动作检查响应是否完整,然后发送响应或返回错误代码。或者,您可以为每种类型的请求添加一个单独的动作项,每个动作项完全处理请求。
1.2 分派请求消息
当调度器接收到客户端请求时,它会生成一个 BeforeDispatch 事件。这为应用程序提供了一个机会,在任何动作项处理之前预处理请求消息。
接下来,调度器遍历其动作项列表,寻找与请求消息的目标 URL 的 PathInfo 部分匹配,并且提供请求消息方法所指定的服务的条目。它通过比较 TWebRequest 对象的 PathInfo 和 MethodType 属性与动作项上同名属性来实现这一点。
当调度器找到一个合适的动作项时,它会触发该动作项。当动作项触发时,它会执行以下操作之一:
1) 填充响应内容并发送响应,或发出请求已完全处理的信号。
2) 向响应中添加内容,