手寫個小組件 元件入門 asp版

2022-09-21 09:39:09 字數 4298 閱讀 7574

動手寫個小組件(元件入門)

下面,我們會來編寫乙個非常簡單的元件,重點是知道怎樣開發dll元件,而不是其複雜的**!這些都要靠你們自己以後的努力了.

伺服器端元件

首先,伺服器端的元件要有別於客戶端的元件.客戶端的元件是通過網路傳輸,依靠html來起作用.而且只能在ie上有用.但是伺服器端的元件是執行在伺服器端,它在伺服器上執行各種操作.因此,所有的瀏覽器都能享用,它依靠的是伺服器而不是瀏覽器.

當iis被請求執行乙個asp程式,它首先會在asp檔案中找到 標籤之間的**,並且執行它(也可以是 之間的**).如果這個asp程式在先前被呼叫過,那麼它就會用記憶體中的編譯過的程式來向使用者返回html**,如果沒有,那麼它就重新編譯.這裡asp就比cgi多一點速度優勢,因為cgi是每乙個請求都使用乙個執行緒.這樣就大大消耗了伺服器的資源.

想不想你寫的程式自己就能在iis執行!?!現在你就行了!使用vb5(當然現在是vb6了),你就能建立dynamic linked libraries (dll 檔案),它能在iis上直接執行(如果有asp檔案來請求的話).

系統和軟體的要求

你需要乙個32位的作業系統來執行asp.當然nomnks你也得安裝iis或pws.我們下面的程式是在windows95+pws+vb5的環境下開發的.

我們開始吧

啟動你的vb,選擇activex圖示.這個圖示可以在新建工程找到!vb會提供乙個預設的工程名(project1)和類名(class1).我們會將這兩個名字都改掉.在改名之前,請首先確認我們擁有microsoft active server pages object library,它在我們的程式非常有用.從選單中選擇"工程",然後在其中選擇"引用",就會出現"引用"視窗,從中選擇microsoft active server pages object library.

給工程和類命名

現在我們來根據自己的愛好來為project1和class1來命名吧!給它們命名也是很重要的,我們以後會用這個工程名和類名來建立這個元件的例項!後面詳細介紹.

如何改名,我就不想多說了!

我們的工程名改為exmaple,類名為helloword

怎樣使用工程和類

現在我們有了我們自己的工程(example1)和類名(helloworld).以後我們就會在asp**中使用它們的名字來引用這個元件.在asp中我們就這樣引用,如下:

set objreference = server.createobject("projectname.classname")

對於我們工程的引用就是:

set objreference = server.createobject("example1.helloworld") nomnks

現在我們就能用objreference來呼叫我們在元件中所建立的函式,子程式.下面我們會來寫乙個sayhello的子程式, 我們執行它的**如下:

為了在helloword類中使用asp的方法,你必須在此類中寫乙個onstartpage

子函式.如下:

public sub onstartpage(passedscriptingcontext as scriptingcontext)

set myscriptingcontext = passedscriptingcontext

end sub

現在,無論什麼時候使用者訪問乙個帶有本元件的asp檔案,iis就會把scriptingcontext傳送給我們的物件請我們使用.這個scriptingcontext包括了全部的asp方法和屬性.實現上,這使得我們有能力訪問所有asp的物件.看下面的**:

複製** **如下:

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的物件

我們的變數現在就能像標準的asp物件來使用了!比如,我們經常在asp中用request.form()來收集提交表單的資料.現在我們在我們的vb中實現這個功能,**如下:

用asp中實現:

在vb中實現:

複製** **如下:

mytempvariable = myrequest.form("username")

myresponse.write ("you entered "& mytempvariable & "as your user name")

通過使用myresponse來代替response,我們能夠使用所有response的方法,當然,myresponse這個名字可以隨便來取,你甚至可以就取response.

另一件我們得注意的是,我們得在我們的建立的類中,寫上onendpage子函式,這個onstartpage是相反的!onstartpage是建立物件,onendpage是消毀物件.

複製** **如下:

public sub onendpage()

set myscriptingcontext程式設計客棧 = nothing

set myapplication = nothing

set myrequest = nothing

set myresponse = nothing

set myserver = nothing

set mysession = nothing

end sub

sayhello方法

我們來建立乙個子函式,用於顯示"holle world".這個sayhello方法只是helloworld這個類中乙個子函式,我們以後會在asp中用以下的顯示這個方法

sayhello的程式,很簡單的!

複製** **如下:

public sub sayhello()

myresponse.write ("hello world")

end sub

現在乙個小型的元件編寫完成,剩下的工作就是編譯這個元件,在"工程"選單中儲存它,取什麼名字都可以,我們用exmaple1.vbp吧! 然後就用在選單中選擇"make exmaple1.dll",將其編譯成dll檔案.乙個元件就真正完成了!

注意,編譯了此元件那麼你就得先把你的pws關掉,然後再編譯此元件.否則vb就會告訴你些元件在使用中.

在asp中使用我們的自己的元件.

當你更正了在編譯中的錯誤,成功地程式設計客棧編譯了example1這個工程,現在你就得拿出你最喜歡的html編輯器來寫下下面的語句,儲存為asp檔案.

執行後即可看到結果:

hello world

註冊元件

如果你想和你的朋友,鄰居分享你的元件,那麼你就得在你的系統上註冊你的元件.我們一般使用regsvr32.exe來註冊元件.註冊後你的元件會出現在win95/win98的windows/system目錄中.下面是乙個註冊的例子:

regsvr32.exe c:/wwwroot/example1/example1.dll

在你的系統中,vb會自動給你註冊,所以你很少用到regsvr32.exe

我們這裡只是寫了乙個非常小的元件,你們可以寫好自己的更大的元件,而且還可以用vb中的很多控制項.

讓我們用元件來擴充套件我們的程式的功能吧!也希望多多的看到我們中國人的元件.

本文標題: 手寫個小組件(元件入門)asp版

本文位址: /wangluo/asp/88854.html

ASP程式設計入門 ADO元件之分頁程式

asp程式設計入門 ado元件之分頁程式 1,rs.recordcount 很顯然,recordcount就是用來顯示資料庫表中一共多少條記錄的,也可以形象地說表中一共有多少行。經常用在分頁中就是一共有n篇文章等總計的資訊顯示。2,rs.pagesize rs.pagesize也就是一頁的大小,也就...

Asp元件初級入門與精通系列之二

如何註冊元件 1 regsvr32 元件的絕對路徑 如 regsvr32 c estfc1.dll 因為元件只要註冊就可以使用了,所以與元件的位置無關。2 在com 元件管理器中註冊。什麼時候需要這種註冊 元件在使用了com 的服務後需要註冊後才能正常的執行。如果該元件僅僅regsvr32註冊,仍然...

Asp元件中級入門與精通系列之七

開始資料庫操作。常見的元件封裝 1 把資料庫的連線資訊封裝起來。1 直接返回資料庫連線串,如,元件中 public?function?datasource as?variant datasource?driver server yang uid sa pwd database northwind e...