日期:2012-03-13  浏览次数:20783 次


    在本节中,简要概述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提供的一个示例组件能够访问服务器上的系统注册表。这个功能有助于检查诸