使用 Windows® 腳本部件可以包括 Active Server Page (ASP) 的功能。這樣做使您可以將服務(wù)器的腳本隔離在一個可以很容易從 ASP 頁面調(diào)用的部件內(nèi),且有助于 ASP 代碼的復(fù)用。例如,可能擁有若干個處理表格的 ASP 頁面。但不必在每個 ASP 頁面都直接實現(xiàn)所有的表格處理邏輯,因為所有 ASP 頁面都可以調(diào)用一個已創(chuàng)建的具有表格處理邏輯的腳本部件。
要創(chuàng)建 ASP 腳本部件,只需按照腳本部件文件的內(nèi)容中所描述的,正常創(chuàng)建一個腳本部件。使用 <implements> 元素來實現(xiàn) ASP 接口處理程序,即將<implements> 元素的 type 屬性設(shè)置為 “ASP” 。這樣就提供了訪問 ASP 對象(Response, Request, Server, Session 以及 Application)的手段。在 ASP 腳本部件中,可以象直接在 ASP 頁面內(nèi)那樣使用這些對象。ASP 接口處理程序已內(nèi)置于腳本部件的運行時程序 (Scrobj.dll),因此不需要外部接口處理程序。
腳本部件運行時,它將使用與調(diào)用它的 ASP 頁面相同的命名空間。該腳本部件可以訪問 Request 和 Server 對象,如同它就位于調(diào)用它的 ASP 頁面。該腳本部件還可以訪問相同的調(diào)用 ASP 頁面的 Session 和 Application 變量。類似地,如果該 ASP 腳本部件調(diào)用了 Response 對象的一個方法,這些調(diào)用的結(jié)果在調(diào)用頁面上也是可獲得的。例如,如果調(diào)用 Response.Write,則結(jié)果將直接輸出到調(diào)用的 ASP 頁面。
下面演示了一個簡單的 ASP 腳本部件,它說明了一個屬性和一個方法。applicationVar1 屬性可以取得假想的 Application 變量 Var1 的值。AddDate 方法則將當前日期輸出到調(diào)用 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 頁面的調(diào)用如下:
<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>