阿里西西|教程|原創|asp封裝
阿里西西原創視頻教程下載地址:http://www.alixixi.com/Down/eBook/vb/2007/2007122192320.html
由本人第一次嘗試製作的錄影視頻教程,由於電腦速度較慢,播放時間較慢,請諒解。
本錄影講解最基礎的VB封裝ASP代碼產生DLL的製作教程,適合初級學習者參考。也是本人學習VB製作ASP組件的第一個嘗試,錄影基本成功。
用vb編寫asp組件(dll)樣本
下面,將示範如何使用vb製作asp的dll組件...
1. 啟動你的vb,選擇activex dll表徵圖,然後在點擊菜單的工程>>引用,接
著在彈出的"引用"視窗從中選擇
microsoft active server pages object library.
2. 給工程和類重新命名,在asp中調用時,就全靠它了^_^!我們的工程名改
為aspdll,類名為demo.在asp中調用的方法是:
set objreference = server.createobject("工程名.類名")
本例調用的相應代碼如下:
set objreference = server.createobject("aspdll.demo")
調用的方法和一般常見的,比如fso等組件的方法一模一樣.
心動了吧,呵呵,下面我們繼續....
3. 接著,我們開始編寫代碼,開啟我們剛才建立工程類視窗,第一步,先聲
明我們要用到的變數.主要是在vb聲明替代asp幾大對象的變數名,定義這
asp的幾大對象後,我們就可以像在asp環境中調用類似request,server等
這樣的幾大對象了.(聲明的變數名完全可以和asp對象名一樣)代碼如下:
'**********************************************
private mys criptingcontext as s criptingcontext
private myapplication as application
private myrequest as request
private myresponse as response
private myserver as server
private mysession as session
'**********************************************
4. 聲明完變數後,我們必須在類中寫onstartpage子函數.本函數的作用是
當使用者訪問一個帶有本組件的asp檔案時,iis就會把s criptingcontext傳
送給我們vb組件對象.這個s criptingcontext包括了全部的asp方法和屬性
.這樣,就使得我們有能力訪問所有asp的對象.代碼如下:
'*****************************************************************
public sub onstartpage(passeds criptingcontext as s criptingcontext)
set mys criptingcontext = passeds criptingcontext
set myapplication = mys criptingcontext.application
set myrequest = mys criptingcontext.request
set myresponse = mys criptingcontext.response
set myserver = mys criptingcontext.server
set mysession = mys criptingcontext.session
end sub
'*****************************************************************
通過上面的函數,我們在asp中調用本組件後,上面的幾大對象就完全可以
像平時我們在asp使用一樣了,舉個例子:
在asp中實現接收提交的表單值並輸出螢幕:
<%
formvalue=request.form("username")
response.write ("你提交的使用者名稱是"&myformvalue&",歡迎您!")
%>
在vb中實現方法是:
formvalue=myrequest.form("username")
myresponse.write ("你提交的使用者名稱是"&myformvalue&",歡迎您!")
5. 相對應於onstartpage函數,我們還要編寫一個關閉onstartpage中對象
的onendpage函數,代碼如下:
'*********************************
public sub onendpage()
set mys criptingcontext = nothing
set myapplication = nothing
set myrequest = nothing
set myresponse = nothing
set myserver = nothing
set mysession = nothing
end sub
'********************************
6.通過編寫上面的代碼,我們在vb中編寫asp組件執行個體的環境已經具備了,
下面,我就嘗試寫兩個與asp中基本相類似的函數,也就是說,關鍵部位就在
這裡了,你完全可以把你所有的asp源碼封裝在這裡...
先寫個最簡單的輸出螢幕資訊函數:
'********************************************
public sub welcomeinfo()
myresponse.write ("阿里西西_web開發,歡迎訪www.alixixi.com!")
end sub
'********************************************
再寫個帶參數傳遞及顯示now()現在時間的函數:
'**********************************
public sub setinfo(content as string)
myresponse.write content & "<br>"
myresponse.write "現在的時間是:" & now()
end sub
'**********************************
通過上面的asp代碼執行個體,你會發現其實這和asp源碼基本沒有區別^_^
7. 好了,整個類就編寫完了,我們開始打包封裝成dll.我們先儲存工程,
這裡我們儲存到e:\vbdll,接著選擇菜單上的檔案>>產生aspdll.dll,很
快的dll組件就封裝並產生完畢了.
8. 產生dll檔案後,我們開始調試和使用.在系統運行欄輸入cmd,進入dos
命令列狀態,我們要註冊剛才產生的dll組件,註冊方法是可以直接輸入
regsvr32 e:\vbdll\aspdll.dll ,為了安裝方便,你同時可以寫個批處理
檔案,這裡不一一舉例了...好,註冊成功!
9.註冊完dll組件後,我們針對剛才的組件,按照上面介紹過的方法編寫一
個asp檔案來調試.代碼如下:
<%
set redll = server.createobject("aspdll.demo")
redll.welcomeinfo
response.write "<hr />"
redll.setinfo("傳遞參數到伺服器組件,並傳回值及當前日期now()!")
response.write "<hr />"
set redll = nothing
%>
在iis中開啟此檔案,螢幕顯示:
阿里西西_web開發,歡迎訪www.alixixi.com!
------------------------------------------------------------
傳遞參數到伺服器組件,並傳回值及當前日期now()!
現在的時間是:xxxx-xx-xx-xx:xx:xx