Windows 脚本部件  

实现 ASP 脚本部件

使用 Windows® 脚本部件可以包括 Active Server Page (ASP) 的功能。这样做使您可以将服务器的脚本隔离在一个可以很容易从 ASP 页面调用的部件内,且有助于 ASP 代码的复用。例如,可能拥有若干个处理表格的 ASP 页面。但不必在每个 ASP 页面都直接实现所有的表格处理逻辑,因为所有 ASP 页面都可以调用一个已创建的具有表格处理逻辑的脚本部件。

要创建 ASP 脚本部件,只需按照脚本部件文件的内容中所描述的,正常创建一个脚本部件。使用 <implements> 元素来实现 ASP 接口处理程序,即将<implements> 元素的 type 属性设置为 “ASP” 。这样就提供了访问 ASP 对象(Response, Request, Server, Session 以及 Application)的手段。在 ASP 脚本部件中,可以象直接在 ASP 页面内那样使用这些对象。ASP 接口处理程序已内置于脚本部件的运行时程序 (Scrobj.dll),因此不需要外部接口处理程序。

脚本部件运行时,它将使用与调用它的 ASP 页面相同的命名空间。该脚本部件可以访问 Request 和 Server 对象,如同它就位于调用它的 ASP 页面。该脚本部件还可以访问相同的调用 ASP 页面的 Session 和 Application 变量。类似地,如果该 ASP 脚本部件调用了 Response 对象的一个方法,这些调用的结果在调用页面上也是可获得的。例如,如果调用 Response.Write,则结果将直接输出到调用的 ASP 页面。

下面演示了一个简单的 ASP 脚本部件,它说明了一个属性和一个方法。applicationVar1 属性可以取得假想的 Application 变量 Var1 的值。AddDate 方法则将当前日期输出到调用 ASP 页面。

注意   CDATA 项是必需的,它使 <script> 元素中的脚本成为不透明的。详细信息请参阅脚本部件文件和 XML 一致性
<component id="ASPScriptlet">
<registration progid="ASPScriptlet"/>
<public>
   <property name="applicationVar1"/>
   <method name="AddDate"/>
</public>
<implements type="ASP"/>
<script language="VBScript">
<![CDATA[
dim applicationVar1
applicationVar1 = Application("Var1")
Sub AddDate()
   Response.Write(Date)
End Sub
]]>
</script>
</component>

对 ASP 页面的调用如下:

<HTML>
<HEAD>
<TITLE>Testing the Script Components ASP Handler</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>Testing the ASP Handler</H1>
<%Set wscASP = CreateObject("ASPScriptlet")%>
<P>The current date is <%= wscASP.AddDate()%></P>
<P>The value of the Application(Var1) variable is <%= wscASP.applicationVar1%></P>
</BODY>
</HTML>