您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Delphi 6程序设计及其应用开发--第7章 创建Web服务器程序
第7章创建Web服务器程序本章要点7.1Internet概述7.2Web服务器程序简介7.3ISAPI编程7.4CGI编程7.5ISAPIDLL和CGI之间的相互转化本章要点在Internet概述的基础上,对Web服务器程序进行阐述。结合实例说明了ISAPI编程。结合实例说明了CGI编程。返回本章首页7.1Internet概述7.1.1术语与标准7.1.2统一资源定位器7.1.3超文本标记语言7.1.4HTTP服务器活动返回本章首页7.1.1术语与标准与Web服务器应用程序相关的几个重要RFC标准包括:RFC822:ARPAlnternet文本报文标准,描述了报文头标的结构和内容。RFC152l:MIME第一部分,描述封装和传递多种格式和多段Internet信息的方法。RFCl945:超文本传输协议(HTTP协议),描述了多媒体文档的传输协议。返回本节7.1.2统一资源定位器URL对网络资源的位置提供了一种抽象的识别方法,并用这种方法给资源定位。这里的资源是指Internet上可以被访问的任何对象,包括文件、文档、图像、声音等等,以及与Internet相连的任何形式的数据。URL是一个字符串,它的一般格式如下:协议://主机名/脚本文件名/路径信息?查询条件。返回本节7.1.3超文本标记语言HTML文档通过标记(Tag)和属性(Attribute)对超文本的语义进行描述。HTML虽然本质上并不是编程语言,但它却是在开发HTML文档时必须遵守的一套严格而且简明易懂的语法规则。也就是说,如果一个文档是基于HTML标准的,则可以解释某些标记的含义。返回本节7.1.4HTTP服务器活动Web浏览器和Web服务器之间通过HTTP协议进行通信。HTTP请求分为两种类型,一种是GET请求,另一种是POST请求。Web服务器接收到客户请求之后,将根据配置信息执行一定数量的活动。当Web服务器应用程序完成客户请求之后。必须构造一个HTML页面或其他MIME内容,并传输给客户。返回本节7.2Web服务器程序简介7.2.1Web服务器程序的种类7.2.2Web服务器应用程序的逻辑结构7.2.3调试服务器程序返回本章首页7.2.1Web服务器程序的种类Delphi6中可以创建的Web服务器程序包括:CGI程序、Win-CGI程序和ISAPI(MicrosoftServerDLL)、NSAPI(NetscapeServerDLL)。返回本节7.2.2Web服务器应用程序的逻辑结WebServerWebApplicationWebModule(Dispatcher)WebRequestWebResponseActionItemContentRroducerContentRroducerContentRroducerActionItem图7-1Web服务器程序的逻辑结构返回本节7.2.3调试服务器程序不同类型的Web服务器程序,需要在支持相应的服务器程序的服务器上进行。调试ISAPI或NSAPI类型的程序,则要求在支持这种服务器程序的服务器上进行。可以在服务器中编写一定的代码,作为用户请求直接调用这些服务器程序生成的DLL;而调试CGI和WinCGI类型的服务器程序就比较困难一些,需要在服务器上执行这些程序,并且需要编写代码作为用户请求的信息。返回本节7.3ISAPI编程7.3.1返回静态页面7.3.2返回动态页面7.3.3接收用户输入的ISAPIDLL7.3.4一个完整的Web数据库应用程序返回本章首页7.3.1返回静态页面其步骤(具体制作如图7-2~7-10所示):1.新建项目2.程序框架3.创建ActionItem4.为ActionItem编写代码5.设置服务器6.编译ISAPI动态链接库程序7.调试ISAPI动态链接库图7-2选择WebServerApplication图7-3选择生成Web服务器程序的类型图7-4ISAPI动态链接库的框架图7-5ActionEditor对话框图7-6使用对象监视器为ActionItem设置属性图7-7选择存放ISAPI动态链接库的目录图7-8设置scripts目录为可执行的图7-9设置编译后的文件后缀名为dll图7-10浏览器中显示由ISAPI动态链接库生成的静态HTML页面返回本节7.3.2返回动态页面其具体的步骤如下:(1)在projectl项目文件中选择WebModule部件,激活ActionEditor对话框。(2)在ActionEditor对话框新添加一个ActionItem。(3)将第二个ActionItem命名为Dynamicdll,PathInfo属性设置为DateTime。(4)为新建的ActionItem的OnAction事件编写代码。图7-11浏览器中显示由ISAPI动态链接库生成的动态HTML页面返回本节7.3.3接收用户输入的ISAPIDLL1.OnAction事件的参数(主要属性如表7-1)2.创建用户输入的HTML页面(创建好的HTML页面如图7-12所示)3.添加PageProducer控件(具体含义如表7-2)4.为项目文件新建一个ActionItem5.调试程序(如图7-13~7-15所示)表7-1TwebReques对象的主要属性属性属性的作用Query由GET方法请求获得全部参数组成的字符串QueryFields一个经过分解的查询字段Content由POST方法请求获得全部参数组成的字符串ContentFields一个经过分解的Content字段图7-12创建好的用户输入界面表7-2MethodType方法的参数值及其含义参数值具体含义MtGet采用GET方法接收用户请求MtPost采用POST方法接收用户请求MtPut用Content的值代替URL属性确定的资源的用户请求MtHead要求获得有关HTTP服务器响应信息种类的请求MtAny任何其他形式的用户请求图7-13在用户输入界面中输入数据图7-14使用GET方式得到的服务器响应信息图7-15使用POST方式得到的服务器响应信息返回本节7.3.4一个完整的Web数据库应用程1.将数据表作为服务器程序的响应信息(如图7-16所示)2.增加查询功能(Query控件和QueryTableProducer控件的属性设置如表7-3所示)图7-16作为服务器响应信息输出的数据表表7-3控件的属性设置控件属性设置Query1DatabaseName:DBDEMOSQueryTableProducer1Query:Query1RowAttributes.Align:haCenterTableAttributes.Border:1返回本节7.4CGI编程7.4.1一个时间显示程序7.4.2命令行处理7.4.3CGI环境变量7.4.4CGI数据库编程返回本章首页7.4.1一个时间显示程序单击“Project”主菜单下的“RemovefromProject”选项,将unit单元从项目文件中移走,然后按下Ctrl+F12键,选择项目文件,使它在代码编辑器中显示出来。在它的Program保留字后加入一个{¥APPTYPECONSOLE}编辑器指令,将它转换成控制台应用程序,最后删除大部分项目源代码,如果直接在Delphi环境中运行该程序,则它会打开一个终端窗口,并输出writeln语句的内容,如图7-19所示。图7-19在Delphi环境中执行的结果返回本节7.4.2命令行处理CGI应用程序接收用户输入的方法有两种:(1)使用它的命令行参数识别页面(激活应用程序)的URL,而URL通常在应用程序名后面包括附加的参数。(2)系统使用一系列环境变量向CGI应用程序进一步传递信息。在Win_CGI中,同样通过INI文件来传递,而没有使用环境变量。返回本节7.4.3CGI环境变量表7-4CGI环境变量环境变量含义SERVER_NAMEWeb服务器主机名SERVER_PROTOCOLHTTP请求的协议SERVER_SOFTWAREWeb服务器软件的名称和版本GATEWAY_INTERFACECGI支持的版本REQUEST_METHOD请求使用的对象方法,可以是GET或者POSTDOCUMENT_ROOT目录主机文档或者Web服务器PATH_TRANSLATES与服务器有关的物理路径HTTP_PEFERER激活CGI应用程序的文档URLSCRIPT_NAME被执行的CGI应用程序相关的路径(基于服务器地址)PATH_INFO向CGI应用程序传递的路径,位置在应用程序名和查询字符串之间QUERY_STRING向程序传递的查询,当请求对象的方法是GET时,该字符串用问号追加到URL中返回本节7.4.4CGI数据库编程(1)依次单击“File”→“New”→“Other”选项,然后在Business页面中选择DBWebApplicationWizard,如图7-24所示。单击“OK”按钮,则出现选择Web数据库应用程序类型对话框,如图7-25所示。(2)单击“Next”按钮,将出现选择数据表对话框,如图7-26所示。选择好数据表后,单击“Next”按钮,将出现选择要显示的字段对话框,如图7-27所示。选择完需要显示的字段后,单击“Next”按钮,则出现设置Web页面对话框,如图7-28所示。(3)所有的设置都完成后,则出现确认对话框,如图7-29所示。单击“Finish”按钮,就完成了创建一个Web项目文件的工作。向导为我们生成了WebModule1模块,其中加入了三个控件如图7-30所示。编译并运行该程序,则在浏览器中显示的结果如图7-31所示。图7-24利用DBWebApplicationWizard向导创建项目文件图7-25选择Web数据库应用程序类型图7-26选择数据表图7-27选择要显示的字段图7-28设置Web页面图7-29完成创建项目文件图7-30向导自动生成的WebModule1模块图7-31显示结果返回本节7.5ISAPIDLL和CGI之间的相互转(1)将编写好并且调试成功的project5.dll创建成一个模板,以便在Win_CGI中使用(如图7-32所示)。(2)关闭project5项目,在主菜单中选择“New”选项,创建一个新的项目,指定为Win_CGI。(3)新建项目后,Delphi将自动产生一个缺省的WebModule控件,在加入模板后再将它删除(如图7-33所示)。返回本章首页图7-33加入project5dll模板图7-32为模板设置属性返回本节本章到此结束,谢谢您的光临!结束放映返回本章首页THANKYOUVERYMUCH!
本文标题:Delphi 6程序设计及其应用开发--第7章 创建Web服务器程序
链接地址:https://www.777doc.com/doc-3403963 .html