• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

        用VB完成WEB交互式應(yīng)用

        用VB完成WEB交互式應(yīng)用

        更新時(shí)間:2022-05-02 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

        摘要 本文介紹了Internet應(yīng)用程序及相關(guān)概念,并通過(guò)一個(gè)示例,介紹了使用VB創(chuàng)建IIS應(yīng)用程序來(lái)構(gòu)建交互式WEB應(yīng)用的方法。
          關(guān)鍵字 Internet應(yīng)用程序,IIS,HTML

          Microsoft Visual Basic 6.0增強(qiáng)了創(chuàng)建Internet應(yīng)用程序的功能。Internet應(yīng)用程序是一種編譯好的交互式應(yīng)用程序,通過(guò)Internet或intranet能夠訪(fǎng)問(wèn)這種應(yīng)用程序。在VB中有兩種類(lèi)型的Internet應(yīng)用程序:基于服務(wù)器的IIS應(yīng)用程序和基于客戶(hù)的DHTML應(yīng)用程序。基于服務(wù)器的IIS應(yīng)用程序駐留在WEB服務(wù)器上,應(yīng)用程序使用HTTP Internet協(xié)議接受從客戶(hù)端(如WEB瀏覽器)來(lái)的請(qǐng)求,處理相關(guān)的代碼,然后向?yàn)g覽器返回?cái)?shù)據(jù)。IIS應(yīng)用程序是一個(gè)VB應(yīng)用程序,它在一個(gè)動(dòng)態(tài)的、基于瀏覽器的應(yīng)用程序中使用HTML和已編譯VB代碼的組合。對(duì)開(kāi)發(fā)者來(lái)說(shuō),一個(gè)IIS應(yīng)用程序是由一些被稱(chēng)為WebClass的特殊類(lèi)型對(duì)象組成,而WebClass包含一系列稱(chēng)為Webitems的資源。WebClass是一個(gè)駐留在WEB服務(wù)器上并響應(yīng)瀏覽器輸入的VB部件,它作為應(yīng)用程序的中央功能單元,處理來(lái)自瀏覽器的數(shù)據(jù)并向用戶(hù)發(fā)送響應(yīng)信息。
          本文通過(guò)示例一個(gè)WEB應(yīng)用--電話(huà)號(hào)碼查詢(xún),說(shuō)明創(chuàng)建IIS應(yīng)用程序的一般過(guò)程。運(yùn)行此程序需要IIS3.0、IIS4.0 或 PWS。用戶(hù)在查詢(xún)界面輸入要查詢(xún)部門(mén)相應(yīng)的漢語(yǔ)拼音縮寫(xiě)或名稱(chēng)縮寫(xiě),如為空,則提示輸入部門(mén)名稱(chēng);系統(tǒng)以表格形式返回模糊查詢(xún)結(jié)果。

        一、創(chuàng)建工程及模板
        電話(huà)查詢(xún)界面模板文件的代碼如下:
        <html>
        <body bgcolor="#F6FAFF">
        <p align="center"><font size="6" face="幼圓"><strong>辦公電話(huà)號(hào)碼查詢(xún)</strong></font></p>
        <p><font size="4" face="黑體">查詢(xún)說(shuō)明:</font>
        您可以直接輸入各部門(mén)的全名或主要名稱(chēng),也可輸入各部門(mén)漢語(yǔ)拼音首字符縮寫(xiě)串;查詢(xún)結(jié)果將模糊匹配您所輸入的關(guān)鍵字.如輸入'網(wǎng)絡(luò)中心'或'wlzx'.</p>
        <hr size="1" color="#008080">
        <form method="POST">
        <wc@error></wc@error>
        <p align="center"><font size="4">請(qǐng)輸入要查詢(xún)的部門(mén):</font></p>
        <wc@FullName></wc@FullName>
        <p align="center">
        <font size="4">
        <input type="submit" name="submit" value="發(fā)送" style="font-size: 15pt; font-family: 幼圓"> <input type="reset" name="reset" value="重設(shè)" style="font-family: 幼圓; font-size: 15pt"></font></p>
        </form>
        <hr size="1" color="#008080">
        </body>
        </html>
        可以看到,界面文件除了基本的HTML元素外,沒(méi)有用于數(shù)據(jù)輸入的元素,但多了"wc@error"等標(biāo)記。Wc@標(biāo)記是模板中使用的替換指示符。替換指示符是標(biāo)記要用特定內(nèi)容替換的位置,以備在用戶(hù)請(qǐng)求時(shí)執(zhí)行文本替換過(guò)程。這些標(biāo)記具有標(biāo)記前綴和標(biāo)記名,標(biāo)記前綴用于指示W(wǎng)ebClass必須進(jìn)行一個(gè)替換操作。通過(guò)設(shè)置每一個(gè)模板的TagPrefix屬性定義標(biāo)記前綴。Wc@是VB的缺省標(biāo)記前綴。標(biāo)記名可以識(shí)別替換的區(qū)域。執(zhí)行文本替換是在一個(gè)WebClass模板文件中掃描特殊的指示符標(biāo)記,然后用自定義的內(nèi)容替換指示符或它們的內(nèi)容。當(dāng)WebClass在一個(gè)事件過(guò)程中響應(yīng)WriteTemplate方法時(shí),它自動(dòng)處理這些指示符。替換完成后,響應(yīng)用戶(hù)一個(gè)替換過(guò)的HTML文件。

        對(duì)含有標(biāo)記前綴文件的處理順序是:VB處理用戶(hù)的代碼,并從應(yīng)用程序的一個(gè)事件處理程序中調(diào)用WriteTemplate方法。WebClass根據(jù)ProcessTag事件的代碼處理并替換文件中所有前綴標(biāo)記,然后將模板文件寫(xiě)到Response對(duì)象,WriteTemplate方法再發(fā)送模板文件到瀏覽器。

        啟動(dòng)VB6,在新建工程中選擇IIS應(yīng)用程序。首先看到WebClass設(shè)計(jì)器,包含"HTML模板WebItems"和"自定義WebItems"。右擊WebClass設(shè)計(jì)器的"HTML模板WebItems",選擇"添加HTML模板",導(dǎo)入上述界面模板文件,然后將其命名為Phone_Search。

        二、實(shí)現(xiàn)代碼
        雙擊WebClass設(shè)計(jì)器右邊窗格的Form1標(biāo)記,為表單提交動(dòng)作定義一個(gè)自定義事件。該事件主要任務(wù)是接收用戶(hù)輸入的要查詢(xún)數(shù)據(jù),并把查詢(xún)數(shù)據(jù)提交到數(shù)據(jù)庫(kù)。具體代碼見(jiàn)清單。

        IIS應(yīng)用程序應(yīng)該指定用戶(hù)首次訪(fǎng)問(wèn)時(shí)顯示的內(nèi)容,因此,在WebClass_Start事件中將WebClass的NextItem屬性設(shè)置為Phone_Search,然后在Phone_Search_Respond事件中用模板的WriteTemplate方法將頁(yè)面發(fā)送到客戶(hù)端瀏覽器。在將頁(yè)面發(fā)送到瀏覽器時(shí),系統(tǒng)會(huì)遇到模板中的wc@標(biāo)記,此時(shí)它會(huì)自動(dòng)調(diào)用Phone_Search的ProcessTag事件,并把標(biāo)記名字作為參數(shù)傳遞給事件處理過(guò)程Phone_Search_Respond,在這個(gè)過(guò)程中返回插入文檔內(nèi)定制標(biāo)記所在位置的HTML代碼。當(dāng)在表單中輸入數(shù)據(jù)并提交表單時(shí),則執(zhí)行Phone_Search_Form1過(guò)程,它接收表單的數(shù)據(jù),如沒(méi)有錯(cuò)誤則調(diào)用自定義事件處理過(guò)程Searphone,該過(guò)程提交輸入數(shù)據(jù)到數(shù)據(jù)源,執(zhí)行查詢(xún)并以表格形式返回結(jié)果集。

        代碼清單:
        Option Explicit
        Option Compare Text
        '聲明全局量
        Dim FullName As String
        Dim strError As String
        '處理標(biāo)記元素過(guò)程
        Private Sub phone_search_ProcessTag(ByVal TagName As String, TagContents As String, SendTags As Boolean)
        Select Case LCase(TagName)
        '錯(cuò)誤信息
        Case "wc@error"
        If strError <> "" Then
        TagContents = "<hr><font color=""red"">"
        TagContents = TagContents & "請(qǐng)輸入要查詢(xún)的部門(mén)!" & _
        strError & "
        <hr></font>
        <hr>"
        End If
        '查詢(xún)的部門(mén)
        Case "wc@FullName"
        TagContents = "<center><input type=""text"" value=""" & FullName & """
        name=""FullName""></center>"
        End Select
        End Sub
        '響應(yīng)用戶(hù)請(qǐng)求過(guò)程
        Private Sub phone_search_Respond()
        '響應(yīng)用戶(hù)請(qǐng)求,輸出頁(yè)面
        phone_search.WriteTemplate
        End Sub

        Private Sub phone_search_Form1()
        strError = ""
        '獲取表單值
        FullName = Request("FullName")
        '測(cè)試是否為空
        If FullName = "" Then strError = strError & "<i>部門(mén)不能為空!</i>"
        '如表單輸入值為空,則提示輸入數(shù)據(jù),否則調(diào)用查詢(xún)過(guò)程
        If strError <> "" Then
        Set NextItem = phone_search
        Else
        SearPhone
        End If
        End Sub

        Private Sub WebClass_Start()
        Set NextItem = phone_search
        End Sub

        Public Sub SearPhone()
        Dim Mysql As String
        Dim Dbconn As New ADODB.Connection
        Dim mrd As New ADODB.Recordset
        '打開(kāi)數(shù)據(jù)源
        Dbconn.Open "telphone"
        '構(gòu)造查詢(xún)SQL語(yǔ)句
        Mysql = "select * from phone where depart like '%" & FullName & "%'" & _
        " or depart_p like '%" & FullName & "%'"
        '執(zhí)行SQL查詢(xún)
        Set mrd = Dbconn.Execute(Mysql)
        '輸出查詢(xún)結(jié)果
        With Response
        .Write "<html>"
        .Write "<body>"
        .Write "<title>Search Results</title>"
        .Write "<h1><font face=""Arial"">查詢(xún)結(jié)果如下:</font></h1>"
        If mrd.BOF And mrd.EOF Then '沒(méi)有符合條件的值
        .Write "<center>對(duì)不起,沒(méi)有相應(yīng)的部門(mén)!</center>"
        Else '有符合條件的值,以表格形式輸出
        .Write "<center>"
        .Write "<table border=""5"" wide=""50%"">"
        .Write "<tr><td>部 門(mén)</td><td>電 話(huà)</td>"
        Do While Not mrd.EOF
        .Write "<tr><td>"
        .Write mrd("depart")
        .Write "</td><td>"
        .Write mrd("phone_no")
        .Write "</td>
        "
        mrd.MoveNext
        Loop
        End If
        .Write "</table>"
        .Write "<h1><font face=""Arial"">謝謝使用</font></h1>"
        .Write "</body>"
        .Write "</html>"
        End With
        '釋放變量,關(guān)閉數(shù)據(jù)庫(kù)連接
        Set mrd=Nothing
        Dbconn.close
        End Sub

        本例程使用了ACCESS數(shù)據(jù)庫(kù)表Phone,DSN名為T(mén)elphone,表結(jié)構(gòu)及部分示例數(shù)據(jù)如下。
        Phone表結(jié)構(gòu):
        字段名 類(lèi)型 長(zhǎng)度 說(shuō)明
        PhoneID 自動(dòng)編號(hào) 長(zhǎng)整形 主鍵
        Depart 文本 20
        Depart_p 文本 10
        Phone_no 文本 7
        示例數(shù)據(jù):
        1 網(wǎng)管中心 Wgzx 2419039
        2 網(wǎng)管辦 Wgb 2419187
        3 計(jì)算機(jī)系辦公室 Jsjxb 2419237
        4 計(jì)算機(jī)系主任辦公室 Jsjxb 2419236
        5 計(jì)算機(jī)系實(shí)驗(yàn)室 Jsjxsys 2419234

        如用戶(hù)輸入"網(wǎng)管"或"wg"后,程序響應(yīng)其請(qǐng)求。

        三、部署IIS應(yīng)用程序
        一個(gè)IIS應(yīng)用程序必須作為一個(gè)進(jìn)程內(nèi)部件或一個(gè)DLL文件被創(chuàng)建。象編譯其它VB工程一樣,選擇生成DLL文件。IIS應(yīng)用程序編譯時(shí)產(chǎn)生以下文件:一個(gè)VB用于運(yùn)行工程的DLL文件;一個(gè)在瀏覽器中宿主應(yīng)用程序并產(chǎn)生它的運(yùn)行時(shí)部件的ASP文件;一個(gè)在編譯和連接工程時(shí)由連接器產(chǎn)生的EXP文件;一個(gè)包含工程的窗口布局信息的VBW文件。然后使用VB的打包和展開(kāi)向?qū)?lái)部署IIS應(yīng)用程序。必須部署的應(yīng)用程序包括DLL文件,與工程相關(guān)的HTML頁(yè)面及被HTML頁(yè)面引用的文件。

        四、小結(jié)
        用VB構(gòu)造服務(wù)器端的IIS應(yīng)用程序比其它的WEB應(yīng)用開(kāi)發(fā)具有減少每個(gè)用戶(hù)部署費(fèi)用,可重復(fù)使用部件,代碼和HTML分離,高效等優(yōu)點(diǎn);而且由于對(duì)VB環(huán)境的熟悉,可以充分利用傳統(tǒng)的編程方法。

        參考資料:Microsoft MSDN 之Visual Basic文檔
        (本示例程序在Windows 98+PWS下運(yùn)行成功) 

        溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!

        本類(lèi)教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲国产品综合人成综合网站| 免费又黄又硬又爽大片| 最近中文字幕大全中文字幕免费| a级成人毛片免费图片| 99re在线视频免费观看| 永久黄网站色视频免费观看| 久久乐国产精品亚洲综合| 亚洲成人在线电影| 亚洲人成色4444在线观看| 一级毛片在播放免费| 亚洲电影免费在线观看| 日韩一级视频免费观看| 久久久久亚洲Av无码专| 亚洲精品国产suv一区88| 久久久久久久99精品免费| 亚洲今日精彩视频| 国产精品九九久久免费视频| A级毛片内射免费视频| 亚洲综合精品香蕉久久网| 亚洲免费在线视频观看| 成人免费男女视频网站慢动作| 亚洲午夜未满十八勿入| 18pao国产成视频永久免费| 亚洲综合区小说区激情区| 亚洲综合无码一区二区痴汉 | 亚洲伊人久久成综合人影院| aa级毛片毛片免费观看久| 国产免费卡一卡三卡乱码| 亚洲不卡中文字幕| 免费一级毛片在线播放视频| 免费在线观看一级毛片| 久久久久久久久久免免费精品| 久久精品国产亚洲AV嫖农村妇女 | 国产免费无遮挡精品视频| g0g0人体全免费高清大胆视频| 亚洲大成色www永久网站| 特级毛片免费观看视频| 无码高潮少妇毛多水多水免费| 黄色三级三级三级免费看| 日韩亚洲Av人人夜夜澡人人爽 | 免费一级一片一毛片|