時(shí)間:2023-03-23 15:17:44
序論:在您撰寫(xiě)asp技術(shù)論文時(shí),參考他人的優(yōu)秀作品可以開(kāi)闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
關(guān)鍵詞:畢業(yè)論文;檢索;asp技術(shù);ACCESS數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)26-6203-03
Using ASP Technology to Achieve a Simple Thesis Searching System
ZHU Qiang
(Tongcheng Teachers College,Tongcheng 231400,China)
Abstract: This paper introduces how to use ASP technology and ACCESS database technology to develop a simple version of the graduation thesis searching system, From the working principle of the system,data flow diagram, function module, database storage four aspects about the process of system development, Introduces the login module, interface module, a retrieval module, The whole papers show modules four modules.
Key words: graduation thesis; retrieval; ASP technology; ACCESS database
畢業(yè)論文的管理工作受到了各學(xué)校的高度重視,如何對(duì)其進(jìn)行系統(tǒng)的分類、存儲(chǔ)、檢索都已成為學(xué)校的一項(xiàng)重要工作。檢索功能是畢業(yè)論文管理系統(tǒng)的核心功能,可便于讀者快速檢索并下載到所需論文,使得論文資源得到有效利用。本文致力于研究設(shè)計(jì)一個(gè)簡(jiǎn)易版的畢業(yè)論文檢索系統(tǒng),能夠快捷、方便、全面、準(zhǔn)確地實(shí)現(xiàn)論文檢索功能。
1開(kāi)發(fā)技術(shù)及數(shù)據(jù)庫(kù)技術(shù)簡(jiǎn)介
本系統(tǒng)采用ASP技術(shù)進(jìn)行系統(tǒng)開(kāi)發(fā),使用ACCESS數(shù)據(jù)庫(kù)作為后臺(tái)支撐數(shù)據(jù)庫(kù)。
1.1 ASP的基本定義
ASP即Active Server Page的縮寫(xiě),中文可以翻譯為動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè)。它是一種包含了使用VB Script或Jscript腳本程序代碼的網(wǎng)頁(yè)。當(dāng)瀏覽器瀏覽ASP網(wǎng)頁(yè)時(shí),Web服務(wù)器就會(huì)根據(jù)請(qǐng)求生成相應(yīng)的HTML代碼然后再返回給瀏覽器,這樣瀏覽器端看到的就是動(dòng)態(tài)生成的網(wǎng)頁(yè)[1]。ASP是微軟公司開(kāi)發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互。是一種簡(jiǎn)單、方便的編程工具。在了解了VB Script的基本語(yǔ)法后,只需要清楚各個(gè)組件的用途、屬性、方法,就可以輕松編寫(xiě)出自己的ASP系統(tǒng)。
1.2 ASP運(yùn)行基本過(guò)程
ASP文件只能運(yùn)行在服務(wù)器上,不能在瀏覽器上運(yùn)行。Active服務(wù)頁(yè)也可以使用服務(wù)器端的ActiveX部件,這些部件通常是EXE部件,返回的信息在ASP得到解釋。ASP的運(yùn)行過(guò)程可簡(jiǎn)述如下:瀏覽器向Web服務(wù)器請(qǐng)求一個(gè)ASP文件時(shí),ASP腳本開(kāi)始運(yùn)行,Web服務(wù)器從頭至尾運(yùn)行ASP腳本,并且把HTML頁(yè)返回給瀏覽器。如果要通過(guò)ASP訪問(wèn)Web數(shù)據(jù)庫(kù),則Web服務(wù)器接受瀏覽器請(qǐng)求,通過(guò)ODBC或者OLEDB把請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器,再?gòu)臄?shù)據(jù)庫(kù)服務(wù)器接受數(shù)據(jù),把產(chǎn)生的網(wǎng)頁(yè)和數(shù)據(jù)送回到瀏覽器。
1.3 ACCESS數(shù)據(jù)庫(kù)簡(jiǎn)介
Access數(shù)據(jù)庫(kù)是Microsoft Office 2000套裝軟件的數(shù)據(jù)庫(kù)管理系統(tǒng)軟件,是目前比較流行的小型桌面數(shù)據(jù)庫(kù)管理系統(tǒng),適用于小型企業(yè)、學(xué)校、個(gè)人等用戶。
2 SERVER運(yùn)行環(huán)境及系統(tǒng)開(kāi)發(fā)工具
2.1 SERVER運(yùn)行環(huán)境
2.1.1操作系統(tǒng)
WINDOWS2000及以上。
2.1.2 WEBSERVER
IIS5.0。
2.2系統(tǒng)開(kāi)發(fā)工具
考慮本系統(tǒng)為簡(jiǎn)易版的,筆者建議可采用易學(xué)、快捷、方便的Dreamweaver MX作為開(kāi)發(fā)工具。
3系統(tǒng)工作原理
檢索的前提是論文的各項(xiàng)屬性信息已存儲(chǔ)在數(shù)據(jù)庫(kù)中,將畢業(yè)論文原稿存儲(chǔ)在相應(yīng)的文件夾下。論文的屬性可細(xì)分為論文名稱、類型、關(guān)鍵字、作者、作者單位。同時(shí),在畢業(yè)論文的檢索項(xiàng)中也包括了這幾項(xiàng)信息。用戶進(jìn)行檢索時(shí),可有選擇地輸入各種檢索信息,系統(tǒng)根據(jù)所輸入的檢索信息對(duì)數(shù)據(jù)庫(kù)進(jìn)行掃描。當(dāng)它找到與其相匹配的論文時(shí),就將論文及其信息顯示在屏幕上,并支持下載論文原稿。本系統(tǒng)支持簡(jiǎn)單的模糊檢索,即在檢索欄中輸入字詞的一部分就能完成檢索。
4系統(tǒng)的模塊結(jié)構(gòu)圖及數(shù)據(jù)流程圖
4.1系統(tǒng)的模塊結(jié)構(gòu)圖
模塊的結(jié)構(gòu)圖如圖1所示。注冊(cè)后的用戶可通過(guò)自己的用戶名、密碼登錄系統(tǒng)。登錄后就可以訪問(wèn)其他的模塊了。
圖1系統(tǒng)的模塊結(jié)構(gòu)圖
4.2檢索系統(tǒng)的數(shù)據(jù)流程圖
檢索系統(tǒng)的數(shù)據(jù)流程圖如圖2所示。檢索人員輸入檢索信息,檢索信息處理程序接受檢索信息,然后訪問(wèn)數(shù)據(jù)庫(kù),得到檢索結(jié)果。檢索結(jié)果經(jīng)屏幕處理程序處理后,顯示在屏幕上。
5系統(tǒng)主要功能模塊介紹
5.1用戶登錄模塊
用戶登錄模塊是用戶進(jìn)入系統(tǒng)的驗(yàn)證模塊,只有通過(guò)身份驗(yàn)證的用戶才能進(jìn)行論文檢索和其他操作。用戶使用用戶名和密碼登錄系統(tǒng),此模塊訪問(wèn)數(shù)據(jù)庫(kù),核對(duì)用戶名和密碼是否正確。如果正確,則允許用戶進(jìn)入系統(tǒng)進(jìn)行論文檢索,反之,則要求用戶重新登錄或注冊(cè)。
5.2用戶注冊(cè)模塊
用戶注冊(cè)模塊給新用戶提供注冊(cè)功能。當(dāng)用戶第一次登錄系統(tǒng)或忘記密碼時(shí)就可以使用注冊(cè)功能。在這個(gè)模塊里,用戶填寫(xiě)用戶名、密碼、email地址、姓名、性別等信息,實(shí)現(xiàn)注冊(cè)。當(dāng)然,信息填寫(xiě)時(shí)有些限制和約定,如用戶名長(zhǎng)度、密碼長(zhǎng)度、郵箱格式等。如果用戶填寫(xiě)的信息不合要求,系統(tǒng)就提醒用戶重新注冊(cè)。如果所填的信息合法,系統(tǒng)就會(huì)同意用戶注冊(cè),并將各信息存入數(shù)據(jù)庫(kù)。這樣,用戶就得到了自己的用戶名和密碼,可以順利登錄系統(tǒng)了。
5.3檢索界面模塊
通過(guò)身份驗(yàn)證的用戶即可訪問(wèn)檢索界面模塊,該模塊是用戶進(jìn)行畢業(yè)論文檢索的界面。論文檢索欄目是該模塊的核心部分,它給用戶提供了五個(gè)檢索項(xiàng),分別為名稱、關(guān)鍵字、作者、作者單位、類型。這五個(gè)檢索項(xiàng)也就是數(shù)據(jù)庫(kù)中畢業(yè)論文的五個(gè)屬性。用戶可以根據(jù)這五個(gè)檢索項(xiàng)或選擇其中任意個(gè)檢索項(xiàng)檢索畢業(yè)論文。
5.4論文檢索模塊
該模塊是系統(tǒng)的核心模塊。它實(shí)現(xiàn)的功能就是論文檢索并顯示,可通過(guò)輸入關(guān)鍵字實(shí)現(xiàn)檢索論文的功能。該模塊的詳細(xì)工作流程如下:
5.4.1接受論文檢索界面中輸入的論文檢索信息
在論文檢索界面中,檢索欄中用于輸入各檢索信息。這些檢索信息通過(guò)表單中的Post方式傳遞給論文檢索模塊。論文檢索模塊中通過(guò)Request.Form函數(shù)接受表單中的檢索信息。
5.4.2與數(shù)據(jù)庫(kù)建立連接
檢索畢業(yè)論文必須訪問(wèn)數(shù)據(jù)庫(kù),訪問(wèn)之前就需要與數(shù)據(jù)庫(kù)建立連接。本系統(tǒng)使用CreateObject函數(shù)和Open方法就來(lái)完成它們之間的連接。
5.4.3根據(jù)檢索信息,對(duì)數(shù)據(jù)庫(kù)中的畢業(yè)論文信息進(jìn)行掃描核對(duì),找出用戶要檢索的論文
本系統(tǒng)采用最常用的SQL查詢語(yǔ)句(select···from···where)來(lái)選取符合條件的數(shù)據(jù)庫(kù)段。在這里,系統(tǒng)使用了like %···%來(lái)支持模糊搜索。
5.4.4將檢索到的論文顯示在屏幕上
為了能夠顯示所有符合檢索條件的畢業(yè)論文,系統(tǒng)使用了do while循環(huán)語(yǔ)句來(lái)循環(huán)顯示。系統(tǒng)通過(guò)rs語(yǔ)句來(lái)接受數(shù)據(jù)庫(kù)中的論文信息,然后使用response.Write函數(shù)來(lái)顯示各論文信息。
5.5通顯論文模塊
通顯論文模塊實(shí)現(xiàn)的功能是將數(shù)據(jù)庫(kù)中所有的論文全部顯示出來(lái)。
6系統(tǒng)的數(shù)據(jù)庫(kù)存儲(chǔ)情況
6.1用戶信息表
用戶信息表是存儲(chǔ)用戶基本信息的數(shù)據(jù)庫(kù)表,它包括六個(gè)屬性列,分別是用戶名、用戶密碼、用戶email地址、用戶的真實(shí)姓名、用戶性別、用戶生日。用戶登錄系統(tǒng)或注冊(cè)時(shí)都必須訪問(wèn)該數(shù)據(jù)庫(kù)表。
6.2畢業(yè)論文信息表
畢業(yè)論文信息表是存儲(chǔ)畢業(yè)論文相關(guān)信息的數(shù)據(jù)庫(kù)表,它包括五個(gè)屬性列,分別是論文所在文件夾、畢業(yè)論文題目、論文類型、論文關(guān)鍵字、論文作者、作者的所在單位。此表是該系統(tǒng)的核心數(shù)據(jù)庫(kù)表,它給系統(tǒng)的檢索工作提供了后臺(tái)支持。
7結(jié)束語(yǔ)
筆者在獨(dú)立的環(huán)境下研究檢索系統(tǒng)的開(kāi)發(fā),如何將該系統(tǒng)融合到畢業(yè)論文管理系統(tǒng)的大環(huán)境下還有待于進(jìn)一步研究。該系統(tǒng)為簡(jiǎn)易版,不支持對(duì)論文正文信息的檢索,功能相對(duì)比較簡(jiǎn)單。
目前在WINDOWS環(huán)境下有多種訪問(wèn)WEB數(shù)據(jù)庫(kù)的技術(shù),主要有:
1.公共網(wǎng)關(guān)接口CGI(CommonGatewayInterface)
CGI是較早實(shí)現(xiàn)的技術(shù)。適用于多種服務(wù)器平臺(tái),如UNIX、WINDOWS等,但CGI的開(kāi)發(fā)成本高、維護(hù)困難、功能有限、不具備事務(wù)處理功能、占用服務(wù)器資源較多。
2.INTERNET數(shù)據(jù)庫(kù)連接器IDC(InternetDatabaseConnector)
IDC集成在ISAPI(InternetServerAPI)中,充分利用了DLL技術(shù),易擴(kuò)充,但編程較CGI更為復(fù)雜,只適用于小型數(shù)據(jù)庫(kù)系統(tǒng)。
3.先進(jìn)數(shù)據(jù)庫(kù)連接器ADC(AdvanceDatabaseConnector)
ADC提供了ActiveXControl來(lái)訪問(wèn)數(shù)據(jù)庫(kù),它的主要特點(diǎn)是數(shù)據(jù)查詢由用戶端瀏覽器執(zhí)行,因而需將服務(wù)器端數(shù)據(jù)庫(kù)中的部分記錄下載到用戶端,系統(tǒng)開(kāi)銷較大、響應(yīng)慢,只適用于特別頻繁的數(shù)據(jù)庫(kù)查詢操作。
4.JAVA/JDBC語(yǔ)言編程
JAVA語(yǔ)言是一種面向?qū)ο?、易移植、多線程控制的語(yǔ)言,可通過(guò)JDBC去連接數(shù)據(jù)庫(kù)。用JAVA/JDBC編寫(xiě)的軟件可移植性強(qiáng),適用于多種操作系統(tǒng),但其執(zhí)行效率和執(zhí)行速度還不理想,目前無(wú)法建立高效、高速的應(yīng)用。
5.動(dòng)態(tài)服務(wù)器頁(yè)面ASP(ActiveServerPage)
ASP是微軟公司最新推出的WEB應(yīng)用開(kāi)發(fā)技術(shù),著重于處理動(dòng)態(tài)網(wǎng)頁(yè)和WEB數(shù)據(jù)庫(kù)的開(kāi)發(fā),編程靈活、簡(jiǎn)潔,具有較高的性能,是目前訪問(wèn)WEB數(shù)據(jù)庫(kù)的最佳選擇。
二.ASP簡(jiǎn)介
1.ASP訪問(wèn)數(shù)據(jù)庫(kù)的原理
ASP是服務(wù)器端的腳本執(zhí)行環(huán)境,可用來(lái)產(chǎn)生和執(zhí)行動(dòng)態(tài)的高性能的WEB服務(wù)器程序。
當(dāng)用戶使用瀏覽器請(qǐng)求ASP主頁(yè)時(shí),WEB服務(wù)器響應(yīng),調(diào)用ASP引擎來(lái)執(zhí)行ASP文件,并解釋其中的腳本語(yǔ)言(JScript或VBScript),通過(guò)ODBC連接數(shù)據(jù)庫(kù),由數(shù)據(jù)庫(kù)訪問(wèn)組件ADO(ActiveXDataObjects)完成數(shù)據(jù)庫(kù)操作,最后ASP生成包含有數(shù)據(jù)查詢結(jié)果的HTML主頁(yè)返回用戶端顯示。
由于ASP在服務(wù)器端運(yùn)行,運(yùn)行結(jié)果以HTML主頁(yè)形式返回用戶瀏覽器,因而ASP源程序不會(huì)泄密,增加了系統(tǒng)的安全保密性。此外,ASP是面向?qū)ο蟮哪_本環(huán)境,用戶可自行增加ActiveX組件來(lái)擴(kuò)充其功能,拓展應(yīng)用范圍。
2.ASP頁(yè)面的結(jié)構(gòu):
ASP的程序代碼簡(jiǎn)單、通用,文件名由.asp結(jié)尾,ASP文件通常由四部分構(gòu)成:
1)標(biāo)準(zhǔn)的HTML標(biāo)記:所有的HTML標(biāo)記均可使用。
2)ASP語(yǔ)法命令:位于<%%>標(biāo)簽內(nèi)的ASP代碼。
3)服務(wù)器端的include語(yǔ)句:可用#include語(yǔ)句調(diào)入其它ASP代碼,增強(qiáng)了編程的靈活性。
4)腳本語(yǔ)言:ASP自帶JScript和VBScript兩種腳本語(yǔ)言,增加了ASP的編程功能,用戶也可安裝其它腳本語(yǔ)言,如Perl、Rexx等。
3.ASP的運(yùn)行環(huán)境
目前ASP可運(yùn)行在三種環(huán)境下。
1)WINDOWSNTserver4.0運(yùn)行IIS3.0(InternetInformationServer)以上。
2)WINDOWSNTworkstation4.0運(yùn)行PeerWebServer3.0以上。
3)WINDOWS95/98運(yùn)行PWS(PersonalWebServer)。
其中以NTserver上的IIS功能最強(qiáng),提供了對(duì)ASP的全面支持,是創(chuàng)建高速、穩(wěn)定的ASP主頁(yè)的最佳選擇。
4.ASP的內(nèi)建對(duì)象
ASP提供了六個(gè)內(nèi)建對(duì)象,供用戶直接調(diào)用:
1)Application對(duì)象:負(fù)責(zé)管理所有會(huì)話信息,可用來(lái)在指定的應(yīng)用程序的所有用戶之間共享信息。
2)Session對(duì)象:存貯特定用戶的會(huì)話信息,只被該用戶訪問(wèn),當(dāng)用戶在不同WEB頁(yè)面跳轉(zhuǎn)時(shí),Session中的變量在用戶整個(gè)會(huì)話過(guò)程中一直保存。Session對(duì)象需cookie支持。
3)Request對(duì)象:從用戶端取得信息傳遞給服務(wù)器,是ASP讀取用戶輸入的主要方法。
4)Response對(duì)象:服務(wù)器將輸出內(nèi)容發(fā)送到用戶端。
5)Server對(duì)象:提供對(duì)服務(wù)器有關(guān)方法和屬性的訪問(wèn)。
6)ObjectContext對(duì)象:IIS4.0新增的對(duì)象,用來(lái)進(jìn)行事務(wù)處理。此項(xiàng)功能需得到MTS(MicrosoftTranscationServer)管理的支持。
5.ASP的主要內(nèi)置組件:
1)AdRotator組件:用來(lái)按指定計(jì)劃在同一頁(yè)上自動(dòng)輪換顯示廣告,用于WWW上日益重要的廣告服務(wù)。
2)BrowserCapabilities組件:確定訪問(wèn)WEB站點(diǎn)的用戶瀏覽器的功能數(shù)據(jù),包括類型、性能、版本等。
3)DatabaseAccess組件:提供ADO(ActiveXDataObjects)來(lái)訪問(wèn)支持ODBC的數(shù)據(jù)庫(kù)。
4)FileAccess組件:提供對(duì)服務(wù)器端文件的讀寫(xiě)功能。
5)ContentLinking組件:生成WEB頁(yè)內(nèi)容列表,并將各頁(yè)順序連接,用于制作導(dǎo)航條。
此外,還可安裝Myinfo、Counters、ContentRotator、PageCount等組件,用戶也可自行編制Actiive組件,以提高系統(tǒng)的實(shí)用性。
6.DatabaseAccess組件ADO
WWW上很重要的應(yīng)用是訪問(wèn)WEB數(shù)據(jù)庫(kù),用ASP訪問(wèn)WEB數(shù)據(jù)庫(kù)時(shí),必須使用ADO組件,ADO是ASP內(nèi)置的ActiveX服務(wù)器組件(ActiveXServerComponent),通過(guò)在WEB服務(wù)器上設(shè)置ODBC和OLEDB可連接多種數(shù)據(jù)庫(kù):如SYBASE、ORACLE、INFORMIX、SQLSERVER、ACCESS、VFP等,是對(duì)目前微軟所支持的數(shù)據(jù)庫(kù)進(jìn)行操作的最有效和最簡(jiǎn)單直接的方法。
ADO組件主要提供了以下七個(gè)對(duì)象和四個(gè)集合來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。
1)Connection對(duì)象:建立與后臺(tái)數(shù)據(jù)庫(kù)的連接。
2)Command對(duì)象:執(zhí)行SQL指令,訪問(wèn)數(shù)據(jù)庫(kù)。
3)Parameters對(duì)象和Parameters集合:為Command對(duì)象提供數(shù)據(jù)和參數(shù)。
4)RecordSet對(duì)象:存放訪問(wèn)數(shù)據(jù)庫(kù)后的數(shù)據(jù)信息,是最經(jīng)常使用的對(duì)象。
5)Field對(duì)象和Field集合:提供對(duì)RecordSet中當(dāng)前記錄的各個(gè)字段進(jìn)行訪問(wèn)的功能。
6)Property對(duì)象和Properties集合:提供有關(guān)信息,供Connection、Command、RecordSet、Field對(duì)象使用。
7)Error對(duì)象和Errors集合:提供訪問(wèn)數(shù)據(jù)庫(kù)時(shí)的錯(cuò)誤信息。
三.ASP訪問(wèn)數(shù)據(jù)庫(kù)步驟
在ASP中,使用ADO組件訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),可通過(guò)以下步驟進(jìn)行:
1.定義數(shù)據(jù)源
在WEB服務(wù)器上打開(kāi)“控制面板”,選中“ODBC”,在“系統(tǒng)DSN”下選“添加”,選定你希望的數(shù)據(jù)庫(kù)種類、名稱、位置等。本文定義“SQLSERVER”,數(shù)據(jù)源為“HT”,數(shù)據(jù)庫(kù)名稱為“HTDATA”,腳本語(yǔ)言采用Jscript。
2,使用ADO組件查詢WEB數(shù)據(jù)庫(kù)
1)調(diào)用Server.CreateObject方法取得“ADODB.Connection”的實(shí)例,再使用Open方法打開(kāi)數(shù)據(jù)庫(kù):
conn=Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
2)指定要執(zhí)行的SQL命令
連接數(shù)據(jù)庫(kù)后,可對(duì)數(shù)據(jù)庫(kù)操作,如查詢,修改,刪除等,這些都是通過(guò)SQL指令來(lái)完成的,如要在數(shù)據(jù)表signaltab中查詢代碼中含有“X”的記錄
sqlStr=“select*fromsignaltabwherecodelike‘%X%’”
rs=conn.Execute(sqlStr)
3)使用RecordSet屬性和方法,并顯示結(jié)果
為了更精確地跟蹤數(shù)據(jù),要用RecordSet組件創(chuàng)建包含數(shù)據(jù)的游標(biāo),游標(biāo)就是儲(chǔ)存在內(nèi)存中的數(shù)據(jù)。
rs=Server.CreateObject(“ADODB.RecordSet”)
rs.Open(sqlStr,conn,1,A)
注:A=1讀取
A=3新增、修改、刪除
在RecordSet組件中,常用的屬性和方法有:
rs.Fields.Count:RecordSet對(duì)象的字段數(shù)。
rs(i).Name:第i個(gè)字段的名稱,i為0至rs.Fields.Count-1
rs(i):第i個(gè)字段的數(shù)據(jù),i為0至rs.Fields.Count-1
rs("字段名"):指定字段的數(shù)據(jù)。
rs.Record.Count:游標(biāo)中的數(shù)據(jù)記錄總數(shù)。
rs.EOF:是否最后一條記錄。
rs.MoveFirst:指向第一條記錄。
rs.MoveLast:指向最后一條記錄。
rs.MovePrev:指向上一條記錄。
rs.MoveNext:指向下一條記錄。
rs.GetRows:將數(shù)據(jù)放入數(shù)組中。
rs.Properties.Count:ADO的ResultSet或Connection的屬性個(gè)數(shù)。
rs.Properties(item).Name:ADO的ResultSet或Connection的名稱。
rs.Properties:ADO的ResultSet或Connection的值。
rs.close():關(guān)閉連接。
4)關(guān)閉數(shù)據(jù)庫(kù)
conn.close()
四.查詢WEB數(shù)據(jù)庫(kù)舉例
下面這段示例程序是訪問(wèn)SQLSERVER數(shù)據(jù)庫(kù)的signaltab表,表中有三個(gè)字段:code(代碼字段,字符型,3位),class(分類字段,字符型,10位),memo(備注字段,字符型,20位)。程序中數(shù)據(jù)源DSN:HT、用戶名:client、口令:passwd。
屏幕輸入頁(yè)面input.asp
<%@language=javascript%>
ASP(ActiveServerPages)是Microsoft于1996年11月推出的Web應(yīng)用程序開(kāi)發(fā)技術(shù)。微軟聲稱設(shè)計(jì)出了一個(gè)完美的Active平臺(tái),在微軟的文件中把ASP描述為:"一個(gè)服務(wù)器的腳本環(huán)境,在這里可以生成和運(yùn)行動(dòng)態(tài)的、交互的、高性能的Web服務(wù)器應(yīng)用程序"。從這段描述我們可以看出,ASP既不是一種語(yǔ)言,也不是一種開(kāi)發(fā)工具,而是一種技術(shù)框架,其主要功能是為生成動(dòng)態(tài)的交互式的Web服務(wù)器應(yīng)用程序提供一種功能強(qiáng)大的方法或技術(shù)。ASP的主要特性是能夠把HTML、腳本、組件等有機(jī)地組合在一起,形成一個(gè)能夠在服務(wù)器上運(yùn)行的應(yīng)用程序,并把按用戶要求專門制作的標(biāo)準(zhǔn)HTML頁(yè)面送給客戶端瀏覽器。ASP屬于ActiveX技術(shù)中的服務(wù)器端技術(shù)。與我們通常在客戶端實(shí)現(xiàn)動(dòng)態(tài)主頁(yè)的技術(shù)如Javaapplet、ActiveXControl、VBScript、javascript等所不同的是,ASP中的命令腳本語(yǔ)句都是在服務(wù)器中解釋執(zhí)行,執(zhí)行后的結(jié)果產(chǎn)生HTML頁(yè)面并送到瀏覽器。由于ASP是在服務(wù)器端解釋執(zhí)行,開(kāi)發(fā)者可以不必考慮瀏覽器是否支持ASP。同時(shí),由于只是標(biāo)準(zhǔn)的HTML頁(yè)面送到瀏覽器,在瀏覽器上看不到ASP程序,因此可以防止程序被竊取,保護(hù)了開(kāi)發(fā)者的利益。
二、為什么用ASP
隨著Internet的發(fā)展,靜態(tài)Web站點(diǎn)的開(kāi)發(fā)與維護(hù)變得越來(lái)越困難,一方面信息的不斷增加和變化,使站點(diǎn)維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁(yè),特別是基于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的Web站點(diǎn)更是如此;另一方面靜態(tài)網(wǎng)頁(yè)由于不能與瀏覽者進(jìn)行有效交互,使人們感到越來(lái)越乏味,而不愿意再一次地進(jìn)入同一站點(diǎn)。所以開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)或動(dòng)態(tài)內(nèi)容成了越來(lái)越多的站點(diǎn)所追求目標(biāo)。所謂動(dòng)態(tài)內(nèi)容是由每一個(gè)用戶按照自己的需求發(fā)出請(qǐng)求而特殊制作的Web網(wǎng)頁(yè),例如訪問(wèn)某一網(wǎng)站的新用戶得到的歡迎詞與重新返回到該站點(diǎn)的用戶得到的歡迎詞是不同的。
三、ASP的特點(diǎn)
ASP具有學(xué)習(xí)快、設(shè)計(jì)快的特點(diǎn),不需花許多時(shí)間即可學(xué)會(huì)和快速設(shè)計(jì)出WEB應(yīng)用程序。
ASP的源程序碼在服務(wù)器端執(zhí)行,代碼保密性好。
集成與HTML中,無(wú)需編譯鏈接可直接執(zhí)行;使用文本編輯器如記事本,即可設(shè)計(jì)。
與瀏覽器無(wú)關(guān),用戶端只要使用常規(guī)可執(zhí)行HTML代碼的瀏覽器。
ASP是面向?qū)ο蟮模∣bject_Oriented)
四、ASP與其它相關(guān)技術(shù)的比較
隨著Internet的發(fā)展,靜態(tài)Web站點(diǎn)的開(kāi)發(fā)與維護(hù)變得越來(lái)越困難,一方面信息的不斷增加和變化使站點(diǎn)維護(hù)人員不得不經(jīng)常修改他們的網(wǎng)頁(yè),特別是基于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的Web站點(diǎn)更是如此;另一方面靜態(tài)網(wǎng)頁(yè)由于不能與瀏覽者進(jìn)行有效交互,使人們感到越來(lái)越乏味,而不愿意再一次地站點(diǎn)。所以開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)或動(dòng)態(tài)內(nèi)容成了越來(lái)越多的站點(diǎn)所追求目標(biāo)。
所謂動(dòng)態(tài)內(nèi)容是由每一個(gè)用戶按照自己的需求發(fā)出請(qǐng)求而特殊制作的Web網(wǎng)頁(yè),例如訪問(wèn)某一網(wǎng)站的新用戶得到的歡迎詞與重新返回到該站點(diǎn)的用戶得到的歡迎詞是不同的。有許多技術(shù)可以實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容,目前常用的主要有兩種:CGI(公共網(wǎng)關(guān)接口)和ISAPI。
CGI是開(kāi)發(fā)較早的技術(shù),它可以很好地實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容,但它有兩個(gè)主要缺點(diǎn)。一是對(duì)每一個(gè)請(qǐng)求(請(qǐng)求一個(gè)頁(yè)面)CGI都要產(chǎn)生一個(gè)新的進(jìn)程,同一時(shí)刻發(fā)出的請(qǐng)求越多,服務(wù)器產(chǎn)生的進(jìn)程也就越多。我們知道,產(chǎn)生一個(gè)進(jìn)程是非常耗時(shí)的,而且需要用到大量的服務(wù)器RAM,所以其響應(yīng)時(shí)間相對(duì)較長(zhǎng),特別是當(dāng)進(jìn)程多到某一數(shù)量后,服務(wù)器性能將顯著下降。另一方面,CGI的主要編程語(yǔ)言是C語(yǔ)言,對(duì)大多數(shù)網(wǎng)頁(yè)開(kāi)發(fā)人員來(lái)說(shuō),要掌握和精通這些編程語(yǔ)言需要花很長(zhǎng)的時(shí)間。
ISAPI針對(duì)CGI第一個(gè)缺點(diǎn)進(jìn)行了改進(jìn),利用DLL(動(dòng)態(tài)鏈接庫(kù))技術(shù),以線程代替進(jìn)程,提高了性能和速度,但要考慮線程的同步問(wèn)題,而且開(kāi)發(fā)步驟煩瑣。
ASP除了提供CGI的所有功能外,還具有許多顯著的優(yōu)點(diǎn)。ASP運(yùn)行在Web服務(wù)器的同一個(gè)進(jìn)程中,可以更快、更有效地處理客戶請(qǐng)求;ASP提供更方便、更簡(jiǎn)單的訪問(wèn)數(shù)據(jù)庫(kù)的方法,使開(kāi)
發(fā)基于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的Web應(yīng)用程序更加容易;ASP支持幾乎所有的腳本語(yǔ)言,如VBScript、Jscript和Perl,其主要腳本語(yǔ)言VBScript是基于眾多編程人員非常熟悉VisualBasic語(yǔ)言,所以ASP更容易被人們所接受。
五、ASP的工作過(guò)程
ASP技術(shù)直接建立于微軟的Web服務(wù)器之中,所有微軟的Web服務(wù)器都支持ASP,如WindowsNTInternetInformationServer(IIS),WindowsNTWorkstation以及Windows95PersonalWebServer。你不要擔(dān)心瀏覽器是否能執(zhí)行你的ASP程序,你的WEB服務(wù)器會(huì)自動(dòng)把ASP程序碼,解釋為HTML格式的主頁(yè)內(nèi)容,再送到用戶端的瀏覽器顯示出來(lái)。如圖1所。
六、用ASP實(shí)現(xiàn)用戶登陸WEB數(shù)據(jù)庫(kù)
在ASP中訪問(wèn)數(shù)據(jù)庫(kù),可采用ASP內(nèi)置ActiveX服務(wù)器組件棗數(shù)據(jù)庫(kù)訪問(wèn)組件,使用ActiveXDataObject(ActiveX數(shù)據(jù)對(duì)象,簡(jiǎn)稱ADO)的技術(shù)。ADO通過(guò)在WEB服務(wù)器上設(shè)定ODBC,來(lái)建立與多種數(shù)據(jù)庫(kù)的連接,其中包括SQLServer、Oracle、Foxpro等各種大、中、小型數(shù)據(jù)庫(kù)。下面我們舉例說(shuō)明用ASP實(shí)現(xiàn)用戶登陸WEB數(shù)據(jù)庫(kù)的過(guò)程。
1.用戶在客戶機(jī)瀏覽器上輸入一個(gè)URL地址并回車,請(qǐng)求一個(gè)頁(yè)面。
例如yin/User_Login/default.htm。
2.服務(wù)器接受用戶請(qǐng)求,調(diào)出相應(yīng)頁(yè)面(假設(shè)該頁(yè)面含有一個(gè)表單)。
例如default.htm,其代碼如下:
<html>
<head>
<metaname="GENERATOR"content="MicrosoftFrontPage3.0">
<title>系統(tǒng)登錄</title>
</head>
<h2align="center">系統(tǒng)登錄</h2><hr>
<formmethod="post"action=”user_login.asp”name=”form”>
<center>
請(qǐng)輸入用戶名:<inputname="username"type="text">
請(qǐng)輸入口令:<inputtype="password"name="password"size="14">
<br>
<inputtype="submit"value="登錄"name="submit">
<inputtype="reset"value="復(fù)位"name="reset">
</center></form></body>
</html>
當(dāng)瀏覽器端填入要查詢的用戶名和口令并按下submit按鈕時(shí),它將用戶名以u(píng)sername,口令以password的變量形式送到user_login.asp中。
[關(guān)鍵詞]網(wǎng)站立項(xiàng)系統(tǒng)分析系統(tǒng)設(shè)計(jì)網(wǎng)站測(cè)試網(wǎng)站維護(hù)
一、引言
網(wǎng)絡(luò)技術(shù)的不斷成熟和發(fā)展,促進(jìn)了基于網(wǎng)絡(luò)技術(shù)的校園網(wǎng)站的發(fā)展。校園網(wǎng)站開(kāi)發(fā)是一項(xiàng)很復(fù)雜的工作,我校根據(jù)學(xué)校實(shí)際,確定網(wǎng)站的定位和需求,從軟件工程的角度出發(fā),針對(duì)學(xué)校網(wǎng)站建設(shè)的特點(diǎn)和重點(diǎn),整理出一套適合學(xué)校網(wǎng)站建設(shè)管理和控制的方法,以此來(lái)保證網(wǎng)站建設(shè)的高效率、高質(zhì)量。
二、網(wǎng)站立項(xiàng)
校園網(wǎng)站建設(shè),要成立一個(gè)專門的項(xiàng)目小組:學(xué)校領(lǐng)導(dǎo)、學(xué)校網(wǎng)絡(luò)管理員、美術(shù)教師、各科室人員、計(jì)算機(jī)專業(yè)教師等8人~9人以及“計(jì)算機(jī)學(xué)會(huì)”社團(tuán)學(xué)生代表5人組成,由網(wǎng)絡(luò)管理員作為項(xiàng)目負(fù)責(zé)人負(fù)責(zé)對(duì)該項(xiàng)目的統(tǒng)一調(diào)度和安排。
三、網(wǎng)站設(shè)計(jì)開(kāi)發(fā)過(guò)程
(一)系統(tǒng)分析階段
建立一個(gè)網(wǎng)站,首要明確設(shè)計(jì)思想,編寫(xiě)一份詳盡的需求說(shuō)明書(shū),這是網(wǎng)站建設(shè)成功的關(guān)鍵所在。
我校根據(jù)各方面的反饋意見(jiàn)進(jìn)行認(rèn)真的分析,對(duì)網(wǎng)站設(shè)計(jì)進(jìn)行準(zhǔn)確定位:學(xué)校網(wǎng)站規(guī)劃要著重考慮教師和學(xué)生的需求;內(nèi)容上要以學(xué)校整體宣傳為主,同時(shí)也要為訪問(wèn)者提供其所關(guān)心的內(nèi)容;內(nèi)容要求及時(shí)更新;版面要求新穎有特色,同時(shí)還要增強(qiáng)網(wǎng)站的方便性、整體性和安全性。
(二)系統(tǒng)設(shè)計(jì)階段
1.網(wǎng)站總體設(shè)計(jì)
網(wǎng)站設(shè)計(jì)有了一份詳盡的需求說(shuō)明書(shū)后,就可以根據(jù)需求說(shuō)明書(shū),對(duì)網(wǎng)站進(jìn)行總體規(guī)劃,給出一份網(wǎng)站總體建設(shè)方案??傮w規(guī)劃具體要明確網(wǎng)站需要實(shí)現(xiàn)的目的和目標(biāo);網(wǎng)站形象說(shuō)明;網(wǎng)站的欄目版塊和結(jié)構(gòu);網(wǎng)站內(nèi)容的安排,相互鏈接關(guān)系;使用軟件、硬件和技術(shù)分析說(shuō)明;開(kāi)發(fā)時(shí)間進(jìn)度表;維護(hù)方案;制作費(fèi)用;需要遵循的規(guī)則和標(biāo)準(zhǔn)有哪些等。
2.網(wǎng)站詳細(xì)設(shè)計(jì)
總體設(shè)計(jì)階段以比較抽象概括的方式提出解決問(wèn)題的辦法,具體設(shè)計(jì)階段的任務(wù)就是把解決方法具體化、明確化,設(shè)計(jì)中應(yīng)注意的問(wèn)題有:
(1)網(wǎng)站設(shè)計(jì)的風(fēng)格定位。網(wǎng)站要有自己的特色,設(shè)計(jì)中不要太多地考慮技術(shù)問(wèn)題,而應(yīng)該更多地考慮不斷增加網(wǎng)站的內(nèi)涵,要在能夠動(dòng)態(tài)反映學(xué)校情況的內(nèi)容上下功夫。
(2)網(wǎng)站設(shè)計(jì)的整體性。網(wǎng)站設(shè)計(jì),注意考慮網(wǎng)站的易維護(hù)性,技術(shù)上多采用CSS、模板等,對(duì)網(wǎng)站的整體風(fēng)格進(jìn)行定位,方便日常維護(hù)與更新。
(3)關(guān)鍵技術(shù)的研究及應(yīng)用。網(wǎng)站設(shè)計(jì)中,怎樣防黑,保護(hù)網(wǎng)站內(nèi)容不被別人竊取、修改是網(wǎng)站建設(shè)必須考慮的技術(shù)性問(wèn)題。本人主要從IIS、ASP和Access三方面來(lái)總結(jié)網(wǎng)站系統(tǒng)面臨的常見(jiàn)的安全威脅及解決方法。
①集中管理ASP的目錄,設(shè)置訪問(wèn)權(quán)限。在設(shè)置WEB站點(diǎn)時(shí),將HTMI文件同ASP文件分開(kāi)放置在不同的目錄下,然后將HTML子目錄設(shè)置為“讀”;將ASP子目錄設(shè)置為“執(zhí)行”。
②對(duì)IIS中的特殊Web目錄禁止匿名訪問(wèn)并限制IP地址。對(duì)IIS中的sample、scripts、iisadmin等web目錄,通過(guò)各目錄屬性對(duì)話框中的“目錄安全性”標(biāo)簽設(shè)置為禁止匿名訪問(wèn)并限制IP地址,并用NTFS的特性設(shè)置詳細(xì)的安全權(quán)限,除了Administrator,其它帳號(hào)都應(yīng)該設(shè)置為只讀權(quán)限。
③防止Access數(shù)據(jù)庫(kù)被下載。有效地防止數(shù)據(jù)庫(kù)被下載的方法有:非常規(guī)命名法:為Access數(shù)據(jù)庫(kù)文件取一個(gè)復(fù)雜的非常規(guī)名字,并把它放在幾層目錄下;使用ODBC數(shù)據(jù)源:在ASP程序設(shè)計(jì)中,如果有條件,應(yīng)盡量使用ODBC數(shù)據(jù)源,不要把數(shù)據(jù)庫(kù)名寫(xiě)在程序中。
④進(jìn)行數(shù)據(jù)備份。運(yùn)用FSO組件對(duì)Access數(shù)據(jù)庫(kù)進(jìn)行備份,以便在數(shù)據(jù)被破壞時(shí)進(jìn)行快速恢復(fù),盡可能多地挽回?fù)p失。
⑤對(duì)ASP頁(yè)面進(jìn)行加密。為了有效地防止ASP源代碼泄露,可以對(duì)ASP頁(yè)面進(jìn)行加密。加密的方法一般有兩種:一是使用組件技術(shù)將編程邏輯封裝入DLL之中;二是使用微軟的ScriptEncoder對(duì)ASP頁(yè)面進(jìn)行加密。
⑥后臺(tái)用戶注冊(cè)驗(yàn)證。為了防止后臺(tái)用戶未經(jīng)注冊(cè)的用戶繞過(guò)注冊(cè)界面直接進(jìn)入應(yīng)用系統(tǒng),我們采用Session對(duì)象進(jìn)行注冊(cè)驗(yàn)證:<%UserID=Request(“UserID”)
‘讀取使用者所輸入的用戶名和密碼
Password=Request(“Password”)
IfUserID<>“hrmis”O(jiān)rPassword<>“password”Then
Response.Write“用戶名錯(cuò)誤!”
Response.End
EndIf
‘將Session對(duì)象設(shè)置為通過(guò)驗(yàn)證狀態(tài)
Session(“Passed”)=True%>
進(jìn)入應(yīng)用程序后,首先進(jìn)行驗(yàn)證:
<%‘如果未通過(guò)驗(yàn)證,返回Login.asp頁(yè)面登陸狀態(tài)
IfNotSession(“Passed”)ThenResponse.Redirect“Login.asp”
EndIf%>
⑦讓學(xué)生參與網(wǎng)站設(shè)計(jì)。優(yōu)秀學(xué)生參與設(shè)計(jì),無(wú)論對(duì)豐富網(wǎng)站內(nèi)容、提高學(xué)校網(wǎng)站的點(diǎn)擊率還是擴(kuò)大學(xué)校網(wǎng)站的影響都能起到相當(dāng)大的作用。
(三)網(wǎng)站測(cè)試
有了網(wǎng)站的具體設(shè)計(jì)方案,各網(wǎng)站制作人員就可以全力進(jìn)入開(kāi)發(fā)階段。盡量采用邊制作邊調(diào)試,即采用本機(jī)調(diào)試和上傳服務(wù)器調(diào)試的方法,觀察速度、兼容性、交互性等。
投入運(yùn)行之前,需對(duì)網(wǎng)站需求分析、系統(tǒng)分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼最終復(fù)審,還要對(duì)系統(tǒng)進(jìn)行各種綜合測(cè)試。測(cè)試結(jié)束后,制作有關(guān)文檔存檔,并寫(xiě)出一個(gè)校園網(wǎng)站使用說(shuō)明文檔。至此,網(wǎng)站項(xiàng)目建設(shè)完畢。
(四)網(wǎng)站的管理和更新
做好網(wǎng)站的管理與更新,是一個(gè)網(wǎng)站樹(shù)立形象的根本、生存的根本。我校專門成立了安全組織機(jī)構(gòu),制定出適合我校的《校園網(wǎng)站管理辦法》、《校園網(wǎng)站信息審核制度》、《校園網(wǎng)站異常情況案件報(bào)告制度》等規(guī)定,建立健全了各項(xiàng)安全管理制度。
四、結(jié)論
我校網(wǎng)站已經(jīng)試運(yùn)行一段時(shí)間,為學(xué)校的教師、學(xué)生和教學(xué)管理人員提供教學(xué)管理、教學(xué)研究、日常辦公、信息交流等應(yīng)用服務(wù)的平臺(tái),較好地滿足了設(shè)計(jì)最初的需求。在整個(gè)設(shè)計(jì)網(wǎng)站的過(guò)程中,重視學(xué)校網(wǎng)站的“規(guī)劃—設(shè)計(jì)—管理—發(fā)展”的規(guī)律,實(shí)現(xiàn)可持續(xù)性發(fā)展。
參考文獻(xiàn):
[1]田原.高職院校校園網(wǎng)站主頁(yè)設(shè)計(jì)探討[J].十堰職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,(7).
[2]方照.立足校本,探索校園網(wǎng)建設(shè)之路[J].教育信息技術(shù),2007,(12).
[3]田建勇.淺析學(xué)校網(wǎng)站的設(shè)計(jì)與建設(shè)[J].安順師范高等??茖W(xué)校學(xué)報(bào),2006,(6).
[4]侯占偉,翟海霞.ASP代碼廈網(wǎng)站安全的探討[J].焦作大學(xué)學(xué)報(bào),2005,(4).
隨著信息化的發(fā)展,政府各職能部門對(duì)信息資源的依賴程度越來(lái)越大,由此帶來(lái)的信息安全問(wèn)題也日益突出。電子政務(wù)等級(jí)保護(hù)基本安全要求是對(duì)各等級(jí)電子政務(wù)系統(tǒng)的一般性要求,分為五個(gè)等級(jí),從第一級(jí)至第五級(jí),對(duì)應(yīng)于五個(gè)等級(jí)的電子政務(wù)系統(tǒng)。對(duì)特定電子政務(wù)系統(tǒng)的安全保護(hù),以其相應(yīng)等級(jí)的基本安全要求為基礎(chǔ),通過(guò)對(duì)安全措施的調(diào)整和定制,得到適用于該電子政務(wù)系統(tǒng)的安全保護(hù)措施。電子政務(wù)等級(jí)保護(hù)基本安全要求分為安全策略、安全組織、安全技術(shù)和安全運(yùn)行四個(gè)方面。第一,安全策略,安全策略是為了指導(dǎo)和規(guī)范電子政務(wù)信息安全工作而制定的安全方針、管理制度、規(guī)范標(biāo)準(zhǔn)、操作流程和記錄模板等文檔的總和。安全策略具有層次化的結(jié)構(gòu),包括整體安全策略、部門級(jí)安全策略、系統(tǒng)級(jí)安全策略等。第二,安全組織,安全組織是為了保障電子政務(wù)信息安全而建立的組織體系,包括各級(jí)安全組織機(jī)構(gòu)、崗位安全職責(zé)、人員安全管理、第三方安全管理、安全合作與溝通等方面。第三,安全技術(shù),安全技術(shù)是指保障電子政務(wù)信息安全的安全技術(shù)功能要求和安全技術(shù)保障要求,包括網(wǎng)絡(luò)與通訊安全、主機(jī)與平臺(tái)安全、數(shù)據(jù)庫(kù)安全、應(yīng)用安全、數(shù)據(jù)安全、物理環(huán)境安全等方面。第四,安全運(yùn)行,安全運(yùn)行是為了保障電子政務(wù)系統(tǒng)運(yùn)行過(guò)程中的安全而制定的安全運(yùn)維要求,包括風(fēng)險(xiǎn)管理、配置和變更管理、信息系統(tǒng)工程安全管理、日常運(yùn)行管理、技術(shù)資料安全、應(yīng)急響應(yīng)等方面。通過(guò)網(wǎng)站用戶管理模塊的功能抽象的講,就是通過(guò)編程實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)表進(jìn)行基本的增、刪、改、查操作功能。
1.1用戶登錄
程序運(yùn)行后顯示的界面,輸入用戶名和密碼后單擊“登錄”鏈接按鈕,程序能判斷是否為合法用戶及用戶級(jí)別,并通過(guò)彈出信息框顯示出來(lái)。為提高程序安全性,筆者用DES加密和輸入驗(yàn)證碼的形式,把用戶名、用戶密碼、用戶郵箱和安全問(wèn)題答案、手機(jī)號(hào)的數(shù)據(jù),以明文變成密文保存在數(shù)據(jù)庫(kù)中。由于驗(yàn)證碼是隨機(jī)生成的,所以要使用到Random類。Random類提供了隨機(jī)數(shù)生成的方法,可以很方便地生成所需要的隨機(jī)數(shù)。驗(yàn)證碼一般都以圖片格式輸出,這需要用到Bitmap類,需要使用Graphics類來(lái)建立畫(huà)板對(duì)象。為防止驗(yàn)證碼被某些機(jī)器人程序識(shí)別,還需要在圖片上畫(huà)噪音線和點(diǎn),所用到的方法在Bitmap類和Graphics類中都有提供。單擊“返回”按鈕可跳轉(zhuǎn)到用戶登錄頁(yè)面。
1.2注冊(cè)新用戶
在用戶登錄頁(yè)面中單擊“注冊(cè)”鏈接按鈕,將打開(kāi)界面新用戶注冊(cè)頁(yè)面。在頁(yè)面中填寫(xiě)完整的注冊(cè)信息后,單擊“提交”鏈接按鈕可像數(shù)據(jù)庫(kù)中添加一條用戶級(jí)別為user(普通用戶)的新用戶記錄,通過(guò)本頁(yè)面注冊(cè)的所有用戶,管理員級(jí)別用戶需要在用戶管理頁(yè)面中進(jìn)行設(shè)置。數(shù)據(jù)庫(kù)中用戶名字段(uname)為表的主鍵,不允許有重復(fù)數(shù)據(jù),故單擊“檢查用戶名”或“提交”鏈接按鈕時(shí),程序會(huì)首先檢查用戶名是否存在。此外,如果用戶填寫(xiě)信息不完整(有任何一個(gè)文本框?yàn)榭眨┗騼纱屋斎氲拿艽a不相同,程序都會(huì)給出相應(yīng)的出錯(cuò)提示。
1.3找回遺忘的密碼
在用戶登錄界面中輸入用戶名,單擊“忘記密碼”鏈接按鈕打開(kāi)如圖7所示的找回遺忘的密碼頁(yè)面。程序根據(jù)用戶輸入的用戶名,在頁(yè)面中顯示注冊(cè)時(shí)填寫(xiě)的安全問(wèn)題,如用戶能正確回答安全問(wèn)題答案,程序?qū)棾鲆粋€(gè)新密碼,這個(gè)新密碼為臨時(shí)的隨機(jī)密碼,使用該密碼登錄后可進(jìn)行重新登錄。如果用戶輸入的用戶名不存在或者安全問(wèn)題答案錯(cuò)誤程序均能給出相應(yīng)的提示。我們也可使用手機(jī)綁定短信找回密碼,用戶輸入注冊(cè)時(shí)的手機(jī)號(hào)碼,隨后系統(tǒng)會(huì)發(fā)給您一個(gè)驗(yàn)證碼,需要輸入在找回遺忘的密碼的手機(jī)驗(yàn)證碼一欄,最后程序也將彈出隨機(jī)的新密碼。單擊“返回”鏈接按鈕可返回到登陸頁(yè)面。
1.4修改用戶信息
根據(jù)用戶級(jí)別不同,具有的管理權(quán)限也不同。普通用戶可修改自己的密碼、電子郵箱數(shù)據(jù)。管理員用戶除具有普通用戶的權(quán)限外,還可以刪除用戶,可以提升某用戶為管理員或?qū)⒅\管理員降級(jí)為普通用戶。在用戶登錄頁(yè)面中輸入用戶名和密碼,單擊“修改用戶信息”鏈接按鈕將打開(kāi)用戶管理頁(yè)面。管理員用戶可以使用頁(yè)面中的所有功能,而普通用戶則只能修改自己的密碼、電子郵箱信息。
2結(jié)語(yǔ)
現(xiàn)在的網(wǎng)絡(luò)教育作為一種新興的教育方式,網(wǎng)絡(luò)教育具有諸多特性,如靈活性、主動(dòng)性、創(chuàng)造性和互動(dòng)性等。特備是網(wǎng)絡(luò)教育網(wǎng)站的出現(xiàn)和應(yīng)用,更是從根本上解決了在網(wǎng)絡(luò)教育這種非面對(duì)面教學(xué)形式中學(xué)習(xí)者跟教師之間難以進(jìn)行廣泛交流的難題。所以,通過(guò)將網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的廣泛結(jié)合,通過(guò)現(xiàn)在普遍采用的ASP技術(shù)來(lái)構(gòu)建一個(gè)能夠提供動(dòng)態(tài)服務(wù)的教育網(wǎng)站,也就成了網(wǎng)絡(luò)教育這種新型教育模式的必然選擇。
2、目標(biāo)和功能
網(wǎng)絡(luò)教育網(wǎng)站的基本功能就是滿足教學(xué)雙方的根本需求,在能夠?yàn)榻處熖峁﹤湔n和課堂教學(xué)參考的同時(shí),還能偶為學(xué)生的課程學(xué)習(xí)服務(wù);應(yīng)該能夠?yàn)榻處熀蛯W(xué)生提供非常便利的網(wǎng)上學(xué)習(xí)和討論交流的學(xué)習(xí)環(huán)境;比外,還應(yīng)該能夠?yàn)榻處熀蛯W(xué)生提供方便使用的資料查詢和檢索功能,便于教師和學(xué)生的日常使用。
所以,為了能夠滿足這些要求,就應(yīng)該使教學(xué)網(wǎng)站具有如下幾個(gè)主要的功能部分,即:
(1)、學(xué)習(xí)功能。教學(xué)網(wǎng)站的學(xué)習(xí)功能主要是針對(duì)學(xué)生設(shè)計(jì)的。學(xué)生通過(guò)該功能模塊,可以對(duì)各種課程的電子教案進(jìn)行在線學(xué)習(xí),了解相關(guān)的學(xué)習(xí)方法、課時(shí)分配和教學(xué)計(jì)劃等等跟課程相關(guān)的內(nèi)容;還可以開(kāi)設(shè)各種跟學(xué)習(xí)相關(guān)的論壇;具有即時(shí)和錯(cuò)時(shí)的交互式學(xué)習(xí)界面;能夠通過(guò)對(duì)共同關(guān)心問(wèn)題的深入討論,引導(dǎo)學(xué)生參加在線的交流、評(píng)價(jià)和調(diào)查等,將網(wǎng)絡(luò)構(gòu)建成課程學(xué)習(xí)的另一個(gè)戰(zhàn)場(chǎng)。
(2)、教學(xué)功能。網(wǎng)站的教學(xué)功能主要是針對(duì)廣大的教師隊(duì)伍而設(shè)置的,能夠?yàn)榻處熖峁┙Y(jié)構(gòu)化的系統(tǒng)平臺(tái),便于教師將各種跟課程教學(xué)相關(guān)的電子和聲像資料上傳到網(wǎng)站中,還應(yīng)該便于教師進(jìn)行動(dòng)態(tài)的網(wǎng)上交流、和答疑,促進(jìn)教師和學(xué)生之間的交流,對(duì)學(xué)校的教學(xué)和科研動(dòng)態(tài)進(jìn)行及時(shí)地了解和掌握。
(3)、資源整合跟查詢功能。作為網(wǎng)站建設(shè)中的主要工作和功能模塊,網(wǎng)絡(luò)資源的整合和查詢可以通過(guò)建設(shè)一個(gè)對(duì)本地站點(diǎn)進(jìn)行搜索的引擎,對(duì)互聯(lián)網(wǎng)上的運(yùn)行環(huán)境進(jìn)行模擬,提高上網(wǎng)查詢資料和訪問(wèn)的效率,從而構(gòu)建出比較完備的信息資料收集和查詢系統(tǒng),對(duì)網(wǎng)上的資源進(jìn)行整合和查詢,構(gòu)建出簡(jiǎn)單實(shí)用的專題數(shù)據(jù)資料庫(kù)。
3、教育網(wǎng)站建設(shè)
3.1 系統(tǒng)結(jié)構(gòu)及平臺(tái)
本文系統(tǒng)實(shí)現(xiàn)中,主要采用基于B/S的網(wǎng)絡(luò)構(gòu)建模型,也就是常用的瀏覽器/服務(wù)器模式。該網(wǎng)絡(luò)構(gòu)建模式可以將應(yīng)用邏輯跟用戶界面和數(shù)據(jù)的訪問(wèn)分割開(kāi)來(lái),便于提高系統(tǒng)的可維護(hù)性,此外,利用各種組件技術(shù),可以有效降低數(shù)據(jù)庫(kù)的訪問(wèn)壓力,提高系統(tǒng)的運(yùn)行性能。訪問(wèn)者可以通過(guò)本地瀏覽器對(duì)網(wǎng)絡(luò)服務(wù)器進(jìn)行登錄訪問(wèn),由于網(wǎng)絡(luò)服務(wù)器和應(yīng)用服務(wù)器都屬于應(yīng)用邏輯層,這樣,網(wǎng)絡(luò)服務(wù)器在接收表示層所提交的訪問(wèn)申請(qǐng)之后,就可以通過(guò)調(diào)用服務(wù)器中的相關(guān)模塊,對(duì)具體的邏輯操作和運(yùn)行進(jìn)行執(zhí)行,并數(shù)據(jù)庫(kù)服務(wù)器提出及時(shí)的數(shù)據(jù)請(qǐng)求,得到結(jié)果之后,就可以將結(jié)果返回到網(wǎng)絡(luò)服務(wù)器,最后,網(wǎng)絡(luò)服務(wù)器就可以將結(jié)果數(shù)據(jù)提供給訪問(wèn)者。
3.2 技術(shù)方案
現(xiàn)在,可以用于網(wǎng)站開(kāi)發(fā)的技術(shù)和手段主要有:基于HTML文件的開(kāi)發(fā)技術(shù)、基于CGI的動(dòng)態(tài)頁(yè)面生成技術(shù)以及基于ASP的開(kāi)發(fā)技術(shù)。下面對(duì)這幾種技術(shù)體系進(jìn)行簡(jiǎn)介和說(shuō)明。
首先,就是基于HTML文件的網(wǎng)站開(kāi)發(fā)。作為第一種通用的頁(yè)面描述型的開(kāi)發(fā)語(yǔ)言,HTML簡(jiǎn)單易學(xué),且具有非常強(qiáng)大的超媒體支持能力,便于在超媒體的信息網(wǎng)中進(jìn)行使用。通過(guò)HTML語(yǔ)言就行網(wǎng)站的開(kāi)發(fā),其特點(diǎn)為速度比較快,且不需要高水平的技術(shù)力量。不過(guò),有優(yōu)點(diǎn)肯定就有缺點(diǎn),缺點(diǎn)是在使用過(guò)程中的網(wǎng)站維護(hù)工作量比較大,及時(shí)進(jìn)行小范圍的修改,也需要對(duì)整個(gè)網(wǎng)頁(yè)進(jìn)行操作。
其次,基于CGI的網(wǎng)站開(kāi)發(fā)技術(shù)。傳統(tǒng)的靜態(tài)網(wǎng)站構(gòu)建技術(shù)已經(jīng)難以滿足人們對(duì)網(wǎng)站的訪問(wèn)需求,所以,基于CGI技術(shù)的動(dòng)態(tài)交互式網(wǎng)站就開(kāi)始逐漸興起和發(fā)展。這主要是由于采用CGI技術(shù)構(gòu)建網(wǎng)站,可以大大提高網(wǎng)站的交互性能,便于用戶和網(wǎng)站管理人員以及用戶和用戶之間的信息交流。不過(guò),這種網(wǎng)站構(gòu)建技術(shù)也存在明顯的缺陷,就是這種開(kāi)發(fā)技術(shù)跟操作系統(tǒng)的關(guān)系緊密,所以,使得利用該技術(shù)所構(gòu)建的網(wǎng)站的可移植性能比較差。
第三,就是基于ASP技術(shù)的網(wǎng)站開(kāi)發(fā)技術(shù)。作為一種新開(kāi)發(fā)的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),ASP技術(shù)是一種動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè),能夠很方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。現(xiàn)在的網(wǎng)頁(yè)設(shè)計(jì)中,采用ASP進(jìn)行功能實(shí)現(xiàn)的越來(lái)越多,可以利用ASP技術(shù)來(lái)創(chuàng)建動(dòng)態(tài)的網(wǎng)絡(luò)頁(yè)面,或者功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。此外,ASP技術(shù)可以通過(guò)ADO控件對(duì)象來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),ADO的特點(diǎn)為高效、簡(jiǎn)單和內(nèi)存開(kāi)銷較小,更加適用于基于B/S的客戶端模式或者其他基于網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā)。
基于ASP技術(shù)的網(wǎng)站工作方式可以描述為:瀏覽器通過(guò)向網(wǎng)絡(luò)服務(wù)器發(fā)送訪問(wèn)請(qǐng)求,激活A(yù)SP的腳本運(yùn)行程序,之后,網(wǎng)絡(luò)服務(wù)器就可以通過(guò)調(diào)用ASP來(lái)對(duì)請(qǐng)求的文件進(jìn)行讀取,并同時(shí)執(zhí)行腳本的命令,最后將網(wǎng)絡(luò)的頁(yè)面?zhèn)鲃?dòng)給瀏覽器。此種模式下,網(wǎng)頁(yè)的腳本運(yùn)行主要通過(guò)服務(wù)器來(lái)完成,所以,從瀏覽器上所看到的網(wǎng)頁(yè)是在網(wǎng)絡(luò)服務(wù)器上生成后傳送過(guò)來(lái)的,瀏覽器不用負(fù)責(zé)對(duì)腳本的處理。網(wǎng)絡(luò)服務(wù)器能夠?qū)崿F(xiàn)所有的腳本處理,且能夠?qū)?biāo)準(zhǔn)的HTML頁(yè)面?zhèn)魉偷綖g覽器。瀏覽器所接受的只是腳本運(yùn)行的結(jié)果,并不對(duì)服務(wù)器端的腳本進(jìn)行復(fù)制,所以難以得到支持其頁(yè)面內(nèi)容的腳本命令,這樣,系統(tǒng)的訪問(wèn)和運(yùn)行安全性就可以得到保障。在該方式中,用戶可以通過(guò)目錄來(lái)進(jìn)行邊界的定義,以以此作為應(yīng)用程序的作用域,使得在每個(gè)網(wǎng)站站點(diǎn)都可以運(yùn)行多個(gè)應(yīng)用程序,且在服務(wù)器端并沒(méi)有實(shí)際的頁(yè)面存在和出現(xiàn),任何網(wǎng)頁(yè)都是根據(jù)用戶的需求來(lái)動(dòng)態(tài)的實(shí)時(shí)生成和運(yùn)行的,在用戶訪問(wèn)結(jié)束后就自動(dòng)消除。
3.3 服務(wù)器與數(shù)據(jù)庫(kù)的連接
現(xiàn)在,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間通信和數(shù)據(jù)交換的技術(shù)主要有:動(dòng)態(tài)數(shù)據(jù)交換技術(shù)、SQL技術(shù)和ODBC技術(shù)等。
在這幾種數(shù)據(jù)交換方式中,ODBC技術(shù)已經(jīng)成為應(yīng)用系統(tǒng)和驅(qū)動(dòng)程序之間的標(biāo)準(zhǔn)數(shù)據(jù)交互接口。作為一種調(diào)用層的數(shù)據(jù)接口,ODBC并不需要要預(yù)編譯程序,可以像調(diào)用函數(shù)一樣來(lái)實(shí)現(xiàn)對(duì)ODBC的操作。對(duì)于不同的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)說(shuō),ODBC對(duì)其的訪問(wèn)和管理是半透明的,可以通過(guò)驅(qū)動(dòng)程序的加載來(lái)實(shí)現(xiàn)邏輯結(jié)構(gòu)到具體數(shù)據(jù)庫(kù)管理系統(tǒng)的DBMS的映射。而應(yīng)用程序?qū)?shù)據(jù)的訪問(wèn)和操作,則不需要通過(guò)任何DBMS來(lái)實(shí)現(xiàn),由此就可以實(shí)現(xiàn)應(yīng)用程序?qū)Σ煌珼BMS的共享。所以,對(duì)于不同的應(yīng)用系統(tǒng)來(lái)說(shuō),ODBC具有高度的可移植性和互用性,通過(guò)基于ODBC的標(biāo)準(zhǔn)開(kāi)發(fā),用戶可以跟不同的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行通信,此時(shí)的應(yīng)用程序并不需要做任何改變。
ASP技術(shù) ASP(Active Server Pages動(dòng)態(tài)網(wǎng)頁(yè))是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用網(wǎng)關(guān)接口)的技術(shù)。目前,Internet上的許多基于Windows平臺(tái)的Web站點(diǎn)已開(kāi)始應(yīng)用ASP來(lái)替換CGI。 簡(jiǎn)單地講,ASP是一個(gè)位于服務(wù)器端的腳本運(yùn)行環(huán)境,通過(guò)這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式Web服務(wù)器應(yīng)用程序,如交互式動(dòng)態(tài)網(wǎng)頁(yè),包括使用HTML表單收集和處理信息,上傳與下載等等。通常情況下,用戶通過(guò)瀏覽器看到的網(wǎng)頁(yè)大多是靜態(tài)的,目前Internet 上的許多站點(diǎn),仍然提供"靜態(tài)"(static)的主頁(yè)內(nèi)容。 所謂"靜態(tài)",指的就是站點(diǎn)的主頁(yè)內(nèi)容是"固定不變"的。 當(dāng)瀏覽器通過(guò)Internet 的HTTP (Hypertext Transport Protocol)協(xié)議,向站點(diǎn)服務(wù)器(Web Server)要求提供主頁(yè)的內(nèi)容時(shí),站點(diǎn)服務(wù)器收到要求后,就傳送原已設(shè)計(jì)好的靜態(tài)的HTML 的文件數(shù)據(jù)給瀏覽器。 一個(gè)"靜態(tài)"的站點(diǎn),若要更新主頁(yè)的內(nèi)容,必須手動(dòng)的來(lái)更新其HTML的文件數(shù)據(jù)。而隨著Web應(yīng)用的發(fā)展,用戶希望能夠看到根據(jù)要求而動(dòng)態(tài)生成的主頁(yè),例如響應(yīng)用戶查詢數(shù)據(jù)庫(kù)的要求、生成報(bào)表等。當(dāng)在瀏覽器上填好表單(form)的輸入數(shù)據(jù),以提供HTTP要求時(shí),可以在站點(diǎn)服務(wù)器中執(zhí)行的應(yīng)用程序,而不只是一個(gè)HTML 文件。站點(diǎn)服務(wù)器收到要求執(zhí)行的應(yīng)用程序,分析表單(form)的輸入數(shù)據(jù),將執(zhí)行的結(jié)果以HTML的格式傳送給瀏覽器。 根據(jù)用戶請(qǐng)求生成動(dòng)態(tài)主頁(yè)的傳統(tǒng)方法有CGI、ISAPI等。CGI是根據(jù)瀏覽器端的http請(qǐng)求激活響應(yīng)進(jìn)程,每一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)進(jìn)程。當(dāng)同時(shí)有很多請(qǐng)求時(shí),程序擠占系統(tǒng)資源,造成效率低下;ISAPI針對(duì)這一缺點(diǎn)進(jìn)行改進(jìn),利用dll(動(dòng)態(tài)鏈接庫(kù))技術(shù),以線程代替進(jìn)程,提高了性能和速度,但要考慮線程的同步問(wèn)題,而且開(kāi)發(fā)步驟煩瑣。這兩種技術(shù)和另一普遍使用的開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)Java都還存在著另外一個(gè)問(wèn)題,那就是開(kāi)發(fā)困難,程序的開(kāi)發(fā)和HTML寫(xiě)作是兩個(gè)完全不同的過(guò)程,需要專門的程序員開(kāi)發(fā)。而較簡(jiǎn)單的開(kāi)發(fā)技術(shù)如javascript和IDC(Internet Database Connector)等功能有限,不敷使用。 ASP使用的ActiveX技術(shù)基于開(kāi)放設(shè)計(jì)環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動(dòng)態(tài)網(wǎng)頁(yè)幾乎具有無(wú)限的擴(kuò)充能力,這是傳統(tǒng)的CGI等程序所遠(yuǎn)遠(yuǎn)不及的地方。ASP與常見(jiàn)的在Client端實(shí)現(xiàn)動(dòng)態(tài)主頁(yè)的技術(shù)如Java applet、ActiveX Control、VBScript、javascript等不同,ASP中的命令和Script語(yǔ)句都是由服務(wù)器來(lái)解釋執(zhí)行的,執(zhí)行結(jié)果產(chǎn)生動(dòng)態(tài)生成的Web頁(yè)面并送到瀏覽器;而Client端技術(shù)的Script命令則是由瀏覽器來(lái)解釋執(zhí)行。由于ASP是在服務(wù)器端解釋執(zhí)行,開(kāi)發(fā)者可以不必考慮瀏覽器是否支持ASP;同時(shí)由于它在服務(wù)器端執(zhí)行,開(kāi)發(fā)者也不必?fù)?dān)心別人下載程序從而竊取編程邏輯。 ASP通過(guò)后綴名為.asp的ASP文件來(lái)實(shí)現(xiàn),一個(gè).asp文件相當(dāng)于一個(gè)可執(zhí)行文件,因此必須放在Web服務(wù)器上有可執(zhí)行權(quán)限的目錄下。當(dāng)用戶從瀏覽器輸入了.asp文件的地址后,瀏覽器就將這個(gè)URL請(qǐng)求發(fā)給Web Server,如果Web Server上裝了ASP,就調(diào)用ASP。ASP讀出相應(yīng).asp文件,解釋并執(zhí)行命令,動(dòng)態(tài)生成一個(gè)HTML頁(yè)面回傳Web Server,然后Web Server再把結(jié)果發(fā)送給瀏覽器。ASP文件的制作和HTML類似,且和HTML開(kāi)發(fā)集成,可以在同一個(gè)過(guò)程完成,利用ASP將可以執(zhí)行的腳本嵌入到HTML文件中(將HTML文件的后綴名改為.asp),這使得HTML文件的編寫(xiě)與腳本的開(kāi)發(fā)融合在一起。通過(guò)ASP內(nèi)置的對(duì)象、服務(wù)器組件(Server Component)可以完成非常復(fù)雜的任務(wù),而且用戶還可以自己開(kāi)發(fā)或利用別人開(kāi)發(fā)的服務(wù)器組件完成專門的任務(wù)。ASP比較網(wǎng)關(guān)及服務(wù)器擴(kuò)展模式有著以下優(yōu)點(diǎn):
(1)完全與HTML文件融合在一起;
(2)容易創(chuàng)建,不需要其它編譯、鏈接程序;
(3)面向?qū)ο蟮牟⑼ㄟ^(guò)ActiveX Server對(duì)象可擴(kuò)展。
二、電子商務(wù)數(shù)據(jù)訪問(wèn)方式
電子商務(wù)是指通過(guò)電子方式,并在網(wǎng)絡(luò)基礎(chǔ)上實(shí)現(xiàn)物資、人員過(guò)程的協(xié)調(diào),以便商業(yè)交換的活動(dòng)。在電子商務(wù)系統(tǒng)中,Web提供了與客戶進(jìn)行通信聯(lián)絡(luò)的有效手段,利用Web技術(shù),實(shí)現(xiàn)Web服務(wù)器與數(shù)據(jù)庫(kù)系統(tǒng)的連接,完成對(duì)數(shù)據(jù)的處理與查詢,用戶可以通過(guò)操作簡(jiǎn)單易學(xué)的瀏覽器來(lái)查詢處理所需要的各種數(shù)據(jù)。 實(shí)現(xiàn)Web服務(wù)器與數(shù)據(jù)庫(kù)的連接一般有兩種方法:一種是利用中間件技術(shù)在兩者之間建立連接和通信,如CGI(通用網(wǎng)關(guān)接口)和API(應(yīng)用程序編程接口)。Web服務(wù)器通過(guò)調(diào)用CGI程序?qū)崿F(xiàn)與Web瀏覽器的交互,即CGI程序接受瀏覽器發(fā)給Web服務(wù)器的信息,進(jìn)行處理后,將相應(yīng)結(jié)果再送回給Web服務(wù)器,通過(guò)Web服務(wù)器將信息傳送給瀏覽器。但CGI程序在響應(yīng)速度和資源利用等方面有較大局限性,客戶端每請(qǐng)求一個(gè)CGI程序,服務(wù)器端便打開(kāi)一個(gè)進(jìn)程,當(dāng)請(qǐng)求的數(shù)量較大時(shí)容易引起瓶頸現(xiàn)象,開(kāi)發(fā)人員常利用API編程來(lái)擴(kuò)展服務(wù)器功能,API程序占系統(tǒng)資源少,運(yùn)行效率較高,但它的編程較CGI程序更為復(fù)雜;另一種是由瀏覽器中的Java小應(yīng)用程序(Java Applet)通過(guò)瀏覽器訪問(wèn)Web服務(wù)器上的數(shù)據(jù)庫(kù),利用了JDBC(Java Database Connectivity)技術(shù),它通過(guò)JDBC提供的API實(shí)現(xiàn)對(duì)Web Server的訪問(wèn)。由于Java Applet本身的局限性,目前大多數(shù)的應(yīng)用是基于中間件技術(shù)的。 ASP也是屬于中間件的一種模式,但在Windows平臺(tái)上它比較網(wǎng)關(guān)及服務(wù)器擴(kuò)展模式有著較大的優(yōu)點(diǎn)。網(wǎng)關(guān)的最大特點(diǎn)是它的平臺(tái)無(wú)關(guān)性,但網(wǎng)關(guān)程序通常較難編寫(xiě)和改變。網(wǎng)關(guān)程序通常是一個(gè)獨(dú)立的程序,并不和HTML文件融合在一起,它需要用如C、C++、VB、Perl等語(yǔ)言來(lái)編寫(xiě)?yīng)毩⒌膽?yīng)用程序,而ASP應(yīng)用改變了這一點(diǎn)。使用ASP不僅可以讀取Access和 SQL Server的數(shù)據(jù)庫(kù),而且還可以讀取其他ODBC(Open Database Connect 開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián))兼容的數(shù)據(jù)庫(kù)。在ASP中訪問(wèn)數(shù)據(jù)庫(kù)是通過(guò)ADO(ActiveX Database Object活動(dòng)數(shù)據(jù)對(duì)象)及事務(wù)處理語(yǔ)句來(lái)實(shí)現(xiàn)的。ADO是一種操作Microsoft所支持的數(shù)據(jù)庫(kù)的方法,是一項(xiàng)容易使用并且可擴(kuò)展的將數(shù)據(jù)庫(kù)訪問(wèn)添加到 Web 頁(yè)的技術(shù)。ADO對(duì)象的使用與DAO(數(shù)據(jù)訪問(wèn)對(duì)象)、RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)的方式相似。在ASP中,ADO可以看作是一個(gè)服務(wù)器組件,更簡(jiǎn)單點(diǎn)說(shuō),是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫(kù)復(fù)雜的操作。
三、ASP在電子商務(wù)中的應(yīng)用
在電子商務(wù)中,對(duì)用戶而言,進(jìn)行網(wǎng)上信息查詢的目的是尋找自己需要的產(chǎn)品或服務(wù),而對(duì)于商品或服務(wù)提供者來(lái)說(shuō),其目的則是向用戶推銷自己的產(chǎn)品或服務(wù)。因此,讓用戶通過(guò)瀏覽器查詢服務(wù)器的后端數(shù)據(jù)庫(kù)是許多Web服務(wù)提供者必需有的服務(wù),ASP通過(guò)內(nèi)置的ADODB組件來(lái)實(shí)現(xiàn)這一功能??梢允褂肁DO去編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到ODBC 兼容的數(shù)據(jù)庫(kù)和 OLE DB 兼容的數(shù)據(jù)源。具體的操作步驟可以歸納為以下幾步:
① 創(chuàng)建數(shù)據(jù)庫(kù)源名(DSN) ADODB通過(guò)ODBC工作,因此要在ODBC中設(shè)置DSN(數(shù)據(jù)源名)。打開(kāi)Windows的"控制面板",雙擊"ODBC"的圖標(biāo),然后選擇"文件 DSN "的屬性頁(yè),單擊,選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,然后單擊"下一步",按照屏幕的指示鍵入數(shù)據(jù)源文件的名稱,然后單擊"下一步",再單擊"完成"創(chuàng)建數(shù)據(jù)源。
②創(chuàng)建數(shù)據(jù)庫(kù)鏈接 鏈接用以保持一些關(guān)于正在訪問(wèn)的數(shù)據(jù)的動(dòng)態(tài)信息,以及鏈接者信息。利用ADODB的成員函數(shù)Open和先前設(shè)定的DSN與數(shù)據(jù)庫(kù)連接,其語(yǔ)法如下: SetConnect=Server.CreateObject("ADODB.Connection") '創(chuàng)建了鏈接對(duì)象Connect。 Connect.Open("DSN=dsnname;UID=userID;PWD=password") '打開(kāi)鏈接。dsnname為數(shù)據(jù)源名;userID為用戶名;password為用戶口令。
③創(chuàng)建數(shù)據(jù)對(duì)象 ADO中的數(shù)據(jù)對(duì)象通常保存的是查詢結(jié)果。RecordSet 是ADO中最復(fù)雜的對(duì)象,有許多屬性和方法,靈活運(yùn)用,可以達(dá)到許多好的效果。其創(chuàng)建方法如下: Set RecordSet =Connect.Execute(sqtStr) '創(chuàng)建并打開(kāi)了對(duì)象RecordSet ,sqtStr是一個(gè)串,代表一條標(biāo)準(zhǔn)的SQL語(yǔ)句。例如: sqlStr="SELECT*FROM b1" Set RecordSet =Connect.Execute(sqlStr) 這條語(yǔ)句執(zhí)行后,對(duì)象RecordSet中就保存了b1中的所有記錄。
④操作數(shù)據(jù)庫(kù) 可利用Execute方便地執(zhí)行數(shù)據(jù)的插入、修改、刪除等操作。如執(zhí)行插入操作: sqlStr="Insert Into b1Values(1,2)" Connect.Execute(sqlStr)
⑤關(guān)閉數(shù)據(jù)對(duì)象和鏈接 在使用了ADO對(duì)象之后,一定要關(guān)閉數(shù)據(jù)對(duì)象和鏈接。在ASP中通過(guò)調(diào)用方法close實(shí)現(xiàn)關(guān)閉。 關(guān)閉創(chuàng)建的數(shù)據(jù)對(duì)象:Record Set .close Set Record Set=Nothing 關(guān)閉創(chuàng)建的鏈接對(duì)象:Connect. close Set Connect=Nothing 完整的程序片段:
//產(chǎn)生組件實(shí)例
//連接數(shù)據(jù)庫(kù)
Connect.Open("DSN=dsnname;UID=userID;PWD=password")
//執(zhí)行查詢
SQL=select*fromtablename SetRS=Connect.Execute(SQL)?。?
//顯示結(jié)果
Rs.MoveNext
Loop
%>
上述是用ASP訪問(wèn)數(shù)據(jù)庫(kù)的全過(guò)程,由于應(yīng)用面向?qū)ο笏枷?,所有操作都比較簡(jiǎn)單,用戶需要注意的僅是對(duì)數(shù)據(jù)結(jié)構(gòu)的了解、當(dāng)前所操作的對(duì)象及對(duì)象的屬性等等,只要對(duì)這些有了清晰的認(rèn)識(shí),再加上ASP強(qiáng)大功能,在網(wǎng)絡(luò)上使用數(shù)據(jù)庫(kù),實(shí)現(xiàn)用戶與頁(yè)面間交換信息,就再也不是什么難事了。
四、主要功能程序段
4、1 打開(kāi)數(shù)據(jù)庫(kù)
option explicit
dim conn,connstr,db,rs
db="database/#MyShop.mdb" //數(shù)據(jù)庫(kù)路徑
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
4.2 數(shù)據(jù)庫(kù)查詢操作
//大類查訊
set rs=server.CreateObject("adodb.recordset")
//只讀方式打開(kāi)
rs.open "select anclass,anclassid from anclass",conn,1,1
do while not rs.eof
response.write ""
&trim(rs("anclass"))&" "
rs.movenext
loop
rs.close
//小類查詢
dim rs2
set rs2=server.CreateObject("adodb.recordset")
rs2.open "select nclass,nclassid from nclass where anclassid="&rs("anclassid")&" order by nclassidorder",conn,1,1
do while not rs2.eof
response.write "
&rs("anclassid")&"&nid="&rs2("nclassid")&">"
&trim(rs2("nclass"))&" "
rs2.movenext
loop
4.3 添加記錄操作
set rs=server.CreateObject("adodb.recordset")
//可寫(xiě)方式
rs.open "select bookid,username,zhuangtai,zonger from actions",conn,1,3
rs.addnew //添加一條新記錄
rs("bookid")=bookid //添加相應(yīng)的記錄
rs("username")=username
…………
rs("zhuangtai")=6
rs("zonger")=0
rs.update //更新數(shù)據(jù)庫(kù)
4.4 刪除記錄操作
//從表actions中刪除actionid 匹配的記錄
conn.execute "delete from actions where actionid="
&request.QueryString("actionid")
4.5 記錄的修改和查看
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from books where bookid="&bookid,conn,1,3
rs("anclassid")=int(request("anclassid")) //修改各項(xiàng)記錄
………………
rs.Update
rs.Close