一、概述
大家知道,IIS(InternetInformationServer)應(yīng)用程序是VisualBasic應(yīng)用程序,它在動態(tài)的、基于瀏覽器的應(yīng)用程序中使用HTML和已編譯的VisualBasic代碼。IIS應(yīng)用程序駐留在Web服務(wù)器上,接受來自瀏覽器的請求,運行與請求相關(guān)聯(lián)的代碼并返回響應(yīng)到瀏覽器。IIS應(yīng)用程序可以使用VisualBasic代碼來完成以前用腳本、CGI處理和其他方法完成的功能。IIS應(yīng)用程序可以在任何瀏覽器上運行,因此它很容易得到廣泛的應(yīng)用。對用戶來說,一個IIS應(yīng)用程序好象是由一系列的HTML頁面組成。對開發(fā)者來說,一個IIS應(yīng)用程序是由一些被稱為Webclass的特殊類型對象組成。而Webclass包含一系列稱為Webitem的資源。Webclass作為應(yīng)用程序的核心,處理來自瀏覽器的數(shù)據(jù)并向用戶發(fā)送信息。Webitem是Webclass為響應(yīng)一個請求發(fā)送給瀏覽器的HTML頁面和其他數(shù)據(jù)。
二、IIS應(yīng)用程序的開發(fā)過程
IIS應(yīng)用程序的開發(fā)過程大體分為五個步驟。我們結(jié)合一個公文數(shù)據(jù)檢索程序來說明。
1、建立IIS應(yīng)用程序工程
當(dāng)建立一個IIS應(yīng)用程序時,應(yīng)選擇IIS應(yīng)用程序類型工程。IIS應(yīng)用程序工程是一個ActiveXDLL工程類型,它自動包括一個ActiveX設(shè)計器。這個稱為Webclass的設(shè)計器作為創(chuàng)建應(yīng)用程序的基礎(chǔ)。一個Webclass設(shè)計器對應(yīng)一個Webclass,但它可以包含多個HTML模板和Webitem。如果想在應(yīng)用程序中包括多個Webclass,必須在工程中插入另外的設(shè)計器。多數(shù)情況下,必須編寫代碼告訴Webclass當(dāng)應(yīng)用程序第一次啟動時做哪些工作,使用Start事件來完成它。當(dāng)用戶第一次訪問你的應(yīng)用程序時,Start事件發(fā)生。使用Start事件代碼漫游到應(yīng)用程序中的第一個Webitem。
例如,我們建立一個名為SearchData的IIS應(yīng)用程序,編寫Webclass的Start事件代碼如下:
PRivateSubWebclass_Start()
SetNextItem=SearchTpl
Endsub
2、添加HTML模板到Webclass
添加HTML模板到IIS應(yīng)用程序,可使Webclass在響應(yīng)用戶請求時向瀏覽器發(fā)送HTML頁面。當(dāng)添加一個模板到Webclass時,要選擇一個與它關(guān)聯(lián)的HTML頁面。一個Webclass可以包含多個模板Webitem,但每個模板Webitem僅能表示一個HTML頁面。你必須為每一個HTML頁面添加相應(yīng)的模板。在插入一個HTML頁面文件之后,可以使用HTML編輯器對頁面的內(nèi)容和布局進(jìn)行更改。例如,我們添加一個名為SearchTpl的模板Webitem,它與SearchCondition頁面關(guān)聯(lián),并編寫Respond事件將此HTML頁面的內(nèi)容寫到瀏覽器。
PrivateSubSearchTpl_Respond()
SearchTpl.WriteTemplate
EndSub
與SearchTpl模板關(guān)聯(lián)的SearchCondition頁面讓用戶輸入檢索條件。其內(nèi)容如下:
<HTML>
<head>
<metahttp-equiv="Content-Type"content="text/HTML;charset=gb_2312-80">
<title>檢索條件</title>
</head>
<bodybgcolor="#FFFFFF">
<formaction="SearchData_Webclass.asp?WCI=SearchResult"method="POST">
<p>起始日期<inputType="text"size="10"name="date1"></p>
<p>終止日期<inputType="text"size="10"name="date2"></p>
<p>文件字號<inputType="text"size="50"name="code"></p>
<p>文件標(biāo)題<inputType="text"size="50"name="title"></p>
<p><inputType="submit"name="submit"value="確定">
<inputType="reset"name="clear"value="清除">
</p>
</form>
</body>
</HTML>
自定義的Webitem允許你通過VisualBasic代碼動態(tài)地向瀏覽器發(fā)送響應(yīng)。自定義的Webitem通常是一組過程代碼。IIS應(yīng)用程序中的大多數(shù)處理發(fā)生在自定義Webitem的事件過程中。IIS應(yīng)用程序接收HTML頁面的請求,與Webitem的事件進(jìn)行匹配,并運行相應(yīng)的事件過程代碼。例如,我們添加一個名為SearchResult的自定義Webitem。它使用Request對象在SearchCondition頁面窗體中獲取用戶輸入的查詢條件,然后建立一個連接到ADO公文數(shù)據(jù)庫,創(chuàng)建記錄集并從中檢索滿足條件的信息。
PrivateSubSearchResult_Respond()
′為獲取窗體的信息聲明變量
PrivatesDate1asString
PrivatesDate2asString
PrivatesTitleasString
PrivatesCodeasString
′獲取窗體參數(shù)并賦給變量
sDate1=Request.Form("date1")
sDate2=Request.Form("date2")
sTitle=Request.Form("title")
sCode=Request.Form("code")
′為數(shù)據(jù)庫連接和記錄集聲明對象變量
DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimQueryStrAsString′
'形成SQL數(shù)據(jù)查詢字符串
QueryStr="selectform公文where"&"日期>="&"#"&sDate1&"#"&
"and"&"日期<="&"#"&sDate2&"#"&"and"&"文件標(biāo)題like"&"*"&"*"&sTitle&“*"&"*"&"and"&"文件字號like"&"*"&""&sCode&"*"&""
′建立數(shù)據(jù)庫連接
cn.ConnectionString="DSN=doc;UID=sa;
PWD=sa;DATABASE=document"
cn.Open
′創(chuàng)建記錄集
OpenQueryStr,cn,adOpenStatic,adlockReadonly
′將結(jié)果信息逐個記錄地寫到一個表格
WithResponse
.Write"<HTML>”
.Write"<BODY>"
.Write"<TABLEBORDERCELLSPACING=1CELLPADDING=7>"
DoWhilers.EOF=False
.Write"<TR><TD>"
.Writers("文件標(biāo)題")
.Write"</TD><TD>"
.Writers("文件字號")
.Write"</TD><TD>"
.Writers("日期")
.Write"</TD><TR>"
.Writers("責(zé)任單位")
.Write"</TD><TR>"
.Writers("主題詞")
.Write"</TD><TR>"
rs.MoveNext
Loop
.Write"</TABLE>"
.Write"</BODY>"
.Write"</HTML>"
EndWith′
'關(guān)閉記錄集和數(shù)據(jù)庫連接
rs.Close
cn.Close
EndSub
4、調(diào)試IIS應(yīng)用程序
調(diào)試一個IIS應(yīng)用程序的方法和調(diào)試其他VisualBasic應(yīng)用程序一樣,都是通過進(jìn)入運行模式來進(jìn)行的。VisualBasic為IIS應(yīng)用程序創(chuàng)建虛擬目錄,使用瀏覽器打開相應(yīng).asp文件啟動Webclass。調(diào)試時,可以使用VisualBasic的所有工具來調(diào)試你的工程。如設(shè)置斷點、查看變量、調(diào)試語句等。
5、部署IIS應(yīng)用程序
可以使用VisualBasic打包和展開向?qū)戆b和部署你的IIS應(yīng)用程序。打包和展開向?qū)⒐こ痰?DLL文件和所有相關(guān)的文件包裝到一個“壓縮包”或.cab文件中。然后可以部署這個壓縮包文件和相關(guān)文件到一個Web服務(wù)器上。
三、小結(jié)
利用VisualBasic開發(fā)IIS應(yīng)用程序,不但可以使用VisualBasic的類模塊和ActiveX部件,而且能夠使用VisualBasic所有的工具來調(diào)試IIS應(yīng)用程序。這種開發(fā)方法大大簡化了IIS應(yīng)用程序的開發(fā)過程,使我們更加方便地建立功能強(qiáng)大的Web站點。
->新聞熱點
疑難解答