快速业务通道

Web应用程序开发技术

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
用程序。注意其格式是每个控件对应一个"名值对":控件名=控件值,各个名值对彼此用&联结起来。Web应用程序可以据此获知用户对控件的操作结果。

各种控件的类型名称及其对应的值可查阅参考文献[2],或利用网页编辑器进行实验,此处不再一一赘述。

用CB开发web应用程序

以下的描述以C++ Builder 6.0为例。

1.选择菜单File|New,在打开的对话框中选择图标WebServerApplication,在再次打开的对话框中选择ISAPI/NSAPIDynamicLinkLibrary,Delphi将为你建立一个web应用程序的框架,其中包含了一个核心部件TwebModule,负责在web服务器和你的应用程序之间传送数据。

2.现在我们可以为浏览器传送过来的查询或表单编写响应代码。选择WebModule,在ObjectInspector上将显示相应的属性(Properties),选择其中的属性Action,按下右端的小按钮,delphi将打开一个对话框,让我们设计响应程序段。按下其中的按钮"Add",Delphi将自动为我们的程序段起一个名字,例如WebActionItem1,并出现在对话框中。这种响应程序段Delphi称为"动作"(Action),为了区别不同的动作,必须为每一个动作起一个名字,我们可以修改这个名字使之更有意义些。

点击对话框中的动作名,ObjectInspector将会显示相应的属性。其中的MethodType用来指定对何种方法的请求消息作出响应,可供选择的项目有mtAny、mtGet、mtHead、mtPost和mtPut。其中后四项分别对应请求消息的方法GET、HEAD、POST和PUT,若你想要对所有的方法都作出响应,则可选择mtAny。

若你的动作是针对查询请求的,则还可以为属性PathInfo设置路径名。例如,假设我们想要对查询

http://www.Myside.com/Scripts/MyApp.dll/MyPath?MyQuery

作出响应,则可将PathInfo设置为"/MyPath"。注意在上述URI中,www.MySide.com是你的网点的网址,MyApp.dll是你正在编写的应用程序名称,你的应用程序将存放在web根目录下的子目录Scripts中。

接着是编写具体代码。C++ Builder是通过事件响应来执行代码的,选择ObjectInspector中的标签Events,其中只有一个事件OnAction,双击右方的编辑框,Delphi将在你的源程序中插入一个空白的过程,例如,

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
    TObject *Sender, TWebRequest *Request, TWebResponse *Response,
    bool &Handled)
{
}

其中最重要的是两个调用参数Request和Response。Request是一个TWebRequest对象,这种对象具有Accept,Authorization,CacheControl,Connection,...等属性,这些属性对应于HTTP请求消息中消息头的各个字段,这些属性的值就是这些字段的值。当上述响应过程被调用时,Delphi根据web服务器传送过来的消息头及消息实体,设置好对象Request的各个属性值,然后作为调用参数传递给执行动作的过程。对于查询消息,表示查询目标的查询字串(如上面提到的MyQuery)将存放在Request的属性Query中。如果查询字串是由"名值对"所构成的,且各名值对之间用&联结起来,例如

name=dog&color=black

则Delphi还会将各个名值对拆开,再将每一对中的"名"和"值"存放在Request的属性QueryFields中。QueryFields是Tstrings类型的对象,其属性Names和Values分别存放各个名值对的"名"和"值"。应用程序通过访问这些属性,便可知当前的查询是什么。

如果接收到的请求消息是用POST方法传送表单的操作结果,则如上所述,操作结果将是用&联结多个名值对的一串字串,这一字串将存放在Request的属性Content中,并且Delphi将分析这些名值对,将每一对中的"名"和"值"存放在Request的属性ContentFields中。Cont

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号