第17章 使用WebBroker组件创建Web服务器

WebBroker是一套VCL工具,可以帮助您建立Web服务器程序。WebBrokerDelphi企业版一同发布,也可单独购买并与Delphi专业版配合使用。WebBroker可用于建立Web服务器,支持ISAPINSAPICGI协议。ISAPIInternet Services API)和NSAPINetscape Services API)通过TISAPIApplication Web应用程序组件来支持。CGICommon Gateway Interface)通过TCGIApplication Web应用程序组件来支持。Web服务器Apache是通过新的TApacheApplication组件来支持。对于开发者来说,这意味着使用对大多数Internet服务器可用的通用协议编写Web程序更为容易。

本章我们将特别注重用于建立Web服务器的组件,它们位于Internet属性页上。所有的Web服务器都包含一个TWebModule组件,或者是一个TDataModule和一个TWebDispatcher组件。在讨论这些组件之前,我们先快速浏览一下HTML的基础知识。理解URLUniform Resource Locator)请求和HTML页面的基本结构是很有必要的,因为用户会调用Web服务器,而Web服务器要提供Web页面服务。

17.1  HTML基础

Web服务器是URL路径的一部分。WebBroker服务器将基于URL请求的内容和Web服务器的设计返回HTML页面。通常,这些响应都是以HTML文档的形式进行。文档可能会包括到其他Web站点或Web服务的超链接。

本节包含了对URL分解、HTML文档和可替换参数标记的简要综述,这些机制有助于返回动态Web页面。

17.1.1   URLUniform Resource Locator

URL由协议标签、主机名、脚本或服务器程序、路径信息和一些由用户向服务器提供的查询信息构成。参见下面的代码和图17.1,可以看到一个URL的各个部分,该URL指向如图所示的Web服务器。

http://localhost/scripts/iserver.dll/runquery?CustNo=1645

本例中,所用协议为HTTP,即超文本传输协议(Hypertext Transfer Protocol)。HTTP可能是最常用的浏览器协议,但从第16章是可知,并非只有这一种可能(回忆第16章,可以知道有几种TCP/IP协议,像FTP和安全HTTP,都可以用作URL中的协议)。例子中的主机名是LocalHost,它代表客户机。LocalHost也是计算机名或IP地址127.0.0.1127.0.0.1也称为回送IP地址)。主机名可以是任何IP地址或DNS表中的名字;例如www.microsoft.comwww.softconcepts.comwww.amazon.comURL的脚本部分是可选

17.1  URLWeb浏览器的地址栏中输入,也可

        能出现在HTML文档中的HREF标记之后

的。对Web服务器而言,即包含服务器程序的文件夹。如果在Windows 2000系统下运行IIS或在PC上运行Peer Web Services,那么默认情况下脚本位于c:/inetpub/scripts目录(见图17.2)。服务管理器将虚拟路径脚本映射到物理上的目录。脚本后紧接着是服务器程序。本例的服务器程序是iserver.dll。例子中的路径信息由run-query表示。最后一部分信息示范了如何向服务器发送查询参数。在例子中,CustNo=1645将发送到服务器程序。

17.2  Windows 2000 专业版系统中Scripts Properties对话框,

可以看到虚拟的脚本路径被映射到物理路径

注意:本例中所示的请求摘自Delphi中的例子iserver.dpr,该工程位于$(DELPHI)/Demos/WebServ/IIS文件夹中。上文中的请求是对biolife.db表发出的,该文件是Delphi附带的。

您可能已经熟悉协议标签加上主机名的请求类型。但如果您对电子商务有一定程度的了解,例如在amazon.com进行购物,您可能已经看到过另外一些URL请求类型。

注意:最熟悉的URL形如http://www.digitalblasphemy.com,在请求中不存在路径、脚本、查询和特定的页面信息。只涉及到Web服务器上的一个页面。Microsoft公司的Web服务器IIS在默认情况下返回default.asp页面,但可以进行配置以返回任何页面。http://www.softconcepts.com站点返回的页面是index.htm。默认页面是可配置的。管理和配置IIS或其他Web服务器已经超出了本书的范围;但在这方面有很多书籍可供参考。

如果给出了Web站点和路径来运行脚本(例如上文例子中的runquery)但没有找到,则DelphiWebBroker组件允许指定默认路径。按照惯例,本章中的默认路径是/root

