北京北大青鳥校區(qū):如何把ASP編寫成DLL (2)

接北京北大青鳥校區(qū)提供的上篇文章:

如何把ASP編寫成DLL (1)

怎樣使用工程和類
  
現(xiàn)在我們有了我們自己的工程(Example1)和類名(HelloWorld).以后我們就會在ASP代碼中使用它們的名字來引用這個組件.在ASP中我們就這樣引用,如下:
  
Set ObjReference = Server.CreateObject(ProjectName.ClassName)
  
對于我們工程的引用就是:
Set ObjReference = Server.CreateObject(Example1.HelloWorld)
現(xiàn)在我們就能用ObjReference來調(diào)用我們在組件中所創(chuàng)建的函數(shù),子程序.下面我們會來寫一個   SayHello的子程序, 我們執(zhí)行它的代碼如下: (北京北大青鳥校區(qū)
  
  〈%
  Set ObjReference = Server.CreateObject(Example1.HelloWorld)
  ObjReference.SayHello
  %>
  
為了在Helloword類中使用ASP的方法,你必須在此類中寫一個OnStartPage
子函數(shù).如下:
  
  Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
  Set MyScriptingContext = PassedScriptingContext
  End Sub
現(xiàn)在,無論什么時候用戶訪問一個帶有本組件的ASP文件,IIS就會把ScriptingContext傳送給我們的對象請我們使用.這個ScriptingContext包括了全部的ASP方法和屬性.實現(xiàn)上,這使得我們有能力訪問所有ASP的對象.看下面的代碼: (北京北大青鳥校區(qū)
  
  Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
  Set MyScriptingContext = PassedScriptingContext
  Set MyApplication = MyScriptingContext.Application
  Set MyRequest = MyScriptingContext.Request
  Set MyResponse = MyScriptingContext.Response
  Set MyServer = MyScriptingContext.Server
  Set MySession = MyScriptingContext.Session
  End Sub
  
以后我們就能用在VB中用MyApplication 來代替ASP中的Application,同理可以代替Request,Server.....,不過我們來是要在 OnStartPage之前來申明這些變量:
  
  Private MyScriptingContext As ScriptingContext
  Private MyApplication As Application
  Private MyRequest As Request
  Private MyResponse As Response
  Private MyServer As Server
  Private MySession As Session
  
使用ASP的對象
我們的變量現(xiàn)在就能像標(biāo)準(zhǔn)的ASP對象來使用了!比如,我們經(jīng)常在ASP中用Request.form()來收集提交表單的數(shù)據(jù).現(xiàn)在我們在我們的VB中實現(xiàn)這個功能,代碼如下:
  
  用ASP中實現(xiàn):
  〈%
  MyTempVariable = Request.Form(userName)
  Response.Write (you entered & MyTempVariable & as your user name)
  %>
  
  在VB中實現(xiàn):
  
  MyTempVariable = MyRequest.Form(userName)
  MyResponse.Write (you entered & MyTempVariable & as your user name)
  
  通過使用MyResponse來代替Response,我們能夠使用所有Response的方法,當(dāng)然,MyResponse這個名字可以隨便來取,你甚至可以就取Response. (北京北大青鳥校區(qū)提供)

北大青鳥網(wǎng)上報名
北大青鳥招生簡章