利用VB6.0開(kāi)發(fā)基于IIS的應(yīng)用程序

2010-08-28 10:45:15來(lái)源:西部e網(wǎng)作者:

    本文介紹了利用VisualBasic開(kāi)發(fā)IIS應(yīng)用程序的方法和步驟。使用這種開(kāi)發(fā)方法不但大大簡(jiǎn)化了IIS應(yīng)用程序的開(kāi)發(fā)過(guò)程,而且使我們的Web站點(diǎn)具有更強(qiáng)的功能和更大的靈活性。

  一、概述

  大家知道,IIS(Internet Information Server)應(yīng)用程序是VisualBasic應(yīng)用程序,它在動(dòng)態(tài)的、基于瀏覽器的應(yīng)用程序中使用HTML和已編譯的VisualBasic代碼。IIS應(yīng)用程序駐留在Web服務(wù)器上,接受來(lái)自瀏覽器的請(qǐng)求,運(yùn)行與請(qǐng)求相關(guān)聯(lián)的代碼并返回響應(yīng)到瀏覽器。IIS應(yīng)用程序可以使用VisualBasic代碼來(lái)完成以前用腳本、CGI處理和其他方法完成的功能。IIS應(yīng)用程序可以在任何瀏覽器上運(yùn)行,因此它很容易得到廣泛的應(yīng)用。對(duì)用戶來(lái)說(shuō),一個(gè)IIS應(yīng)用程序好象是由一系列的HTML頁(yè)面組成。對(duì)開(kāi)發(fā)者來(lái)說(shuō),一個(gè)IIS應(yīng)用程序是由一些被稱為Webclass的特殊類型對(duì)象組成。而Webclass包含一系列稱為Webitem的資源。Webclass作為應(yīng)用程序的核心,處理來(lái)自瀏覽器的數(shù)據(jù)并向用戶發(fā)送信息。Webitem是Webclass為響應(yīng)一個(gè)請(qǐng)求發(fā)送給瀏覽器的HTML頁(yè)面和其他數(shù)據(jù)。

  二、IIS應(yīng)用程序的開(kāi)發(fā)過(guò)程

  IIS應(yīng)用程序的開(kāi)發(fā)過(guò)程大體分為五個(gè)步驟。我們結(jié)合一個(gè)公文數(shù)據(jù)檢索程序來(lái)說(shuō)明。

  1、建立IIS應(yīng)用程序工程

  當(dāng)建立一個(gè)IIS應(yīng)用程序時(shí),應(yīng)選擇IIS應(yīng)用程序類型工程。IIS應(yīng)用程序工程是一個(gè)ActiveXDLL工程類型,它自動(dòng)包括一個(gè)ActiveX設(shè)計(jì)器。這個(gè)稱為Webclass的設(shè)計(jì)器作為創(chuàng)建應(yīng)用程序的基礎(chǔ)。一個(gè)Webclass設(shè)計(jì)器對(duì)應(yīng)一個(gè)Webclass,但它可以包含多個(gè)HTML模板和Webitem。如果想在應(yīng)用程序中包括多個(gè)Webclass,必須在工程中插入另外的設(shè)計(jì)器。多數(shù)情況下,必須編寫代碼告訴Webclass當(dāng)應(yīng)用程序第一次啟動(dòng)時(shí)做哪些工作,使用Start事件來(lái)完成它。當(dāng)用戶第一次訪問(wèn)你的應(yīng)用程序時(shí),Start事件發(fā)生。使用Start事件代碼漫游到應(yīng)用程序中的第一個(gè)Webitem。

  例如,我們建立一個(gè)名為SearchData的IIS應(yīng)用程序,編寫Webclass的Start事件代碼如下:

Private Sub Webclass_Start()
 Set NextItem=SearchTpl
End sub

  2、添加HTML模板到Webclass

  添加HTML模板到IIS應(yīng)用程序,可使Webclass在響應(yīng)用戶請(qǐng)求時(shí)向?yàn)g覽器發(fā)送HTML頁(yè)面。當(dāng)添加一個(gè)模板到Webclass時(shí),要選擇一個(gè)與它關(guān)聯(lián)的HTML頁(yè)面。一個(gè)Webclass可以包含多個(gè)模板Webitem,但每個(gè)模板Webitem僅能表示一個(gè)HTML頁(yè)面。你必須為每一個(gè)HTML頁(yè)面添加相應(yīng)的模板。在插入一個(gè)HTML頁(yè)面文件之后,可以使用HTML編輯器對(duì)頁(yè)面的內(nèi)容和布局進(jìn)行更改。例如,我們添加一個(gè)名為SearchTpl的模板Webitem,它與SearchCondition頁(yè)面關(guān)聯(lián),并編寫Respond事件將此HTML頁(yè)面的內(nèi)容寫到瀏覽器。

Private Sub SearchTpl_Respond()
 SearchTpl.Write Template
End Sub

  與SearchTpl模板關(guān)聯(lián)的SearchCondition頁(yè)面讓用戶輸入檢索條件。其內(nèi)容如下:

<HTML>
<head>
。糾etahttp-equiv="Content-Type" content="text/HTML;charset=gb_2312-80">
 <title>檢索條件</title>