17.1.2   基本的HTML结构

上一节中的请求是要求WebBroker服务器返回特定页面。如果提供查询信息,则页面内容可以由查询值来控制。可以通过设计,对用户屏蔽Web页面的细节,如CustNo,这是个好主意,把细节嵌入到HTML源文件中即可完成;而用户可通过输入URL直接发送请求。无论如何,基本的HTML页面的结构都是一致的。

提示:HTMLHypertext Markup Language)中包括标记,标记语言的读者可以认为这些标记是指令。

注意:请记住,页面可能会非常复杂。其中可能包括Active Server PagesJavaScriptVBScript,而且像FrontPage这样的页面设计工具可能会添加相对数量和种类的修饰。不考虑这些修饰,HTML页面包含了某些一致的元素。

基本的HTML页面由标记组成,它们定义了文档的结构。许多标记是对称的,包括开始标记和结束标记。例如,HTML文档以<html>标记开始,结束标记为</html>(请注意,/用于结束标记)。在文档标记之内是文档体标记<body></body>。通常所看到的文档内容是在文档体标记之内定义的。下面列出的代码使用<html><body>标记示范了框架性的Web页面,与本书开头的Hello World程序差不多。

<html>

<body>

Welcome to Valhalla Tower Material Defender!

</body>

</html>

上述Web页面是无法得到任何“本年度××Web站点”奖励的,但它确实示范了HTML的简单的和基本的特性。作为练习,打开notepad.exe并输入上面的代码。将文件保存为hello.htm。然后打开Web浏览器。单击File | Open并浏览hello.htm的位置,再单击OK。可以看到,浏览器中显示了文档体标记之间的文本(五、六年前这可是件了不起的事情)。还有许多标记以及使得这些标记易于使用的工具,但你还是可以使用简单的文本编辑器。下面示范了常用的其他标记,可以帮助您入门。

定制文档体

可以向文档体添加额外的特征。使用<bgcolor>标记,可以将页面的背景颜色指定为颜色名或十六进制数字。在文档体标记中,还可以指定背景图像。下面对文档体标记进行了修改,示范了背景颜色和背景图像的使用。

注意:本章中的HTML文档使用Notepad.exe生成,并在Internet Explorer 5.5上进行了测试。无法保证其他的特定Web浏览器或早期版本是否能够对这些超文本标记进行渲染。

<body bgcolor=#00FFFF>

<body background="bubbles.bmp">

背景颜色由颜色名或48比特的RGB(红、绿、蓝各16比特)颜色表示。颜色数字由三个十六进制数组成,各16比特。这里没有设置红色的比特位,而设置了所有的绿色和蓝色比特位。可以用颜色名cyanblue-green来替换上述的颜色值。Background属性指向一个图形文件,该文件将在文档的背景上绘出。

有许多标记,一些标记有各种属性,特定的浏览器可能支持其中的全部或一部分。由于标记的种类和属性很多,因此需要使用Web页面设计程序如FrontPageHot Metal等(该程序与某些版本的Delphi捆绑发行)。

使用水平规则

具有3D效果的线由水平规则标记<hr>表示,该标记指示浏览器在HTML文档体中绘出一条具有浮雕效果的线。

行结束和段落标记

HTML文档体中文本结束处的<br>将向文本插入一个硬回车。如果在文档体中使用<p> </p>标记,浏览器会在该位置创建段落。例如,

<html>

<body>

This is <p>some</p> text.

</body>

</html>

Web页面中显示如下:

This is

Some

Text.

可以使用<br><p></p>以及<pre></pre>标记格式化文档中的文本。最后一对标记是预格式化标记,它表示文本块在Web页面中的显示方式与其书写方式相同。

使用标题

<title></title>标记可以为页面指定标题。标题标记通常位于<body>标记之前,在<html>开始标记之后。下面的代码示范了标题标记。

<html>

<title>Hello World!<title>

<body>

Welcome to Valhalla Tower Material Defender!

</body>

</html>

上述HTML文档将在浏览器的标题栏显示文本“Hello World!”。

添加超链接

<A HREF="path">页面上显示的文本</A>标记用于向HTML文档体中添加超链接。例如,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值