C++是很多网络中繁忙站点的核心。这为构建中间层企业逻辑提供了高度的性能基础,经常用于扩展Web服务器和动态地生成HTML......
运行中的ATL 服务器
解释这种结构最好的方式是举一个例子:规范的"Hello World!"。此处显示的"Hello World!"应用程序是下一Visual C++发行版用于构建ATL服务器应用程序的开端。运行完ATL服务器应用程序向导后创建的在部分代码如此处所示。
一个ATL服务器ISAPI DLL被用于每个Web站点。DLL作为IIS的扩展,允许引用了.SRF文件的URLs被DLLs所处理。ISAPI DLL是IIS注册的用于.SRF文件的默认处理器。在这个例子中,用户访问http://webserver/atlserver/HelloWorld.srf通过ISAPI DLL初始化.SRF文件的处理过程。ISAPI DLL 通过 CisapiExtension类完成它的实现。ISAPI扩展通过IserviceProvider接口提供来自ISAPI扩展的服务以请示处理对象。ISAPI可能提供的一些服务是会话服务,每线程数据库链接,浏览器功能服务,及一些缓冲服务,包括模板,DLL,和二进制大对象(BLOB)缓冲。如果在ATL服务器应用程序向导选中了,ATL服务器将自动为开发人员构建一个ISAPI DLL。开发人员可以根据期望的定置等级,修改生成的ISAPI DLL的默认代码,但这并不是必需的。
.SRF文件驻留在Web服务器上,它定义了网页如何布局,由ATL服务器应用程序DLLs生成的动态内容如何使用。.SRF文件的内部内容是大多数开发人员所熟悉的;他们象HTML文件,但有一些值得注意的附加部分。
{{handler HelloWorld.dll/Default}} <html > < head > < title >{{Title}}< /title > < /head > < body > < h1 >{{Title}}< /h1 >
{{HelloWorld}}
< /body > < /html > |
表 1. HelloWorld.srf文件的内容
此.SRF文件的最上一行指出,由这个文件调用的代码位于HelloWorld DLL中,而HelloWorld DLL是为名为"'Default'"的C++对象提供一个接口。注意,此处使用了两对大括号。在SRF文件中,这两对大括号叫作代替标记。这些大括号中的内容包含了描述指示和/或在文件上部的处理器标记中命名的C++对象的方法名。{{Title}} 和 {{HelloWorld}}替代标记指定了"'Default'"对象(此对象将被调用以提供动态内容)的功能。
也许你已经注意到了,.SRF文件将HTML页布局与产生动态内容的代码区分开来。借助于ATL服务器,网页设计器可以在需要动态内容的地方,使用HTML编辑工具如Visual Studio .NET?位置标签对网页进行设计和布局。这些标签与由Visual C++创建的服务器端应用程序DLLs内的代码相对应。对代码进行处理的开发人员可以这样做,而不必关心网页中布局或静态文本的偶尔变化。
查看本文来源