Web应用程序开发技术
用程序。注意其格式是每个控件对应一个"名值对":控件名=控件值,各个名值对彼此用&联结起来。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将在你的源程序中插入一个空白的过程,例如,
其中最重要的是两个调用参数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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |