运用C++ Builder6开发ISAPI的Web服务器应用程序

时间:2022-08-20 09:43:33

【前言】运用C++ Builder6开发ISAPI的Web服务器应用程序由文秘帮小编整理而成,但愿对你的学习工作带来帮助。(Xi'an Institute of Post & Telecommunications,Xi'an 710121, China) Abstract:In this paper,we anlynazed the advantages of development tools,compared the characters of CGI(Common Gateway Interface)、ASP(Active Server Page) and ISAPI(Internet Sever ...

运用C++ Builder6开发ISAPI的Web服务器应用程序

摘要:通过对开发工具的分析和对使用最为广泛的服务器端程序标准CGI(Common Gateway Interface)、ASP(Active Server Page)和ISAPI(Internet Sever Application Programming Interface)比较,提出了运用c++ Builder开发ISAPI的Web服务器应用程序。利用C++ Builder对数据库的强大支持能力和强大的网络编程功能,开发安全、高效、可靠的Web服务器应用程序。

关键词:ISAPI;安全;控件;BDE(Borland Database Engine);数据库

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)27-1998-01

Using C++ builder6 to Develop ISAPI for Web Server Program

DING Peng-fei

(Xi'an Institute of Post & Telecommunications,Xi'an 710121, China)

Abstract:In this paper,we anlynazed the advantages of development tools,compared the characters of CGI(Common Gateway Interface)、ASP(Active Server Page) and ISAPI(Internet Sever Application Programming Interface) which is the most popular server teminanl progam standard.Using the good abilty of suporting database and the network programming to develop safe、high efficient and credible Web server application program.

Key words: ISAPI; safe; components; BDE; database

通过对C++ Builder开发工具的分析,使用最为广泛的Web服务器端程序标准CGI(Common Gateway Interface,公共网关接口 )、ASP(Active Server Page)、isapi(Internet Sever Application Programming Interface)的比较,提出了利用C++ Builder开发ISAPI的web服务器应用程序

1 C++ Builder开发工具的比较

C++Builder沿袭了Delphi的优点,继承了visual c++、Borland c++等开发工具的优点,在底层控制方面表现出色。C++Builder中嵌入了Delphi中所使用的高效率的VCL(Visual Component Library可视化组件库)。

C++Builder具有强大的数据库应用开发功能,它提供了强大的数据库处理功能。C++Builder具有强大的网络编程功能,它具有众多的Internet应用开发控件,它们基本涵盖了Internet应用的全部功能。

2 使用最为广泛的服务器端应用程序标准CGI、ASP和ISAPI的比较

目前,使用最为广泛Web服务器端程序标准有CGI、ASP、ISAPI。ASP编程简单,但执行效率较低。ISAPI目前已经成为标准的技术,这种技术使用一些专有的API,使服务器接受客户的写的DLL程序,并将常驻内存。在装入DLL后,服务器可以通过主进程中的线程执行单个请求,不像在CGI应用程序那样,必须重新启动一个EXE。

3 使用C++ Builder开发ISAPI DLL的相关组件介绍

C++Builder组件Internet页中和Web服务器应用程序相关的组件有TPageProducer组件、TDataSetPageProducer组件、TQueryTableProducer组件和TDataSetTableProducer组件,这些HTML制作器组件可以方便建立HTML页面。

通过研究发现,利用TPageProducer的HTMLFile属性设置该组件的HTML文件,同时,将该文件中需要显示数据库信息的地方用特殊标记予以表示,并在应用程序中将特殊标记用合适格式的数据库数据进行替换。这样可以利用HTML编辑器制作布局美观的HTML文件,同时利用应用程序动态替换HTML中的特殊标记,从而快速构建动态交互网站。

4 利用C++ Builder创建ISAPI的Web服务器应用程序

在C++ Builder6中创建ISAPI的Web服务器应用程序的步骤:

1)从“File”菜单中选择“New/other”选项,在弹出的对话框中选择New页中的Web Server Applicatio项,在弹出的对话框中选择“ISAPI/NSAPI Dynamic Link Library”,单击“OK”,并保存工程。

2)在步骤(1)结束后,将会产生Webmodule容器,在该容器中添加下面的组件并设置相应的属性:

将Table组件并放置于Webmodule容器中,将其Database属性设置成你的数据库别名或者数据库的绝对路径。将TableName属性设置成数据库表名。

将PageProducer组件并放置于Webmodule容器中,将其HTMLFile属性设置成要反馈给客户端的包含路径的HTML文件。

3)在程序框架上创建ActionItem:

在产生的Webmodule容器中,双击鼠标左键激活Action Editor对话框,在这个对话框中单击Add按钮为程序添加一个ActionItem。

在Action Editor中选中新建的ActionItem,在Object Inspector设置ActionItem的属性,Enabled设置为true,MethodType设置为mtAny,Default设置为ture。

4)为ActionItem编写事件代码:

选中ActionItem项,在Object Inspector中选择Event页,在OnAction项中双击鼠标左键,弹出该事件的相应函数,在该函数中写入该事件的相应代码。

5)将此项目命名保存,然后编译生成dll的动态链接库。此dll文件即是我们需要的Web服务器应用程序。

5 Web服务器应用程序如何判断客户端的请求以及如何获取客户端的信息

在ActionItem有多个请求的响应函数时,Web服务器应用程序如何判断请求呢?通过下面的例子加以说明。

if(Request->ContentFields->Text.Pos("ShowLeaveWord")!=0)

{ShowLeaveWord(Request,Response);}

else

{

if(Request->ContentFields->Text.Pos("AdminReg")!=0)

{AdminReg(Request,Response);}

}

在这个例子中,如果客户端的请求时有按钮的name值为ShowLeaveWord的网页提出的,则Web服务器应用程序调用ShowLeaveWord(Request,Response)。Web服务器应用程序正是通过判断Text.Pos()的值是否不为0来判断是由那个按钮提出的请求,从而调用不同的响应函数。

获取客户端的提交信息:客户端提出请求的网页的Method可以设置成Post或Get。如果请求页的Method值为Post时,Web服务器应用程序通过Request的ContentFields属性获取客户端的提交信息,如这个语句“temp=Trim(Request->ContentFields->Values["title"]);”的功能是将name为title的文本框(或文本域等)中的输入值赋给temp1。如果请求页的Method值为Get时,Web服务器应用程序通过Request的QueryFields属性获取客户端的提交信息。

6 结束语

以上所介绍的方法是开发Web服务器应用程序的基本方法。利用C++ Builder开发基于基于网络环境下的应用程序不失为一种有效的方法,与利用Visual C++、ASP和Delphi等开发工具相比,具有自己独特的优势。

参考文献:

[1] 刘滨.C++ Builder4高级编程实例精解[M].北京:国防工业出版社,2000.

[2] 常新功.用ISAPI编写Internet服务器应用程序[J].微机发展,2002,12(2):76-78.

[3] 熊锡义.动态网页设计[M].北京:清华大学出版社,北京交通大学出版社.2004.

上一篇:计算机故障检修探析 下一篇:基于链表的Dijkstra算法优化研究