使用mfc开发isapiextensions程序

使用mfc开发isapiextensions程序

ID:34739675

大小:70.00 KB

页数:13页

时间:2019-03-10

使用mfc开发isapiextensions程序_第1页
使用mfc开发isapiextensions程序_第2页
使用mfc开发isapiextensions程序_第3页
使用mfc开发isapiextensions程序_第4页
使用mfc开发isapiextensions程序_第5页
资源描述:

《使用mfc开发isapiextensions程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、使用MFC开发ISAPIExtensions程序----1.1ISAPI与CGI----通用网关接口CommonGatewayInterface(CGI)很早就作为交互式的Web应用程序的一个标准广泛应用在Internet之中。CGI脚本允许人们用多种编程语言(如Basic、C、Perl、Shell等等)来编写简单的应用程序。这些脚本运行在Web服务器上,而在客户的Web浏览器上输出运行结果。客户的输入通过环境变量或者标准输入设备来进行传递,然后CGI程序根据需要完成特定的功能,并通过标准输出设备送回HTML格式的结果显示在客户的浏

2、览器中。CGI的这一特性—设计简单,再加上它支持多种编程语言,使得开发CGI应用程序非常简单。尽管如此,人们在使用中还是发现了CGI应用程序的一个很大的缺点:性能不高。虽然有不少办法来使CGI应用程序运行得更快一些(如把它们变成编译好的二进制代码,而不用Perl脚本),但执行速度仍然是一个问题。每当通过Web访问一个CGI程序时,CGI执行文件(或者脚本的解释器)都要为每一个请求创建一个新的进程。对于一个信息量比较大的站点来说,这无疑给服务器增加了一个沉重的负担。----当微软开始开发自己的Web服务器(MicrosoftInter

3、netInformationServer或简称为IIS)时,意识到了CGI的这一大的缺陷,于是他们就引入了ISAPI。----ISAPI使用动态链接库DLL而不是可执行代码。这些DLLs被装入到服务器的内存空间。由于代码在内存中缓存起来了,而不是每次接收到请求时再装入到内存中,因此这一技术极大地提高了交互式的Web应用程序的性能。----ISAPI程序分为两种:一种就是我们要介绍的ISAPIExtensions,它提供了一种比CGI更好的实现方法;另一种称作ISAPIFilter,它可以对服务器上进入或出去的数据进行过滤。----总

4、的来说,ISAPI优于CGI之处包括:----①速度快:ISAPI在性能上有很大的提高;----②功能强:ISAPI还可以创建Filter以对数据进行预处理。并且它完全与MFC集成在一起了。----相反,ISAPI的不足之处有:----①标准化不够:目前只有一部分服务器支持ISAPI;----②开发困难:相关资料很少,并且调试很麻烦。----1.2ISAPI基础----ISAs开发主要基于MFC的CHttpServer类。该类控制了所有与服务器的交互操作,同时还包含了用于客户请求的所有函数。尽管一个ISA只能有CHttpServer

5、类的一个实例,但每个ISA仍然可以同时处理多个请求。这是通过CHttpServer类为每个请求创建一个CHttpServerContext类来实现的。CHttpServerContext类包含了每个特定请求的所有数据以及由ISA返回到客户的所有HTML代码。----ISAPIDLLs的调用方法和CGI一样:在客户端使用GET或POST方法。例如,当客户作出下列请求时:----http://www.mysite.com/myisa.dll?name=fisherman&id=12345----"name"域和"id"域以及与它们相关的

6、数据都被传递给ISA。ISAPI在使用这些相关的数据之前把它们存放在相应的数据结构中,这是通过一个请求映射系统来实现的。----每一个请求都有一个解析映射表。通过定义服务器从客户接收的数据的类型和顺序,该解析映射表可以把数据传递到合适的数据结构中。例如,对于请求"name=fisherman&id=12345",解析映射表将显示一个字符串和一个整型数,并且"fisherman"and"12345"将被解析出来存放到各自的数据结构中。----解析映射系统还有另外一个功能:ISAPI可以把请求传递给ISA内特定的成员函数。请求字符串可以

7、包含一个命令,解析映射表就使用该命令把请求传递给ISA内正确的成员函数。----由于ISAPI使用命令驱动机制来处理请求,因此在开始开发ISA程序时可能会觉得有些麻烦,但是一旦学会了,用户就会发现这是一个非常强大的处理请求的方法。----2.使用MFC开发ISA程序----2.1建立工程----开发ISA的第一步工作是建立一个工程。和创建其它VisualC++(VC++)工程一样,创建ISA也有一个wizard来指导用户完成初始的步骤。打开VC++,在File菜单中选择New,然后在对话框中选择Projects面板,在下面的列表中选

8、择"ISAPIExtensionWizard"工程类型,选择适当的路径,并把它命名为"HelloWeb",如图1所示。图1 New对话框----接着选择Ok按钮,于是出现一个对话框让用户选择预创建的ISAPI程序类型,缺省情况下是IS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。