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

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

如何把ASP編寫成DLL (1)

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

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡(jiǎn)章