第三方服务器组件

服务器

    在本节中,简要概述ASP系统中要用到的一些常见的商用和免费的第三方服务器组件。
       开发Web网站时,必须完成的两个任务是管理兼容性以及向服务器上载文件。下面将介绍的两个组件能有助于完成上述的任务,而且还介绍另外一个组件,可取代Microsoft的Registry Access组件(该组件一般是从相应的Web网站得到的)。
       在附录G中,给出了一些最为有用的组件的清单。

6.3.1 BrowserHawk组件
       很多人使用由IIS及ASP提供的Browser Capability组件时,都会遇到一个麻烦,浏览器的定义文件(browscap.ini)要求定期的维护或替换以跟得上新版浏览器的要求。
       Cyscape公司提供了broscap.ini的升级版本,同时提供了他们自己的能在服务器端和客户端进行浏览器检测的组件。而且,还提供了便捷的图形界面用于查看及修改自己的浏览器定义文件,如图6-26所示:

       可以看到对于每个浏览器类型,都有许多属性,如动态HTML、样式表、JavaScript版本、文件上载能力、SSL(Secure Sockets Layer)支持、操作系统细节以及语言等。与Microsoft的Browser Capability组件一样,也可以添加自己的内容。这里还有一个非常有用的具有向导风格的特性,能帮助我们把新的浏览器类型添加到定义文件中,如图6-27所示:

       BrowserHawk组件具有辩认出新的浏览器(采用一项特殊的模式匹配算法)以及那些缺省支持的一系列浏览器的能力,包括Opera和WebTV。使用过滤功能添加新属性也很容易。
       当然,BrowserHawk组件的最大优点可能是定期对来自Cyscape公司的Web网站的浏览器定义文件新版本进行自动检测,同时把一些内容吸收合并到当前使用的定义文件里,这意味着没有必要不断地将定义文件拷贝到所有的Web服务器中。
       BrowserHawk组件使用起来比较容易,与Browser Capability组件是兼容的,需要做的是在创建组件实例的Server.CreateObject方法或<OBJECT>元素中改变ProgID。把“MSWC.BrowserType”改为“cyScape.browserObj”。
       Set objBCap = Server.CreateObject(“cyScape.browserObj”)
       对可能出现的问题,应该阅读BrowserHawk组件的文档。       可从Cyscape公司的Web网站(http://www.cyscape.com)下载BrowserHawk的拷贝。本章中已经包含了使用BrowserHawk组件的示例网页,使读者能够了解如何使用BrowserHawk组件,在Chapter06目录下的BrowserHawk子目录中可查找到这个示例页面。
6.3.2 SA-FileUP组件
       在很多Web网站上,一个常规要求是,服务器接受客户机发送的文件的能力如何?在IIS 4.0里,Microsoft提供了一个名为Posting Acceptor组件完成这项工作,IIS 5.0和ASP 3.0的标准安装中没有该组件,如果安装Site Server Express的话,则需要包含这一组件。可以从Microsoft Web网站http://www.microsoft.com/windows/software/webpost/post_accept.htm上下载该组件。
       然而,很多人发现Posting Acceptor组件在功能上有局限性且很难编程。现在一个流行的替代品是来自Software Artisans的SA-FileUP组件。与Posting Acceptor组件(仅是ISAPI型过滤器)不同,SA-FileUP组件是一个真正的ActiveX DLL服务器组件,容易集成到ASP网页中。这意味着可以使用别的ASP页面或组件上使用的相同的有关设定页面安全保护及限制用户访问的技术。该组件也可在MTS/COM+的环境中上运行。
       使用SA-FileUP组件的教程可在http://www.activeserverpages.com/upload/站点上找到,所以这里只给出了结果。本章的示例中包含了使用该组件的示例页面(在Chapter06目录下的SAFileUP子目录中),可用来了解如何使用该组件,有必要的话可从Software Artisans网站http://www.softartisans.com/上下载SA-FileUP的拷贝。
       使用SA-FileUP组件
       SA-FileUP组件的示例页面创建了一个简单的页面,包含一个FileUpload元素和一个按钮,并使用了HTML的INPUT元素,如图6-28所示:

<FORM ACTION="safileup_response.asp"
                     ENCTYPE="MULTIPART/FORM-DATA" METHOD="POST">

<INPUT TYPE="FILE" NAME="FILE1">

<INPUT TYPE="SUBMIT" NAME="SUB1" VALUE="Upload File">

</FORM>
用户提交窗体时,其中的内容传送给了服务器,并且ASP页面创建了一个组件实例,并且开始向服务器上传信息,以后组件返回一系列描述上传的文件的数据,如图6-29所示:

SA-FileUP组件读取文件并把它以标准的磁盘文件或二进制的数据库数据的形式暂存在服务器上。有了它,就能用ASP控制上传过程、限制上传文件的大小,甚至删除上传文件,也能动态地改变其名字和上传文件的位置。

6.3.3 RegEx注册表访问组件
       Microsoft IIS 4.0提供的一个示例组件能够访问服务器上的系统注册表。这个功能有助于检查诸如安装的软件的版本,或者检查IIS和操作系统使用的各种参数。
       在IIS 5.0中取消了这个组件,但如果需要这个功能,可以从其他商用版本中获得。RegEx组件是其中之一,能够访问本地机器注册表的任何部分(假如允许当前用户访问)。在ASP页面的匿名访问中,当前用户是IUSR_machinename帐户。
1.  RegEx组件的成员
RegEx组件提供了四个读写注册表的方法和一个访问内部组件版本信息的方法,如表6-11所示。全部信息和文档随RegEx组件提供,其测试版本可以从http://www.stonebroom.com/下载。其附带的示例页面包含在本书提供的示例中,然而你需要自己下载组件本身。
表6-11  RegEx 组件方法及说明
方 法
说 明

GetRegValue(RegistryHive,SubKeyString)
从注册表中返回给定的子键的缺省值,如果其值不能访问的话,则返回一个空字符串

SetRegValue(RegistryHive,SubKeyString,
NewValue)
在给定的子键中,创建或更新“缺省”值,把数据类型设置成Reg_SZ(字符串)。如果更新成功的话,返回True;否则,返回False

GetRegValueEx(RegistryHive,SubKeyString,
ValueMane,ValueType)
从特定的子键中返回被命名的值,用返回数值的数据类型,更新方法的最后一个参数所指定的变量。如果数值不能访问的话,则返回一个空字符串,并且REG_ERROR作为数据类型

SetRegValueEx(RegistryHive,SubKeyString,
ValueName,NewValue,ValueType)
在给定的子键中,创建或更新被命名的数值,把数据类型设置为方法的最后一个参数指定的类型data_type。如果更新成功的话,返回True;否则返回False

GetInternalVersionNumber()
返回组件的内部版本号,如果是一个测试版本,返回值之中也包含这些信息

2.  使用RegEx组件
RegEx组件提供了一个用Visual Basic编写的示例程序,可用来试验其中包含的方法,实例程序使用RegEx组件,允许对系统注册表的任何部分以所支持的数据类型之一或以缺省的字符串数据类型读写数据,如图6-30所示。在进行任何更新之前会显示一个警告以防止意外操作。

另外还有一个比较简单的ASP实例,可显示Web服务器注册表中的一些数据,并且允许读和设置一个“测试”子键。可以修改这个页面,在你自己的应用程序中使用时没有限制。图6-31所示的是在NT4和IIS 4.0上运行的结果。


要记住,改变注册表中的数值可能导致系统不正常地工作,编辑注册表内容这前应该备份注册表文件。

6.4 小结
       本章讨论了ASP如何利用服务器组件增加其他组件所不能提供的特性,也考虑了服务器组件和其他类型的ASP对象(如ASP内置的对象和在脚本运行期库中的对象)的区别。
       在研究由ASP 3.0和IIS 5.0提供的可安装组件之后,介绍了三个提供常规要求的功能的商用组件,也列出了几个可以从Web上下载的通用组件,其中有一些是免费的或者是共享/测试版本。       然而,至今我们还有一个很重要的组件没有涉及到,它就是ADO。在讨论这个问题之前,先来讨论另一个基本问题:错误处理和程序调试。

时间: 2024-08-03 10:18:34

第三方服务器组件的相关文章

脚本对象与服务器组件的比较

比较|对象|服务器|脚本     在前几章中,我们已经研究了两类不同的对象:一类是ASP对象模型的内置部分,另一类是脚本运行期库提供的对象.本章将介绍第三类能用于ASP的对象,取名为活动服务器组件(或者就称为服务器组件).这些组件在很多场合下就如同在浏览器或在像Visual Basic编程环境中用于客户端脚本中的传统ActiveX控件一样,但是这些组件可在服务器上运行,而不是一个只能运行在客户机上的对象.现在的问题是:这些组件来自哪里?其中一部分是由常规的ASP/IIS安装程序提供的,而另一部分

java实现ssh协议远程通过中间服务器连接跳转第三方服务器

问题描述 java实现ssh协议远程通过中间服务器连接跳转第三方服务器 java实现ssh协议远程通过中间服务器连接跳转第三方服务器,目前只能连接到中间服务器 ,但是连接第三方服务器怎么实现 求解

ASP服务器组件的编程

编程|服务器 重庆出版社电脑中心 陈刚 1.什么是ASP服务器组件 ASP(Active Server Page)是当今开发交互式Web页面.Web数据库应用最强大的技术.在其中可以混用HTML.DHTML.ActiveX.VBScript或JavaScript.当这些技术都无法奏效时(例如进行高密度的数学运算.封装特定的数据库处理逻辑等),可以使用服务器组件(Server SideComponent)进一步扩展ASP的能力.Server SideComponent实际上是运行在服务器上的一个D

ASP服务器组件编程心得

编程|服务器|心得 作者;小刀 使用ASP编程的一大优点是可以使用众多的服务器组件(ActiveX Server Components).这些组件提供诸如广告轮显(Ad Rotator).浏览器兼容(Browser Capabilities).数据库存取(Database Access).文件超链接(Content Linking).文件存取(File Access)等等功能.使用服务器组件,可以通过非常简单的方式高效率地完成各种复杂的工作. 一般,ASP的各个组件通常使用 Server.Cre

建立一个C++服务器组件

c++|服务器         C++是标准化的计算机语言,不属于任何人,而属于一个标准委员会.STL是支持数据结构和算法的C++扩展.ATL是微软拥有和维护的模板库,使得COM编程更容易.综合这些技术形成了创建COM组件的一种有效方法,这些COM组件用于ASP页面.    下面用所有这些技术创建一个COM对象,你将看到VC++ 6.0的向导如何提供大量代码,因此,可以把注意力集中在解决问题上,而不是担心具体的编程细节.    17.3.1 问题    表现数据的最普通方法是表,列代表字段的类型

libcurl-curl到底能不能实现文件上传到第三方服务器

问题描述 curl到底能不能实现文件上传到第三方服务器 网上看到的curl,那些命令都是最基本的东西,都是什么模拟上传, 测试的结果都是本地搭的服务器, ①如果用curl命令,到底能不能实现上传一个文件到百度云盘,首先就是登陆到百度云盘,它可以吗? ②如果不在libcurl里自己写,就登陆而言curl命令知道要POST的表单里数据有什么吗(username,password,autolog...?)?显然是不知道啊. 那这么命令到底能干啥? ③就算在libcurl里,自己写出了登陆到百度云的程序

activex-MFC使用activeX服务器组件提示对象没有连接到服务器

问题描述 MFC使用activeX服务器组件提示对象没有连接到服务器 在MFC中使用activeX服务器组件,总是提示提示对象没有连接到服务器,找不到原因. 解决方案 activeX注册,然后就是看连接的服务器地址,端口是否正确.

JSP页面与第三方服务器通讯问题,困了我好久了。

问题描述 JSP页面与第三方服务器通讯问题,困了我好久了.功能需求:建立一个JSP页面,让客户输入查询信息,如:身份证号,JSP页面将这个信息形成一个TCP报文,发往第三方报文处理服务器(非JSP所在服务器),第三方服务器接处理报文并返回身份证.姓名.性别.年龄等信息,第一个JSP再将收到的信息显示出来.这个需求怎么实现,有没有简单实例.折腾好久了没有方法,象无头苍蝇,请大家帮个忙.我的QQ:1367573013675730@QQ.COM. 解决方案 解决方案二:你可以写个接口的页面让他们输入你

Android使用第三方服务器Bmob实现发送短信验证码_Android

调用Bmob第三方服务器实现短信验证的功能,大致思路如下: 随机产生6位数字,然后调用Bmob的请求短发函数发送者六位数到服务器,然后服务器给指定手机发送这6位验证码,然后感觉用户输入的数字进行判断,如果输入的和发送的相等,则验证成功. 第一步.请求验证码: SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sendTime = format.format(new Date());