第4章 ASP服务器组件
4.1 ASP服务器组件
ASP服务器组件也称ActiveX组件,其实就是已经在服务器上注册的ActiveX控件。该控件可以由多种开发工具来开发,如Visual Basic、C++、Visual C++、Java以及Del-phi等。其基本功能与常规DLL相同,不同之处是基于网络平台,功能更强。它由ASP页面调用、并以Web页面为交互对象,读入用户的输入请求(Web页面上各输入域的值),通过Web服务器处理后返回结果到Web页面。
ActiveX组件主要由两部分组成。第一部分是基本的ASP的内置组件,它们包括Ad Rotator(广告轮播)、Browser Capability(浏览器性能)、Database Access(数据库访问)、Content Linking(内容链接)和File Access(文件系统存取),以及数据库访问组件ADO等。这些组件多数是与ASP技术一起发行的,有些是由微软开发并打包在Microsoft Visual InterDev中的。因此当需要使用更多的组件时,应在机器上安装Microsoft Visual InterDev包中的ServerComponents:FrontPape Server Extensions、Active Server Pages和Cli-ent Components:Visual InterDev等相关组件。通常是在安装ASP时这些内置组件就已经注册到服务器上,可供免费使用。第二部分是由用户自定义的或从第三方购买获得可选的现成的组件。ASP鼓励用户使用任何支持COM(组件对象模型)的语言(如C、C++、Java、Delphi、C++Builder或Visual Basic等语言)来编写新的ActiveX组件以进一步扩展ASP的功能。
在整个网页应用开发中,前面介绍的ASP的内置对象是不用产生一个实例和不用声明就能够直接引用的对象,可以随时访问内嵌对象的所有属性、方法与集合。但是Ac-tiveX组件却都需要实例化为对象才能够被引用。也就是说在使用ActiveX组件之前,首先需要为组件创建一个实例对象,然后才可以在ASP程序中随意运用所创建的对象的属性、方法、集合。创建ActiveX组件的实例对象有以下2种方法。
方法1:使用ASP的Server.CreateObject方法创建组件的对象实例。格式如下:
组件可以提供一个或多个对象以及对象的方法和属性。我们必须使用ASP的Serv-er.CreateObject方法来创建对象实例,并使用脚本语言的变量分配指令为对象实例命名。否则ASP无法跟踪脚本语言中对象的使用。创建对象实例时,必须提供实例的注册名称PROGID。如下代码要创建一个命名Myconn的ADODB.Conection的对象实例。
代码中MyConn是新的对象实例变量名;ADODB.Conection是组件注册名(PROGID),其中ADODB是组件库名,Conection是组件类别名称。
方法2:使用HTML<OBJECT>标签创建对象实例。格式如下:
使用HTML<OBJECT>标签创建对象实例必须为RUNAT属性提供服务器值,同时也要为将在脚本语言中使用的变量名提供ID属性组。使用注册名(PROGID)或注册号码(CLSID)可以识别该对象。下面代码是使用注册名(PROGID)创建Ad Rotator对象的实例。