• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

P O S T是由使用I n s t r()函数的用户产生的。如果第一个指定的串包含一个第二个串的结果
(“G l a s g o w”在第一个交易里),该函数将返回一个大于零的数。在这种情况下,那么将参数定
义为G l a s g o w(因为G e t S u b j e c t()期望一个参数)。然后, X M L - R P C使用如下格式产生远程服
务器调用。
显然,该应用程序适合于我们的那些单一服务器,服务器查询以默认方式在本地服务器
上生成。但是,在X M L - R P C调用里的U R L能够被转换到任何远程服务器,只要该服务器
支持对于该应用程序的XML-RPC接口。
在单一服务上测试它的简单方法是在5个不同的端口上设置5个测试站点,并且在X M L -
RPC 调用里更改URL,来反映此功能。
对X M L - R P C调用的返回值是一个数组,该数组是一个被查询地点的相关主题使用逗号定界
的数组,因此,使用split( )方法来得到主题的一个一维数组。然后再次通过这个数组将一个I D、
主题标题和城市描述加到记录集中,我们对每一个被用户选定的分布地区重复X M L - R P C调用,
这些地区都是在请求对象表单里被指定的。
程序清单11 - 4 0
450使用XML 高级编程
下载
第11章服服务器到服务器使用451 下载
当重复每一个被选的主题,我们将从所有选中的地点得到一个完全断开的书籍主题描述的
记录集。如果这些记录集不空,并且使一个主题列表返回,就把它们写进HTML SELECT元素,
这也是通过重复记录设备对象来实现的。在这个过程中,我们调用了C h e c k D u p l i c a t e( )函数。
它保证了当所有城市的所有主题集中在一起时且某个主题多次出现,不会将同样的主题写两次。
在下一节将对这一功能做更详细描述。如果无主题可用的(这意味着被选城市没有当前的书本
储备),那么一个适当的消息将提示给用户。
程序清单11 - 4 1
最后,我们将建立一个函数,当用户从S E L E C T选择一个主题并点击了“ GET BOOKS”按
键,提交了名为p r o x y. a s p文件后,该函数将被调用,在后面我们将作描述。
程序清单11 - 4 2
452使用XML 高级编程
下载
2. 检索书籍信息
既然已经从选中的城市得到了相关主题,那么我们想选择主题中的一个并得到该主题相关
的所有标题,包括书籍的作者。下面是实现该功能的一个例子。在该例中用户选中了G l a s g o w
和B i r m i n g h a m,并选中C o m m e r c e(商务)作为主题,并点击了“ GET BOOK”按钮(参见图
11 - 1 6)。
图11-16
应保证你已经遵循了本章开始处的指令并将所有Wr o x下载文件拷贝到你的We b服务器的
下述目录:<root>/xmlrpc/client/。
图11 - 1 7说明系统的这个部分是如何链接到前一部分的,在前一部分里,用户已经选择了一
个主题。
图11-17
第11章服服务器到服务器使用453 下载
Subjects.asp
使用者选择城市
和主题,并提交
得到相关主题信

Subjects.asp
向读者显示
书籍信息
Bookserver.asp
依靠在R P C调用里要求的方法查
询一个本地X M L文件并将结果
返回到Proxy.asp.
X M L R P C调用方法
G e t B o o k ( ),使用被
选城市作为一个参

提交被选主
题和城市
P r o x y. a s p
检查P O S T来发现哪一个城市被选中,
并在每一个地方为每一个被选城市
调用B o o k s e r v e r. a s p作为一个X M L -
R P C调用(如果G l a s g o w被选中,那么
该处的w e b服务器被查询,等等)
创建上页( p r o x y. a s p)的脚本基本上使用J a v a S c r i p t。但是针对A S P,当前使用的工具都是
用V B S c r i p t来实现的,因此,必须有一个使用V B S c r i p t的程序,用它创建一个V B A r r a y对象并发
送到X M L - R P C方法。这是需要的,因为在X M L - R P C方法调用里使用的参数表单将上面的请求
描述为一个参数数组(必须是一个V B A r r a y)。下面是P r o x y. a s p文件的第一部分:
程序清单11 - 4 3
然后,转到使用J a v a S c r i p t上。首先,再次使用函数c h e c k D u p l i c a t e(),早些时候它在
S u b j e c t . a s p中已经用过。该函数的基本功能是把值加到D i c t i o n a r y对象,并检查该值是否已经存
在(使用对象的E x i s t s()方法)—如果不存在,它将被加上。
程序清单11 - 4 4
函数D r a w S c r e e n()封装了X M L - R P C代码,该代码将创建H T M L来显示搜索的结果。我们
再次声明参数数组和保持着书籍数据的目录对象。同时创建断开的记录集并创建一个域将把
X M L - R P C调用的响应加进来。下面已经将它列出用以同V B S c r i p t比较:
程序清单11 - 4 5
454使用XML 高级编程
下载
激活远程方法的部分有一点细微的不同。首先检查至少一个城市被选中,如果如此,那么
该城市将被引用:
程序清单11 - 4 6
然后使用C r e a t e V B A r r a y方法返回一个V B A r r a y类型的对象,V B A r r a y保持了该方法的参数。
然后,一个X M L - R P C调用被执行,即使用在对应U R L中的B o o k S e r v e r. a s p文件调用(G e t B o o k s ( ))
函数,V B A r r a y列出参数被发送到这个调用(其中含有城市和主题),然后将返回每本书和它的
描述(一个记录),并用逗号隔开(如:BookRecord1 , BookRecord2, BookRecord3,等等),结果
被附加到记录集。
每个I D被唯一的索引k所定义,该索引标识一个包含书的标题和书的作者的记录。
程序清单11 - 4 7
创建一个报头来声明主题和被查询的城市。然后重复记录集,对每一个记录都有一个条目
第11章服服务器到服务器使用455 下载
(不是“ no title”,它的返回是该指定主题内无此书),我们保证它仍然未被写过。如果它仍然未
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(142)