</head>
<body bgcolor="#FFFFFF">
。糵orm action="SearchData_Webclass.asp?WCI=SearchResult" method="POST">
 。紁>起始日期<input Type="text" size="10" name="date1"></p>
  <p>終止日期<inputType="text" size="10" name="date2"></p>
 。紁>文件字號(hào)<inputType="text" size="50" name="code"></p>
  <p>文件標(biāo)題<inputType="text" size="50" name="title"></p>
 。紁><inputType="submit" name="submit" value="確定">
  。糹nputType="reset" name="clear" value="清除">
  </p>
。/form>
</body>
</HTML>

 

    3、添加自定義的Webitem到Webclass

  自定義的Webitem允許你通過(guò)VisualBasic代碼動(dòng)態(tài)地向?yàn)g覽器發(fā)送響應(yīng)。自定義的Webitem通常是一組過(guò)程代碼。IIS應(yīng)用程序中的大多數(shù)處理發(fā)生在自定義Webitem的事件過(guò)程中。IIS應(yīng)用程序接收HTML頁(yè)面的請(qǐng)求,與Webitem的事件進(jìn)行匹配,并運(yùn)行相應(yīng)的事件過(guò)程代碼。例如,我們添加一個(gè)名為SearchResult的自定義Webitem。它使用Request對(duì)象在SearchCondition頁(yè)面窗體中獲取用戶輸入的查詢條件,然后建立一個(gè)連接到ADO公文數(shù)據(jù)庫(kù),創(chuàng)建記錄集并從中檢索滿足條件的信息。

Private Sub SearchResult_Respond()
 ′為獲取窗體的信息聲明變量
 Private sDate1 as String
 Private sDate2 as String
 Private sTitle as String
 Private sCode as String
 ′獲取窗體參數(shù)并賦給變量
 sDate1=Request.Form("date1")
 sDate2=Request.Form("date2")
 sTitle=Request.Form("title")
 sCode=Request.Form("code")
 ′為數(shù)據(jù)庫(kù)連接和記錄集聲明對(duì)象變量
 Dim cn As New ADODB.Connection
 Dim rs As New ADODB.Recordset
 Dim QueryStr As String′

 '形成SQL數(shù)據(jù)查詢字符串

 QueryStr="select form 公文 where "&"日期>="&"#" & sDate1 &"#"&
"and" &"日期<="&"# "& sDate2 & "#"&" and" &"文件標(biāo)題like" & "* "&" *"& sTitle & “ * "&"*"& "and" &"文件字號(hào)like"&"*"&" "& sCode&" * "&""

′建立數(shù)據(jù)庫(kù)連接

 cn.ConnectionString="DSN=doc;UID=sa;
 PWD=sa;DATABASE=document"
 cn.Open
 ′創(chuàng)建記錄集
 Open QueryStr,cn,adOpenStatic,adlockReadonly
 ′將結(jié)果信息逐個(gè)記錄地寫到一個(gè)表格
 With Response
  .Write "<HTML>”
  .Write "<BODY>"
  .Write "<TABLE BORDER CELLSPACING=1 CELLPADDING=7>"
  Do While rs.EOF=False
   .Write "<TR><TD>"
   .Write rs("文件標(biāo)題")
   .Write "</TD><TD>"
   .Write rs("文件字號(hào)")
   .Write "</TD><TD>"
   .Write rs("日期")
   .Write "</TD><TR>"
   .Write rs("責(zé)任單位")
   .Write "</TD><TR>"
   .Write rs("主題詞")
   .Write "</TD><TR>"
   rs.MoveNext
  Loop
  .Write"</TABLE>"
  .Write"</BODY>"
  .Write"</HTML>"
 End With′

 '關(guān)閉記錄集和數(shù)據(jù)庫(kù)連接

 rs.Close
 cn.Close
End Sub

  4、調(diào)試IIS應(yīng)用程序

  調(diào)試一個(gè)IIS應(yīng)用程序的方法和調(diào)試其他VisualBasic應(yīng)用程序一樣,都是通過(guò)進(jìn)入運(yùn)行模式來(lái)進(jìn)行的。VisualBasic為IIS應(yīng)用程序創(chuàng)建虛擬目錄,使用瀏覽器打開(kāi)相應(yīng).asp文件啟動(dòng)Webclass。調(diào)試時(shí),可以使用VisualBasic的所有工具來(lái)調(diào)試你的工程。如設(shè)置斷點(diǎn)、查看變量、調(diào)試語(yǔ)句等。

  5、部署IIS應(yīng)用程序

  可以使用VisualBasic打包和展開(kāi)向?qū)?lái)包裝和部署你的IIS應(yīng)用程序。打包和展開(kāi)向?qū)⒐こ痰?DLL文件和所有相關(guān)的文件包裝到一個(gè)“壓縮包”或.cab文件中。然后可以部署這個(gè)壓縮包文件和相關(guān)文件到一個(gè)Web服務(wù)器上。

  三、小結(jié)

  利用VisualBasic開(kāi)發(fā)IIS應(yīng)用程序,不但可以使用VisualBasic的類模塊和ActiveX部件,而且能夠使用VisualBasic所有的工具來(lái)調(diào)試IIS應(yīng)用程序。這種開(kāi)發(fā)方法大大簡(jiǎn)化了IIS應(yīng)用程序的開(kāi)發(fā)過(guò)程,使我們更加方便地建立功能強(qiáng)大的Web站點(diǎn)。

關(guān)鍵詞:VB6.0IIS