基于WEB的考核系統(tǒng)的的設(shè)計(jì)與開發(fā)_第1頁
基于WEB的考核系統(tǒng)的的設(shè)計(jì)與開發(fā)_第2頁
基于WEB的考核系統(tǒng)的的設(shè)計(jì)與開發(fā)_第3頁
基于WEB的考核系統(tǒng)的的設(shè)計(jì)與開發(fā)_第4頁
基于WEB的考核系統(tǒng)的的設(shè)計(jì)與開發(fā)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于WEB的考核系統(tǒng)的研究Theresearchtotheexamsystemconcernedwithweb蕭山電大陳懿煒摘要Summary基于WEB的考核系統(tǒng)通過DCOM組件對象使客戶機(jī)與服務(wù)器進(jìn)行通訊,在WINDOWS環(huán)境下,服務(wù)程序的代碼以動態(tài)連接庫(DLL)的形式實(shí)現(xiàn).基于IIS平臺,結(jié)合ASP技術(shù)編寫WEB頁,使用ADO對象連接遠(yuǎn)程數(shù)據(jù)庫,考試更靈活,功能更完善。TheexamsystemconcernedwithwebcanmaketheserverandclientscommunicatebyDCOMobjects.Inwindows,thecodesofservingprogramcanberealizedwiththeformofDLL.TheexamsystemcanbemoreconvenientandperfectbyusingtheADOcombinedwithASPtechnologytoeditwebpagesbasedonISS.[關(guān)鍵詞]DCOMIISADOASP1.歷史上的考核系統(tǒng)計(jì)算機(jī)無紙化考試替代傳統(tǒng)的書面答題,從最初在DOS環(huán)境下操作,到后來在WINDOWS界面中,一直到如今的基于WEB的考核,這都是與計(jì)算機(jī)技術(shù)的飛速發(fā)展密不可分的.如今人們只要上了INTERNET,就可以足不出戶的參加任何一次在網(wǎng)上的考試,我們在研究基于WEB的考核系統(tǒng)時(shí),通過DCOM對象來實(shí)現(xiàn)客戶/服務(wù)器模型的中間層.并使用了ASP(ACTIVESERVERPAGE)技術(shù),使基于WEB的考試更靈活,功能更完善。在考核系統(tǒng)的歷史中,DOS環(huán)境下的考試無疑是最原始的,但就當(dāng)時(shí)傳統(tǒng)的書面答卷來說,也無疑是歷史性的突破。DOS環(huán)境下使用了NOVELL的LAN解決方案,考生從無盤工作站登陸服務(wù)器,就被映射到服務(wù)器上先前已分配給考生的一對一的共享目錄下,考核系統(tǒng)作為一組共享的文件存放在服務(wù)器上另一共享目錄下,考生在自己的目錄中運(yùn)行考核系統(tǒng)。在這種模式中,五六十個(gè)考生一起對考核系統(tǒng)進(jìn)行操作,勢必使服務(wù)器性能驟然下降,減慢考試速度。這受到當(dāng)時(shí)軟硬件技術(shù)的限制,隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,WINDOWS32位系統(tǒng)的產(chǎn)生和推廣,WINDOWS環(huán)境下的考試成為了可能,基于客戶/服務(wù)器模型,考核系統(tǒng)應(yīng)用程序被分給了客戶機(jī)和服務(wù)器運(yùn)行,在客戶機(jī)和服務(wù)器上的應(yīng)用程序一起協(xié)調(diào)工作以完成特定的任務(wù)??蛻?服務(wù)器結(jié)構(gòu)需要兩個(gè)實(shí)體來完成一個(gè)進(jìn)程。當(dāng)客戶機(jī)向服務(wù)器發(fā)出請求,服務(wù)器為客戶機(jī)提供完成這個(gè)請求的服務(wù)。例如:一個(gè)SQL的查詢過程是這樣進(jìn)行的:客戶機(jī)的應(yīng)用程序發(fā)出一個(gè)SQL查詢請求,服務(wù)器處理這個(gè)查詢,并把查詢的結(jié)果返回給客戶。這使得數(shù)據(jù)傳輸更有效,減少了網(wǎng)絡(luò)的通訊量,并極大的提高了操作的性能。但由于是客戶/服務(wù)器結(jié)構(gòu),在每一臺客戶機(jī)上都要安裝部分的應(yīng)用程序,這使考前初始化考試環(huán)境的工作量大大增加了,浪費(fèi)了很多人力和時(shí)間。2.基于WEB的考核系統(tǒng)2.1三層及多層客戶/服務(wù)器體系我們在研究基于WEB的考核系統(tǒng)時(shí),也是構(gòu)架客戶/服務(wù)器結(jié)構(gòu)之上,使用三層客戶/服務(wù)器體系,即數(shù)據(jù)層,中間對象層,客戶層。體系結(jié)構(gòu)見下圖:多層開發(fā)要優(yōu)于傳統(tǒng)的客戶/服務(wù)器編程。這是因?yàn)槎鄬討?yīng)用系統(tǒng)能夠?qū)⒖蛻?服務(wù)器應(yīng)用系統(tǒng)的活力和框架與主機(jī)系統(tǒng)的健壯性和可伸縮性結(jié)合起來。傳統(tǒng)客戶/服務(wù)器系統(tǒng)設(shè)計(jì)上的局限性之一,就是軟件一般不能有效地分層處理。客戶/服務(wù)器軟件常常是一體化的。在一體化的軟件中,不同類型操作的程序代碼是混在一起的,這種代碼都被編譯為傳統(tǒng)的WindowsEXE和DLL。實(shí)踐已經(jīng)證明,一體化軟件不能滿足許多客戶/服務(wù)器應(yīng)用系統(tǒng)對靈活性和可伸縮性方面的要求。在許多傳統(tǒng)的客戶/服務(wù)器系統(tǒng)中,對服務(wù)器軟件的一個(gè)很小的修改,都會導(dǎo)致對客戶軟件進(jìn)行大規(guī)模的更新。對客戶軟件進(jìn)行大規(guī)模的更新往往是由于EXE和DLL之間固有依賴性引起的,因而,在多層應(yīng)用系統(tǒng)中,必須避免各層之間固有的依賴性。要做到在更新某一層上的軟件時(shí),不必更新相鄰層的軟件?;赪EB的考核系統(tǒng)的客戶應(yīng)用程序是一個(gè)WEB瀏覽器,運(yùn)行在客戶機(jī)上并只含有用戶界面代碼。這樣每次更新應(yīng)用程序時(shí)都不必更新所有客戶機(jī)。當(dāng)需要時(shí),所有的用戶接口及業(yè)務(wù)邏輯都可以從WEB服務(wù)器上以動態(tài)的HTML內(nèi)容,Javaapplets,ActiveX控件,VBScript,JaveScript等等的形式下載。而業(yè)務(wù)邏輯一般被移到中間對象層中,在考核系統(tǒng)中,中間層軟件運(yùn)行在其自己的計(jì)算機(jī)上。事實(shí)上,將WEB作為客戶/服務(wù)器應(yīng)用程序的基礎(chǔ)結(jié)構(gòu)使用完全解決了軟件分布的問題。考核系統(tǒng)的中間層主要通過DCOM組件來實(shí)現(xiàn)。2.2關(guān)于DCOM技術(shù)分布式組件對象模型,亦稱作DCOM。DCOM是COM的擴(kuò)展,它可以支持不同計(jì)算機(jī)上組件對象與客戶程序之間或者組件對象之間的相互通信,使基于COM的組件在位于不同機(jī)器上的兩個(gè)進(jìn)程間協(xié)作。對于客戶程序而言,組件程序所處的位置是透明的,這樣我們可以不必編寫網(wǎng)絡(luò)代碼去處理分布式組件跨網(wǎng)絡(luò)交互所需要的通信。利用DCOM,就可以在服務(wù)器上放上實(shí)際功能,客戶像在本地一樣訪問這些功能。組件改變時(shí),可以在服務(wù)器上一次替換,而不必到每臺客戶機(jī)上替換。放好服務(wù)器組件后,所有客戶機(jī)都得到更新。DCOM組件建成在進(jìn)程內(nèi)(表示組件與所在應(yīng)用程序運(yùn)行在同一進(jìn)程空間。組件與所在應(yīng)用程序共享相同地址空間。進(jìn)程內(nèi)組件用DLL建立)或進(jìn)程外(表示組件與所在應(yīng)用程序不運(yùn)行在同一進(jìn)程空間。組件與所在應(yīng)用程序不共享相同地址空間。進(jìn)程內(nèi)組件用EXE建立)服務(wù)器,仍然需要注冊,但位于不同機(jī)器上。組件在客戶機(jī)機(jī)器上注冊時(shí),其實(shí)際地址信息包含組件在哪個(gè)遠(yuǎn)程計(jì)算機(jī)上運(yùn)行。利用這個(gè)信息,客戶機(jī)軟件知道連接哪臺計(jì)算機(jī)以訪問該組件。調(diào)用組件時(shí),從編程人員角度看,就是生成DCOM對象的實(shí)例,和任何其它組件一樣。運(yùn)行系統(tǒng)彈到注冊處查閱正要建立的注冊表中的組件項(xiàng)目。假設(shè)它找到所要內(nèi)容,則系統(tǒng)知道組件位于哪臺機(jī)器上。請求組件時(shí)系統(tǒng)連接網(wǎng)絡(luò)上的這臺機(jī)器,作出請求。任何所需的數(shù)據(jù)都經(jīng)過網(wǎng)絡(luò)返回客戶機(jī)軟件。而用戶不必考慮通信機(jī)制和定位組件,這些均由操作系統(tǒng)處理。可以說DCOM是一個(gè)高層網(wǎng)絡(luò)協(xié)議,DCOM協(xié)議也被稱為對象RPC(ORPC,objectremoteprocedurecall),它建立在DCERPC協(xié)議的基礎(chǔ)上,可以用于各種基于組件的分布式系統(tǒng)。ORPC建立了一套面對對象的遠(yuǎn)程調(diào)用規(guī)范,指定了如何在網(wǎng)絡(luò)上進(jìn)行調(diào)用、對對象的引用如何表示和維護(hù)。ORPC同時(shí)可使用于Internet和Intranet網(wǎng)絡(luò)環(huán)境中組件之間的通信。在Internet和Intranet網(wǎng)絡(luò)環(huán)境下,ORPC仍使用標(biāo)準(zhǔn)的RPC數(shù)據(jù)包,附加上專用于DCOM的一些信息—接口指針標(biāo)識符(IPID,interfacepointidentifier)、版本信息和擴(kuò)展信息—作為調(diào)用和返回的附加參數(shù)進(jìn)行傳遞,其中IPID表示調(diào)用被處理的遠(yuǎn)程機(jī)器上特定對象的特定接口。編程人員使用DOCM時(shí),用某些變元調(diào)用接口上的方法。DCOM中將方法調(diào)用變?yōu)镽PC調(diào)用。這里,過程等價(jià)與組件中的方法。同樣,DCOM接口上用方法調(diào)用DCOM服務(wù)時(shí),內(nèi)部變成遠(yuǎn)程過程調(diào)用,調(diào)用DCOM服務(wù)組件中的方法。這種轉(zhuǎn)變很容易,因?yàn)榻M件調(diào)用的機(jī)制與RPC調(diào)用的機(jī)制非常相似。編程人員使用組件是,實(shí)際上是在查找接口描述的方法組。編程人員使用RPC時(shí),只查找其中一個(gè)方法。過程也是由接口定義,因此RPC與組件調(diào)用之間的相似性是顯而易見的。差別在于組件調(diào)用使用的接口將方法組合在類的概念上,而PRC接口則不發(fā)生組合,每個(gè)方法有一個(gè)接口。但我們在開發(fā)DCOM組件時(shí)并不需要直接在ORPC層次上進(jìn)行開發(fā),因?yàn)榻M件程序和客戶程序?qū)嶋H上只跟存根代碼和代理對象進(jìn)行通信。存根(stub)和代理(proxy)是COM的兩個(gè)特殊組件。存根位于服務(wù)器進(jìn)程中,處理與客戶機(jī)的通信。代理位于客戶機(jī)進(jìn)程中,處理與服務(wù)器的通信。在VC++中我們可以使用MIDL工具來產(chǎn)生代理/存根代碼,MIDL是MicrosoftInterfaceDefinitionLanguage,即接口定義語言。在開發(fā)DCOM組件時(shí),只要編寫每個(gè)自定義接口的IDL描述,然后用MIDL工具產(chǎn)生C源碼,再經(jīng)過編譯連接得到代理/存根組件。如果使用VB來開發(fā)DCOM組件將比VC++簡單的多,VisualBasic環(huán)境隱藏了許多關(guān)于DCOM的細(xì)節(jié)。2.2.1使用VB建立DCOM服務(wù)器1.啟動VB,在NewProject對話框中選擇ActiveXDLL。2.設(shè)置項(xiàng)目屬性,我們使用無用戶界面的單元線程。3.設(shè)置類的屬性,對類的Instancing屬性設(shè)置。這個(gè)屬性確定其他應(yīng)用程序是否生成組件的實(shí)例,如何生成。我們設(shè)置為MultiUse,表示其它應(yīng)用程序可以生成這個(gè)類的實(shí)例組件的一個(gè)實(shí)例可以生成類的多個(gè)實(shí)例。(1)編程類,DLL接口,通過聲明公有變量來設(shè)置DCOM組件接口的屬性例:PublicFailNumberAsBoolean準(zhǔn)考證號是否存在PublicNewNumberAsBoolean是否是新用戶PublicstrWindowsTitleAsStr生成Windows試題的題目通過編寫Function設(shè)置DCOM接口的方法例:InitSQLServer()初始化SQL數(shù)據(jù)庫InitStudentNumber()取得準(zhǔn)考證號CheckUsers()初始化考生目錄(2)編譯DCOM組件選擇File–>Makexxx.dll.(3)手工注冊DCOM組件,在NT上將這個(gè)DLL復(fù)制到WINNT的SYSTEM32目錄下,并用Regsvr32對DLL注冊。2.3WEB考核系統(tǒng)動態(tài)HTML的實(shí)現(xiàn)1.基于IIS平臺和ASP技術(shù)我們可以靈活的編寫動態(tài)WEBIIS服務(wù)平臺結(jié)構(gòu)圖IIS是Microsoft的WEB服務(wù)器,它通過支持ASP,使得動態(tài)、交互的WEB應(yīng)用程序開發(fā)迅速流行。IIS對使用VBScript、JavaScript以及CGI等開發(fā)應(yīng)用程序都提供了支持。2.3.1ASP概述與模型MicrosoftActiveServerPages(ASP)是服務(wù)器端腳本編寫環(huán)境,使用它可以創(chuàng)建和運(yùn)行動態(tài)、交互的Web服務(wù)器應(yīng)用程序。使用ASP可以組合HTML頁、腳本命令和ActiveX組件以創(chuàng)建交互的Web頁和基于Web的功能強(qiáng)大的應(yīng)用程序。ASP應(yīng)用程序很容易開發(fā)和修改。包含在WindowsNTOptionpack中的MicrosoftTransactionServer(MTS)可以降低在服務(wù)器上構(gòu)造程序的復(fù)雜性和費(fèi)用。MTS可以解決開發(fā)那些保密性強(qiáng)的、可分級的以及可靠的Web應(yīng)用程序的復(fù)雜性問題。瀏覽器從Web服務(wù)器上請求.asp文件時(shí),ASP腳本開始運(yùn)行。然后Web服務(wù)器調(diào)用ASP,ASP全面讀取請求的文件,執(zhí)行所有腳本命令,并將Web頁傳送給瀏覽器。由于腳本在服務(wù)器上而不是在客戶端運(yùn)行,傳送到瀏覽器上的Web頁是在Web服務(wù)器上生成的。所以不必?fù)?dān)心瀏覽器能否處理腳本:Web服務(wù)器已經(jīng)完成了所有腳本的處理,并將標(biāo)準(zhǔn)的HTML傳輸?shù)綖g覽器。由于只有腳本的結(jié)果返回到瀏覽器,所以服務(wù)器端腳本不易復(fù)制。用戶看不到創(chuàng)建他們正在瀏覽的頁的腳本命令。ASP提供內(nèi)建對象,這些對象使用戶更容易收集通過瀏覽器請求發(fā)送的信息、響應(yīng)瀏覽器以及存儲用戶信息(1)Application對象可以使用Application對象使給定應(yīng)用程序的所有用戶共享信息。(2)Request對象可以使用Request對象訪問任何用HTTP請求傳遞的信息,包括從HTML表單用POST方法或GET方法傳遞的參數(shù)、cookie和用戶認(rèn)證。Request對象使您能夠訪問發(fā)送給服務(wù)器的二進(jìn)制數(shù)據(jù),如上載的文件。(3)Response對象可以使用Response對象控制發(fā)送給用戶的信息。包括直接發(fā)送信息給瀏覽器、重定向?yàn)g覽器到另一個(gè)URL或設(shè)置cookie的值。(4)Server對象Server對象提供對服務(wù)器上的方法和屬性進(jìn)行的訪問。最常用的方法是創(chuàng)建ActiveX組件的實(shí)例(Server.CreateObject)。其他方法用于將URL或HTML編碼成字符串,將虛擬路徑映射到物理路徑以及設(shè)置腳本的超時(shí)期限。(5)Session對象可以使用Session對象存儲特定的用戶會話所需的信息。當(dāng)用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時(shí),存儲在Session對象中的變量不會清除;而用戶在應(yīng)用程序中訪問頁時(shí),這些變量始終存在。也可以使用Session方法顯式地結(jié)束一個(gè)會話和設(shè)置空閑會話的超時(shí)期限。(6)ObjectContext對象可以使用ObjectContext對象提交或撤消由ASP腳本初始化的事務(wù)。2.3.2使用form表單收集Web信息使用HTML表單(form)是收集Web信息最常用的方法,是在Web頁上提供用戶界面控件的特殊的HTML標(biāo)記的排列。文本框、按鈕和復(fù)選框都是典型的控件,這些控件使用戶和Web頁實(shí)現(xiàn)交互,并且將信息提交給Web服務(wù)器。下面源代碼產(chǎn)生一個(gè)表單,在表單中,我們通過ASP技術(shù)連接遠(yuǎn)程數(shù)據(jù)庫,通過循環(huán)逐個(gè)讀出數(shù)據(jù)庫中的記錄,并將其生成在HTML頁中,這樣用戶可以進(jìn)行12道選擇題操作,用戶只要在四個(gè)RADIO按鈕中選其一,就完成了對一道選擇題的操作,在這個(gè)表單中,包含了一個(gè)將這些信息提交給Web服務(wù)器的按鈕。<formmethod="post"action="select.asp"><%dimcodecode=1whilecode<=12whilenotrs.eof%><%=code%>.<%=rs("Question_Title")%><inputtype=radioname=<%="qus"&code%>value=A><%=rs("Answer_One")%><inputtype=radioname=<%="qus"&code%>value=B><%=rs("Answer_two")%><inputtype=radioname=<%="qus"&code%>value=C><%=rs("Answer_three")%><inputtype=radioname=<%="qus"&code%>value=D><%=rs("Answer_four")%><%code=code+1rs.movenextwendwendrs.closemyConnection.Close%><inputtype="submit"value="存盤返回"></form>處理ASP輸入的表單,在表格向Web服務(wù)器提交信息時(shí),用戶的Web瀏覽器請求用HTML<FORM>標(biāo)記的ACTION屬性所指定的.asp文件。這個(gè).asp文件包含了處理表單值(如顯示結(jié)果表或從數(shù)據(jù)庫查詢信息)的腳本。下面是我們處理提交信息的源代碼:<%fori=1to12ifisempty(Request.Form("qus"&i))thenstranswer=stranswer+"e"elsestranswer=stranswer+Request.Form("qus"&i)endifnext%>對每一個(gè)提交上來的信息Request.Form("qus"&i)進(jìn)行分析,如果考生少做了一題那么這一題的答案被標(biāo)識為"e",通過循環(huán)就處理了全部的數(shù)據(jù)。2.4在WEB中調(diào)用DCOM組件在ASP頁上用Server.CreateObject創(chuàng)建的對象在該頁的生存期內(nèi)一直存在。該對象對該頁的任何腳本命令都是可訪問的,當(dāng)ASP處理完該頁時(shí),該對象即被釋放。因此,對象具有該頁的作用域或生命周期。在用VisualBasic或VBScript編程時(shí),要注意在ASP處理完該頁之前不要釋放對象。一旦在Session對象中存儲了對象,您就可以從應(yīng)用程序的任何頁中訪問該對象。下面的語句使用session創(chuàng)建對象實(shí)例:settool=Server.CreateObject("prjc.clsc")setsession("objlace")=tool當(dāng)創(chuàng)建了tool對象后,我們把它賦給objlace這個(gè)session對象,這樣在其他ASP頁面中可以把objlace這個(gè)session對象賦給另一個(gè)變量,在這個(gè)頁面我們就可以使用開始時(shí)創(chuàng)建的組件了,例如:setccc=session("objlace")ASP程序只是在服務(wù)器上運(yùn)行,我們的考核系統(tǒng)需要對客戶機(jī)進(jìn)行本地操作,這樣我們必須知道DCOM的對外接口。在DCOM模型中,對象本身對客戶來說是不可見的,客戶請求服務(wù)時(shí),只能通過接口進(jìn)行。每一個(gè)接口都由一個(gè)128位的全局唯一標(biāo)識符(GUID,GloballyUniqueIdentifier)來標(biāo)識??蛻敉ㄟ^GUID獲得接口的指針,再通過接口指針,客戶就可以調(diào)用其相應(yīng)的成員函數(shù)。至于具體功能如何實(shí)現(xiàn),則完全由對象的接口內(nèi)部實(shí)現(xiàn)。一般來說,接口是不變的,只要客戶期望的接口在組件對象中還存在,它就可以繼續(xù)使用該接口所提供的服務(wù)。對象可以支持多個(gè)接口,因此對組件對象的升級可通過增加接口的辦法實(shí)現(xiàn),這樣得到的新接口可以不影響老接口的使用。新客戶可使用新增的接口,老客戶可在不更新代碼的情況下繼續(xù)使用。新客戶可使用新增的接口,老客戶可在不更新代碼的情況下繼續(xù)使用老的接口。客戶如何來標(biāo)識DCOM對象呢?與接口相識,每個(gè)對象也用一個(gè)128位的GUID來標(biāo)識,稱為CLSID(classidentifier,類標(biāo)識符或類ID),用CLSID標(biāo)識對象可以保證(概率意義上)在全球范圍內(nèi)的唯一性。只要系統(tǒng)中含有這類DCOM對象的信息,并包括DCOM對象所在的模塊文件(DLL或EXE)以及DCOM對象在代碼中的入口點(diǎn)(實(shí)際過程要復(fù)雜的多),客戶程序就可以由CLSID來創(chuàng)建DCOM對象。實(shí)際上,客戶成功的創(chuàng)建對象后,它得到的是一個(gè)指向?qū)ο竽硞€(gè)接口的指針,因?yàn)镈COM對象至少實(shí)現(xiàn)一個(gè)接口(沒有接口的DCOM對象是沒有意義的)。所以客戶就可以調(diào)用該接口提供的所有服務(wù)。根據(jù)DCOM規(guī)范,一個(gè)DCOM對象如果實(shí)現(xiàn)了多個(gè)接口,則可以從某個(gè)接口得到該對象的任意其他接口,所以我們得到了一個(gè)接口指針后,它就可以調(diào)用該對象所有接口提供的服務(wù)。從這個(gè)過程我們也可以看出,客戶與DCOM對象接口只通過接口打交道,對象對于客戶來說只是一組接口。在基于WEB的考核系統(tǒng)中,我們使用CLSID來標(biāo)識DCOM對象。在網(wǎng)頁中我們使用<object>標(biāo)記創(chuàng)建對象。例如:<OBJECTclassid=clsid:1DEF40CC-341A-11D4-BDAD-5254AB1C14D8codeBase=prjc.dllheight=31id=Teststyle="HEIGHT:36px;WIDTH:42px"width=35></OBJECT>這樣就可以使用由prjc.dll這個(gè)DCOM組件所創(chuàng)建的實(shí)例對象Test,下面是我們在考試系統(tǒng)中引用Test對象打開EXCEL習(xí)題的部分代碼:<SCRIPTlanguage=VBSCRIPT>SUBBUTTON1_ONCLICK()Test.InitSQLServer"ccc","ccc"Test.InitStudentNumber<%=session("strNumber")%>Test.ExcelExENDSUB</SCRIPT>在這段源碼中,我們可以充分的看到使用DCOM組件的優(yōu)點(diǎn),它封裝了程序代碼,只提供使用對象的方法,這樣使程序更加靈活,組織層次性更強(qiáng)。而且由于使用了DCOM技術(shù),對客戶機(jī)的要求降低了,通過瀏覽器就可以實(shí)現(xiàn)考核。2.5遠(yuǎn)程數(shù)據(jù)庫的連接(ADO數(shù)據(jù)對象的使用)ADO是為Microsoft最新和最強(qiáng)大的數(shù)據(jù)訪問范例OLEDB而設(shè)計(jì)的,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌?。OLEDB為任何數(shù)據(jù)源提供了高性能的訪問,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對象等等。ADO在關(guān)鍵的Internet方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。之所以稱為ADO,是用了一個(gè)比較熟悉的暗喻,OLE自動化接口,ADO數(shù)據(jù)對象也遵循了COM/DCOM接口規(guī)范。ADO之所以具有強(qiáng)大的功能和靈活性,是由于它可以連接到不同的數(shù)據(jù)提供者并仍能使用相同的編程模式,而不管給定提供者的特定特性是什么。ADO編程模型:ADO的目標(biāo)是訪問、編輯和更新數(shù)據(jù)源,而編程模型體現(xiàn)了為完成該目標(biāo)所必需的系列動作的順序。ADO提供類和對象以完成以下活動:連接到數(shù)據(jù)源(Connection)??蛇x擇開始一個(gè)事務(wù)??蛇x擇創(chuàng)建對象來表示SQL命令(Command)??蛇x擇在SQL命令中指定列、表和值作為變量參數(shù)(Parameter)。執(zhí)行命令(Command、Connection或Recordset)。如果命令按行返回,則將行存儲在緩存中(Recordset)??蛇x擇創(chuàng)建緩存視圖,以便能對數(shù)據(jù)進(jìn)行排序、篩選和定位(Recordset)。通過添加、刪除或更改行和列編輯數(shù)據(jù)(Recordset)。在適當(dāng)情況下,使用緩存中的更改內(nèi)容來更新數(shù)據(jù)源(Recordset)。在使用事務(wù)之后,可以接受或拒絕在事務(wù)期間所作的更改。結(jié)束事務(wù)(Connection)。以下是在ASP頁中使用ADO數(shù)據(jù)對象的源代碼:<%no=session("strNumber")sConnection="Provider=SQLOLEDB;UserID=sa;Password=;InitialCatalog="&dBase&";DataSource="&AddresssetmyConnection=server.createobject("ADODB.CONNECTION")myConnection.opensConnectionsetrs=Server.CreateObject("ADODB.Recordset")selectSQL="select*fromAnswer_TablewhereUserNumber='"&no&"'"rs.openselectSQL,myconnectionstnumber=rs("SelectNum")rs.closesetrs=server.createobject("ADODB.Recordset")sSQL="select*fromSelect_TopicwhereTopic_Number='"&stnumber&"'"rs.opensSQL,myConnectionrs.closemyConnection.Close%>首先建立連接字符串,再通過SEVER對象創(chuàng)建ADO數(shù)據(jù)對象,然后使用ADO對象打開數(shù)據(jù)庫連接。創(chuàng)建Recordset對象和SQL查詢語句,將SQL查詢的結(jié)果賦給用Recordset對象,通過Recordset對象就可以完成對各種數(shù)據(jù)的操作。注意要及時(shí)關(guān)閉對象集和數(shù)據(jù)庫。2.6關(guān)于DOCM組件的安全性數(shù)字簽名技術(shù)是用來保證聲稱制作了因特網(wǎng)上某種軟件的人確實(shí)制作了這個(gè)軟件,并且這個(gè)軟件沒有被篡改。數(shù)字簽名是采用完善的公共和私有密匙算法創(chuàng)建的。私有密匙只能被所有人知道,但公有密匙可以被任何人知道。私有密匙產(chǎn)生簽名并加密之,而相應(yīng)的公共密匙將其解密并驗(yàn)證該簽名。有了這個(gè)身份驗(yàn)證數(shù)字簽名將因特網(wǎng)的匿名情況消除了,并保證了責(zé)任感。當(dāng)數(shù)字簽名應(yīng)用于Active控件時(shí),該控件就認(rèn)為是已經(jīng)數(shù)字簽名了。但數(shù)字簽名的控件并不一定是安全的控件。數(shù)字簽名只驗(yàn)證作者以及它的編碼未被篡改。無論是數(shù)字簽名的控件和沒有數(shù)字簽名的控件,都

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論