網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
《網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文》由會員分享,可在線閱讀,更多相關(guān)《網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn) 摘要:為了提高教師的工作效率,把老師從煩瑣的考試工作中解放出來,我們設(shè)計和開發(fā)了這套基于JSP的網(wǎng)上考試系統(tǒng)。本文闡述了一個基于JSP技術(shù)的網(wǎng)上考試系統(tǒng)的體系結(jié)構(gòu)和設(shè)計實現(xiàn)過程。系統(tǒng)采用的三層體系結(jié)構(gòu),JSP+JavaBean+SQL Server 2000開發(fā),即前端由JSP網(wǎng)頁實現(xiàn)表現(xiàn)邏輯,中間使用JavaBean的組件實現(xiàn)系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯,后端使用SQL Server 2000數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)邏輯,并設(shè)計了網(wǎng)上考試系統(tǒng)的解決方案。系統(tǒng)實現(xiàn)了三種權(quán)限用戶信息的管理,題庫的增加、修改、刪除基本功能,實現(xiàn)了隨機(jī)生成試卷,并管理試卷的發(fā)布狀態(tài)。實現(xiàn)了學(xué)生在線考
2、試和成績查詢的功能。 關(guān)鍵詞:網(wǎng)上考試系統(tǒng);JSP;SQL Server數(shù)據(jù)庫 The Design and Realization Of ExamOnline System Abstract:In order to improve the teachers working efficiency, liberate teacher from convoluted work about test, we design and develop a network examination system that based on JSP. This article has explained
3、 the system structure and design process of a network examination system that based on JSP technology. The system uses three systems structures, and developed by JSP-JavaBean-SQL Server 2000 technology. Videlicet, at foreground is realized displaying logic by JSP WebPages, in the middle used JavaBea
4、n component complete the complicated business logic inner system, at background uses SQL Server 2000 databases accomplish data logic, and design a solution for a network examination system. This system accomplished three types user information’s management. And accomplished the query, add, delete an
5、d edit functions of item bank. And accomplished arranging paper randomly, and manage the paper’s publish state. The system accomplished exam on line and query score. Keywords:ExamOline System;JSP;SQL Server 2000 I 目錄 目錄 I 1前言 1 2 系統(tǒng)設(shè)計相關(guān)技術(shù) 2 2.1 系統(tǒng)開發(fā)模式 2 2.1.1 Client/Server模式及其特點(diǎn) 2 2.1.2Brow
6、er/Server模式及其特點(diǎn) 3 2.1 JSP簡介 4 2.1.1 JavaBean技術(shù)介紹 5 2.1.2 JSP的運(yùn)行原理 5 2.2 JSP數(shù)據(jù)庫訪問技術(shù) 6 2.2.1 JDBC技術(shù)及實現(xiàn)方法 6 2.2.2連接池技術(shù)及實現(xiàn)方法 7 3 系統(tǒng)需求分析 9 3.1 系統(tǒng)功能分析 9 3.2 系統(tǒng)性能需求分析 9 3.3 設(shè)計原則 10 4 系統(tǒng)方案及概要設(shè)計 11 4.1 系統(tǒng)方案設(shè)計 11 4.2 系統(tǒng)概要設(shè)計 11 4.2.1 系統(tǒng)層次模塊 11 4.2.2 系統(tǒng)流程 12 4.2.3. 數(shù)據(jù)庫設(shè)計 13 5 系統(tǒng)詳細(xì)設(shè)計及關(guān)鍵技術(shù) 15 5.
7、1 總體設(shè)計 15 5.1.1系統(tǒng)架構(gòu)模式 15 5.1.2用戶登錄設(shè)計 15 5.2 主要功能模塊設(shè)計和實現(xiàn) 16 5.2.1 管理員功能模塊 16 5.2.2 教師功能模塊 19 5.2.3 學(xué)生功能模塊 20 5.3 關(guān)鍵技術(shù)研究與分析 23 6 總結(jié) 27 致謝 28 參考文獻(xiàn) 29 II 20 1前言 伴隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,尤其是互聯(lián)網(wǎng)、寬帶技術(shù)在應(yīng)用中日益成熟,網(wǎng)絡(luò)技術(shù)已經(jīng)應(yīng)用到我們生產(chǎn)和生活的各個方面,成為不可缺少的工具。網(wǎng)絡(luò)的最大優(yōu)勢是對分散資源的高度整合能力,通過網(wǎng)絡(luò)可以突破時間和空間上的限制,使用戶能夠隨時隨地享用幾乎是無限的各種數(shù)據(jù)
8、資源,可以了解到最新、最及時的信息,并可進(jìn)行實時的交流,以便做出最合理高效的決策。 基于網(wǎng)絡(luò)的上述優(yōu)勢,應(yīng)用成熟的網(wǎng)絡(luò)技術(shù)來開發(fā)基于網(wǎng)絡(luò)的教學(xué)輔助系統(tǒng)在技術(shù)上是完全可以實現(xiàn)的。隨著科技的進(jìn)步與經(jīng)濟(jì)的繁榮,校園計算機(jī)網(wǎng)絡(luò)的建立與應(yīng)用已相當(dāng)普遍,它對內(nèi)綜合了校園中的計算機(jī)資源,對外建立了交換體系,更為快速的傳遞數(shù)據(jù)信息,初步達(dá)到了校園內(nèi)資源的共享。為此,我們可以發(fā)揮網(wǎng)絡(luò)的資源整和優(yōu)勢,將分散在校園各處的教學(xué)資源有機(jī)的結(jié)合起來,使有限的資源得到充分的利用,加大信息的流動效率,實現(xiàn)信息量的相對增加。 應(yīng)用網(wǎng)絡(luò)技術(shù)解決這些問題,一方面可以使當(dāng)前相當(dāng)急迫的人與資源的矛盾得到高效、合理的解決;另一方面又
9、實現(xiàn)了教學(xué)工作的信息化,符合當(dāng)今社會發(fā)展的方向,并為以后的改進(jìn)和發(fā)展提供了余地。同時,作為校園信息化先鋒的計算機(jī)系,也為實現(xiàn)學(xué)院信息化貢獻(xiàn)一份力量,起到好的帶頭作用。對于我們個人來說,希望通過這次畢業(yè)設(shè)計,達(dá)到提高自己專業(yè)水平和解決實際問題的能力,為以后步入社會打下良好的基礎(chǔ) 2 系統(tǒng)設(shè)計相關(guān)技術(shù) 該網(wǎng)上考試系統(tǒng)系統(tǒng)主要采用JSP、HTML、SQL Server數(shù)據(jù)庫等技術(shù)和工具,整體設(shè)計遵循軟件工程的方法,經(jīng)過需求分析、系統(tǒng)設(shè)計、詳細(xì)設(shè)計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)這幾個階段。下面就對這幾種技術(shù)和方法做一個概述。 2.1 系
10、統(tǒng)開發(fā)模式 進(jìn)入 90年代以來,計算機(jī)系統(tǒng)的發(fā)展出現(xiàn)兩個顯著的特點(diǎn):計算機(jī)系統(tǒng)由封閉系統(tǒng)走向開放系統(tǒng);計算機(jī)系統(tǒng)由集中式系統(tǒng)向分布式系統(tǒng)過渡??蛻魴C(jī) /服務(wù)器 (Client/ Server)模式Intranet(Brower/ server)就是這兩種趨勢的代表。 2.1.1 Client/Server模式及其特點(diǎn) 計算機(jī)技術(shù)的飛速發(fā)展使得計算機(jī)系統(tǒng)功能越來越強(qiáng),體積越來越小,價格也越來越便宜。與此同時,網(wǎng)絡(luò)技術(shù)也日臻完善,特別是局域網(wǎng)的廣泛應(yīng)用,使用戶能跨越空間的限制,實現(xiàn)資源共享。這些因素都促進(jìn)計算機(jī)系統(tǒng)向分布式系統(tǒng)過渡,客戶機(jī)/服務(wù)器模式正好滿足這種需要。 客戶機(jī)/服務(wù)器技術(shù)的
11、基本原理就是把數(shù)據(jù)處理與應(yīng)用程序分開,分別交給數(shù)據(jù)庫(server)和工作站(client)執(zhí)行。數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)僅需一次性存貯后可以被很多不同的應(yīng)用軟件存取。數(shù)據(jù)庫服務(wù)器處理的僅僅是數(shù)據(jù)請求,并將所請求的數(shù)據(jù)(而非整個文件)傳送給應(yīng)用程序。因此,對數(shù)據(jù)庫服務(wù)器來說,它的功能主要是:維護(hù)數(shù)據(jù)的完整性和安全性,錯誤恢復(fù)以及改善用戶并發(fā)存取和修改數(shù)據(jù)。而客戶機(jī)就集中在用戶和應(yīng)用程序之間的交互性作業(yè)。與其它類型的系統(tǒng)比較,Client/Server方式主要有以下一些特點(diǎn): 1) 具有更高的效率。它通過一種有效的任務(wù)分割,使服務(wù)器和工作站各司其職,極大地提高了整個計算機(jī)系統(tǒng)的性能,同樣的設(shè)備,運(yùn)
12、用不同的組合方式,就會得到完全不同的效果。同時,由于大部分?jǐn)?shù)據(jù)處理工作都轉(zhuǎn)給了數(shù)據(jù)庫服務(wù)器,網(wǎng)絡(luò)上傳輸?shù)闹饕菙?shù)據(jù)請求和少量的特定數(shù)據(jù),因此網(wǎng)絡(luò)擁擠狀況也得到很大的改善。 2) 具有更靈活的擴(kuò)展性。這種方式為用戶的設(shè)備更新提供了便利的途徑。因為系統(tǒng)的功能被一分為二,從理論上講,當(dāng)基本的軟、硬件設(shè)備更新時,如果不改變服務(wù)器的配置,就不會對前端產(chǎn)生任何影響。對用戶的應(yīng)用開發(fā)和培訓(xùn)方面的投資也進(jìn)行了最大程度的保護(hù)。 3) 工作站具有更大的獨(dú)立性。用戶不必局限于一種類型的系統(tǒng)和平臺。在一個以SQL Server為基礎(chǔ)的客戶機(jī)/服務(wù)器系統(tǒng)中,其工作站可以是IBM兼容的PC機(jī),Machintosh,U
13、nix工作站或它們的任意組合。此外,它們可以運(yùn)行若干種操作系統(tǒng)中的任意一種,如MS-DOS或PC- DOS,Microsoft windows,IBMOS/2或 Apple System7。這種工作站的獨(dú)立性的必然結(jié)果是應(yīng)用程序的獨(dú)立性,因為各種工作站并不都需要去使用相同的數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件,用戶可以繼續(xù)使用他所熟悉的軟件去訪問數(shù)據(jù)庫。 4) 數(shù)據(jù)具有更高的安全性。因為所有的數(shù)據(jù)處理工作都交給了數(shù)據(jù)庫管理系統(tǒng),它可以提供保護(hù)數(shù)據(jù)的任何服務(wù),諸如加密文件的存儲,訪問數(shù)據(jù)庫時的實時磁帶備份,磁盤鏡象等等。它還可以提供某種類型的事務(wù)處理,去保持對數(shù)據(jù)庫修改的跟蹤和糾正服務(wù)器崩潰情況下所出的問題
14、??蛻魴C(jī)/服務(wù)器技術(shù)的出現(xiàn)對信息技術(shù)具有巨大的影響,它促進(jìn)了分布式系統(tǒng)的發(fā)展,為異構(gòu)系統(tǒng)間的互連和互操作提供了良好的途徑,又更好地滿足聯(lián)機(jī)事務(wù)處理系統(tǒng)的需要。目前因特網(wǎng)上的網(wǎng)站大多采用這種方式未組建計算機(jī)系統(tǒng)。 但是,在C/S結(jié)構(gòu)中應(yīng)用系統(tǒng)被一分為二,前臺客戶機(jī)用于完成用戶的交互任務(wù),后臺服務(wù)器負(fù)責(zé)數(shù)據(jù)處理。C/S結(jié)構(gòu)是基于局域網(wǎng)環(huán)境的,具有較強(qiáng)的數(shù)據(jù)操縱和事務(wù)處理能力,對數(shù)據(jù)的安全性和完整性要求較高。但存在封閉性強(qiáng),兼容性差,擴(kuò)展性差,升級及維護(hù)性差的缺陷。 2.1.2Brower/Server模式及其特點(diǎn) 近年來,互聯(lián)網(wǎng)迅猛發(fā)展,基于圖形化的網(wǎng)絡(luò)瀏覽器的開發(fā),更加推動了環(huán)球信息網(wǎng)的發(fā)
15、展。隨著 Internet用戶數(shù)的迅速增加,TCP/IP協(xié)議已被各計算機(jī)與網(wǎng)絡(luò)廠商以及廣大用戶普遍接受。同時各單位內(nèi)部局域網(wǎng)普遍應(yīng)用,它們都想與 Internet連接以獲得更多的資源來滿足其經(jīng)營和發(fā)展的需要。從Client/ Server到Brower/Server已成為一種必然的趨勢。Brower/Server的基本思想是在內(nèi)部網(wǎng)絡(luò)上采用Internet的TCP/IP作為通訊協(xié)議,并以Internet的 Web模型作為標(biāo)準(zhǔn)平臺,通過簡單的瀏覽界面,方便地提供電子郵件,文件傳輸,電子公告和新聞數(shù)據(jù)查詢等服務(wù),還可以通過防火墻或代理服務(wù)器等方式與Internet連接以實現(xiàn)企業(yè)內(nèi)部網(wǎng)上的用戶對In
16、ternet進(jìn)行瀏覽查詢,同時對外提供信息服務(wù)。主要由三部分組成:瀏覽器,WWW服務(wù)器和后臺數(shù)據(jù)庫服務(wù)器。瀏覽器是一個標(biāo)準(zhǔn)的客戶端應(yīng)用軟件,為各種操作系統(tǒng)提供統(tǒng)一的操作界面;WWW服務(wù)器既可作瀏覽服務(wù)器,也可用作應(yīng)用服務(wù)器:作為瀏覽服務(wù)器時,用來存儲HTML文件,并通過HTTP協(xié)議在瀏覽器和服務(wù)器之間的連接,供用戶瀏覽;作為應(yīng)用服務(wù)器時,它存儲可執(zhí)行的應(yīng)用程序,并嵌套HTML文件,由用戶在客戶機(jī)上啟動,在服務(wù)器上執(zhí)行,并通過標(biāo)準(zhǔn)的通用網(wǎng)關(guān)接口程序(CGI)或各廠商提供的專用API訪問后臺數(shù)據(jù)庫運(yùn)行結(jié)果,再通過瀏覽器輸出,后臺數(shù)據(jù)庫則用來存取數(shù)據(jù)信息。這種方式具有如下的基本特征: 1) 以目標(biāo)
17、為中心,實現(xiàn)各類信息的包容與廣泛的信息共享。因為它突破傳統(tǒng)結(jié)構(gòu)的限制,人們可以輕易地以共同的興趣,共同的利益,共同的范圍,共同的工作目標(biāo)為中心組織信息交流,實現(xiàn)廣泛的信息共享。信息的提供者和使用者融為一體。 2) 技術(shù)的開放性它所基于的標(biāo)準(zhǔn)是開放的,非專用的,是經(jīng)過標(biāo)準(zhǔn)化組織制定的。以Web為核心的技術(shù)構(gòu)成了與平臺無關(guān)的統(tǒng)一而簡單的交流方式。 3) 在較低的管理成本的客戶機(jī)/服務(wù)器模式中,開發(fā)人員必須處理多種平臺,每個平臺上有不同的軟件和文件,必須在每一臺客戶機(jī)上進(jìn)行維護(hù)和升級,需要較高的成本。Web應(yīng)用具有較低維護(hù)費(fèi)用,允許在中心服務(wù)器上安裝應(yīng)用程序,需要時可將它下載到客戶機(jī),管理費(fèi)用低
18、。另外由于這種技術(shù)簡明易用,培訓(xùn)費(fèi)用也很低。 4) 自我服務(wù)。每個人都在這種信息系統(tǒng)上各取所需,無需他人幫助說明或解釋,能夠?qū)崿F(xiàn)客戶化的自我服務(wù)。 在B/S結(jié)構(gòu)中以WEB為中心,基于TCP協(xié)議和HTTP協(xié)議,改變了傳統(tǒng)C/S結(jié)構(gòu)下的客戶機(jī)/服務(wù)器的二層結(jié)構(gòu),形成客戶機(jī)/應(yīng)用服務(wù)器/數(shù)據(jù)服務(wù)器的三層結(jié)構(gòu)??蛻舳送ㄟ^瀏覽器發(fā)出WEB的HTTP請求,有WEB服務(wù)器接受客戶請求,通過接口訪問后臺數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器處理查詢請求,并將結(jié)果返回WEB服務(wù)器,最后由WEB服務(wù)器將結(jié)果轉(zhuǎn)化為HTML文檔及各種腳本傳回客戶端瀏覽器。B/S結(jié)構(gòu)大大減輕了客戶端的負(fù)擔(dān)。由于基于TCP/IP協(xié)議和HTTP協(xié)
19、議,很好的解決了跨平臺問題,系統(tǒng)的開放性,通用性強(qiáng),擴(kuò)展性強(qiáng),易于維護(hù)。但當(dāng)HTML文檔量大,將導(dǎo)致數(shù)據(jù)的傳輸效率降低。同時HTML文檔難以加密,安全性較差。 基于本系統(tǒng)的要求及上述特點(diǎn)介紹,B/S使用的三層結(jié)構(gòu)讓客戶端要求降低,將服務(wù)器端的事務(wù)邏輯和數(shù)據(jù)庫邏輯分開同時降低了服務(wù)器的負(fù)載,在當(dāng)前的應(yīng)用變的更加普遍。為此本系統(tǒng)將采用B/S模式,使這個開放式網(wǎng)上考試系統(tǒng)得到更廣泛的應(yīng)用。 2.1 JSP簡介 JSP(Java Server Pages)是由Sun Microsystems 公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),JSP技術(shù)在Servlet技術(shù)基礎(chǔ)上發(fā)展起來的
20、,它正在飛速發(fā)展中,現(xiàn)已成為Java服務(wù)器編程的重要組成部分[1]。在Sun正式發(fā)布JSP(Java Server Pages)之后,這種新的Web應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)上廣泛合作的結(jié)果。JSP為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨(dú)特的開發(fā)環(huán)境,是一種服務(wù)器端的應(yīng)用[2]。按照Sun的說法, JSP能夠適應(yīng)市場上包括Apache Web Server,IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。 JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力[3
21、]。在JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而嵌入的Java程序代碼則用來描術(shù)處理邏輯。普通的HTML頁面只依賴于Web服務(wù)器,而JSP頁面需要Java語言四擎分析并執(zhí)行程序代碼[4]。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。JSP是面向web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。 JSP文件首先被翻譯成標(biāo)準(zhǔn)的Servlet代碼,并被編譯為class文件,由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對JSP頁面的第一次請求發(fā)生時進(jìn)行。JSP技術(shù)是一種開放的、跨平臺的結(jié)構(gòu),因此,Web服務(wù)器及其組件能很容易升級或切換,且不會影響JSP基本
22、的應(yīng)用程序[5]。這一特點(diǎn)使JSP能夠適應(yīng)現(xiàn)實世界的各種Web應(yīng)用程序不斷的變化和發(fā)展。 2.1.1 JavaBean技術(shù)介紹 JavaBean技術(shù)是一種基于Java的組件技術(shù),JavaBean組件可以用來執(zhí)行復(fù)雜的計算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫的交互以及數(shù)據(jù)的提取等,是解決代碼重用問題的一種策略[6]。 以前的組件無法實現(xiàn)真正的代碼重用,其主要原因就是它們對于處理平臺的依賴和對開發(fā)語言的依賴過重[7]。由于Java語言在這些方面所具有的特點(diǎn)和優(yōu)勢,使得基于它的軟件JavaBean組件技術(shù)倍受人們的關(guān)注。它的任務(wù)就是:一次編寫,可以在任何地方執(zhí)行,可以在任何地方重用。JavaBean組件可以在
23、任何地方重用包括了可以在應(yīng)用程序、其他組件、文檔、Web站點(diǎn)和應(yīng)用程序構(gòu)造器工具等多種方案中再利用。 為了創(chuàng)建和使用Java軟件組件,JavaBean被實現(xiàn)為一種獨(dú)立于平臺和結(jié)構(gòu)的應(yīng)用程序接口,它的實現(xiàn)可以忽略內(nèi)部的結(jié)構(gòu)及細(xì)節(jié)問題,只需要定義其外部的特征及對外功能就行。其中,屬性、方法和事件三種接口可以獨(dú)立對外進(jìn)行開發(fā)。JavaBean的實質(zhì)就是一個.class文件,也可以成為類文件。JavaBean以binary格式保存,可以保護(hù)Java源代碼不容易被他人抄襲。 2.1.2 JSP的運(yùn)行原理 在JSP第一次獲得來自于客戶端瀏覽器的請求時,JSP文件將被JSP引擎(JSP engine)
24、轉(zhuǎn)換成一個Servlet,即將”.jsp”文件編譯成Java Class文件[8]。當(dāng)Servlet引擎接收到請求后,如果設(shè)置了使用最新的JSP,它就會去找JSP文件,檢查該文件在上次編譯后是否改動過。如果改動過,就會重新編譯生成新的Servlet,最終將請求轉(zhuǎn)交給編譯好的Servlet引擎執(zhí)行。 Client 客戶端 請求(Request) Web Server 響應(yīng)(Response) Server extension 服務(wù)器擴(kuò)展 Servlet引擎 JSP引擎 Servlet引擎 JSP引擎 Cl
25、ass loader Java complier JSP parser 類載入器 Java編譯器 JSP語法分析器 在編譯時如果發(fā)現(xiàn)JSP文件有任何語法錯誤,轉(zhuǎn)換過程將中斷,并向客戶端發(fā)出出錯信息;如果編譯成功,則所轉(zhuǎn)換產(chǎn)生的Servlet代碼被編譯,然后該Servlet被JSP引擎加載到內(nèi)存中。此時JSP引擎還請求了JspInit()方法的執(zhí)行,并對此Servlet初始化。JspInit()方法在Servlet的生命周期中只被請求一次,然后將被調(diào)用來處理客戶端的請求和回復(fù)操作。對于所有隨后對該JSP
26、文件的請求,服務(wù)器將檢查該JSP文件自最后一次被存取后是否經(jīng)過修改。如果沒有修改,則將請求交還給還在內(nèi)存中的Servlet的JspService()方法,執(zhí)行回復(fù)操作。由于Servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓?。JSP頁面在第一次訪問時由于要轉(zhuǎn)化和編譯,運(yùn)行速度較慢,但是當(dāng)?shù)诙卧L問該頁時,由于文件已經(jīng)被編譯成字節(jié)碼文件了,所以速度非常的快。 2.2 JSP數(shù)據(jù)庫訪問技術(shù) 在一個網(wǎng)站中,對數(shù)據(jù)庫的訪問是極為重要的一部分,網(wǎng)頁動態(tài)顯示部分的工作都是通過數(shù)據(jù)庫的訪問技術(shù)來實現(xiàn)的。JSP對數(shù)據(jù)庫的訪問技術(shù)有兩種實現(xiàn)方法,分別是JSP數(shù)據(jù)庫連接技術(shù)(JDBC技術(shù))和連接池(Connecti
27、on Pool)技術(shù)。 2.2.1 JDBC技術(shù)及實現(xiàn)方法 JDBC (Java DataBase Connetivity)是Java的開發(fā)者---Sun的Javasoft公司制訂的Java數(shù)據(jù)庫連接技術(shù)的簡稱,可為各種常用數(shù)據(jù)庫提供無縫連接技術(shù)。JDBC也是Java用于訪問數(shù)據(jù)庫的一套標(biāo)準(zhǔn)API,由Java語言編寫的一組類與接口組成[9]。JDBC作為一種數(shù)據(jù)庫訪問技術(shù),具有以下優(yōu)點(diǎn): (1)JDBC易于掌握,JDBC和ODBC都是基于同樣的技術(shù)接口—X/Open SQL之上,所以JDBC API與ODBC十分相似,有利于用戶理解,ODBC用戶可以迅速掌握J(rèn)DBC技術(shù)。 (2)使用簡
28、單,因為JDBC是以類的形式提供API支持,很大程度上實現(xiàn)了對數(shù)據(jù)庫操作的封裝。因此,編程人員易于使用JDBC進(jìn)行數(shù)據(jù)庫編程。. (3) 可移植性強(qiáng),現(xiàn)在提供對JDBC支持的數(shù)據(jù)庫系統(tǒng)越來越多,使用JDBC編程可以不用對程序進(jìn)行任何改變而移植到其它的數(shù)據(jù)庫系統(tǒng)上。 (4) JDBC-ODBC橋技術(shù),Java提供了JDBC-ODBC橋技術(shù),可以讓用戶非常方便、高效地使用現(xiàn)有的ODBC數(shù)據(jù)庫系統(tǒng),用戶使用JDBC-ODBC橋驅(qū)動器將JDBC函數(shù)調(diào)用轉(zhuǎn)換為ODBC調(diào)用,不用改變自己的數(shù)據(jù)庫系統(tǒng)就可以將應(yīng)用平臺向Java轉(zhuǎn)變。 (5)良好的可復(fù)用性,JDBC API是面向?qū)ο蟮?,用戶可以將常用?/p>
29、對數(shù)據(jù)庫訪問的方法封裝為一個類(JavaBean),通過對其調(diào)用實現(xiàn)對代碼的有效復(fù)用。 (6)適用范圍廣,JDBC不僅可以使用在Java Application和JSP中,同時JDBC也可以使用在JavaBean, Enterprise JavaBean和Java Applet中,甚至可以通過一定的數(shù)字簽名技術(shù)使用在Java Applet中,實現(xiàn)對客戶端本地數(shù)據(jù)庫的訪問。 通過JDBC專用驅(qū)動程序?qū)崿F(xiàn)數(shù)據(jù)庫訪問的方法是通過Java提供的用于各種數(shù)據(jù)庫(MS SQL Server, Oracle, MySQL, Sybase等)的專用驅(qū)動程序來實現(xiàn)對數(shù)據(jù)庫的訪問。在使用這種方法之前,首先將相
30、關(guān)的數(shù)據(jù)庫專用驅(qū)動程序放到服務(wù)器的ClassPath路徑下,然后在JSP程序中創(chuàng)建數(shù)據(jù)庫連接就可以使用數(shù)據(jù)庫中的信息進(jìn)行數(shù)據(jù)處理操作。這里介紹一種通過使用JDBC專用驅(qū)動程序—instead。來實現(xiàn)查詢MS SQL Server數(shù)據(jù)庫的應(yīng)用實例,程序代碼如下: <%…… try{ Class.forName(“ connection.tds.TdsDriver”); //加載驅(qū)動程序 String url= “jdbc;inetdae:127.0.4.1:1433?database=pubs& charset=GB2312&sgl7 = tr
31、ue” ; Connection con=DriverManager.getConnection(url, “sa”, “”); //建立數(shù)據(jù)庫連接 Statement stmt=con.createStatement(); //建立對象 ResultSet rs=stmt.executeQuery( “select*from employee”); while (rs.next()){……} }
32、 //建立顯示處理 catch(SQL Exception e) (out.print(e.getMssage();) ……%> 通過引用JavaBean執(zhí)行對數(shù)據(jù)庫的連接和對數(shù)據(jù)庫記錄的各種處理操作,提高了代碼的重用程度,大大簡化了程序設(shè)計的復(fù)雜度,發(fā)揮了組件技術(shù)的特點(diǎn),提高了程序設(shè)計的效率。 JDBC作為一種數(shù)據(jù)庫訪問技術(shù)具有使用簡單、易于編寫和維護(hù)、可移植性強(qiáng)等優(yōu)點(diǎn),可以高效率地實現(xiàn)數(shù)據(jù)庫的連接。但是JDBC技術(shù)也有一定的局限性,如訪問速度較低,在建立與數(shù)據(jù)庫的連接時需要
33、耗費(fèi)較多的時間,而且數(shù)據(jù)庫所能支持的并發(fā)連接數(shù)量有限,過多的并發(fā)連接將導(dǎo)致數(shù)據(jù)庫運(yùn)行效率的下降[9]。隨著客戶訪問數(shù)據(jù)庫的數(shù)量不斷增加,數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)也會越來越重,嚴(yán)重時將導(dǎo)致系統(tǒng)癱瘓,這種缺陷使JDBC技術(shù)在大型的信息網(wǎng)站中的應(yīng)用受到了限制。 2.2.2連接池技術(shù)及實現(xiàn)方法 數(shù)據(jù)庫連接池(Connection pool)技術(shù)可以解決JDBC技術(shù)效率低下、耗費(fèi)時間和并發(fā)連接數(shù)量有限等缺陷。數(shù)據(jù)庫連接池技術(shù)在應(yīng)用程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池,由應(yīng)用程序動態(tài)地對連接池中的連接進(jìn)行申請、使用和釋放。此外,應(yīng)用程序還可以根據(jù)池中連接的使用率,動態(tài)地增加或減少池中數(shù)
34、據(jù)庫的連接數(shù)目,這樣可以提高對數(shù)據(jù)庫請求的訪問速度,增強(qiáng)數(shù)據(jù)庫并發(fā)請求的處理能力,不會因為過多的并發(fā)請求而導(dǎo)致數(shù)據(jù)庫服務(wù)器的癱瘓。 數(shù)據(jù)庫連接池的工作原理是首先獲得對連接池或者管理連接池的一個對象的引用,這一工作由一個PoolManager類完成,這個類管理ConnectionPool類的多個實例,每個ConnectionPool管理JDBC Connection對象的一個連接池。當(dāng)有數(shù)據(jù)庫訪問請求時,就從連接池中獲得一個連接對象Connection,每個對象負(fù)責(zé)一個.JDBC URL和相應(yīng)的數(shù)據(jù)庫登錄賬戶的名稱和密碼,對數(shù)據(jù)庫的訪問結(jié)束后將這個連接返還連接池[10]。這樣,在一個大型的WE
35、B站點(diǎn)中,當(dāng)用戶訪問請求的數(shù)量不斷增加的時候,數(shù)據(jù)庫連接技術(shù)將使數(shù)據(jù)庫系統(tǒng)更加有效地運(yùn)行,保證系統(tǒng)正常工作。 使用連接池技術(shù)實現(xiàn)查詢MS SQL Server數(shù)據(jù)庫的程序代碼如下: <%…… //引用相關(guān)的packages try{ Class.forName(" com.codestudio.sql.Poolman"); //加載Poolman驅(qū)動程序 Connectioncon=DriverManager.getConnection(" jd
36、bc:poolman:llpubs"); //建 立 數(shù) 據(jù) 庫 連 接 Statement stmt=con.createStatement(); //建立對象 ResultSet rs=stmt.executeQuery(" select*frome mployee"); while( rs.ne xt() ){……} //數(shù)據(jù)顯示處理 } catch(SQLException e) {out.print(e .getMessage() );} ……%>
37、通過使用連接池技術(shù)可以管理一組Connection連接對象和應(yīng)用程序,在用戶發(fā)出連接數(shù)據(jù)庫請求時,直接從連接池獲得一個數(shù)據(jù)庫連接對象,并且每個連接對象可以被多個應(yīng)用程序共享,使用完后將連接對象返還給連接池,避免因頻繁使用數(shù)據(jù)庫而造成數(shù)據(jù)庫的效率下降,大大提高了程序的使用效率,同時還可以通過連接池自身的管理機(jī)制來監(jiān)視數(shù)據(jù)庫的數(shù)量、使用情況等。 3 系統(tǒng)需求分析 3.1 系統(tǒng)功能分析 (1)系統(tǒng)需要經(jīng)過有效的身份驗證才可以登錄。 (2)將登錄本系統(tǒng)的身份定為三種:一是管理員,二是教師,三是學(xué)生,只有被授權(quán)的用戶才可以使用本系統(tǒng)的功能。 (3)系統(tǒng)提供合法學(xué)生進(jìn)行考試并對其監(jiān)控的功
38、能。 (4)系統(tǒng)提供對學(xué)生成績統(tǒng)計和查詢的功能。 (5)管理員可以管理所有用戶的注冊信息,并有管理系統(tǒng)內(nèi)所有資源的權(quán)限。 (6)教師可以管理題庫和對自己生成的試卷進(jìn)行發(fā)布和取消發(fā)布,但不能管理其他教師編排的試卷。 (7)用戶的身份不同,使用的系統(tǒng)資源也不同。學(xué)生只可以參加考試和成績查詢。管理員的權(quán)限在教師之上,他擁有整個系統(tǒng)的全部使用權(quán)。 (8)系統(tǒng)要提供將分析的成績打印出來的功能。 系統(tǒng)采用B/S模式,考生注冊、考試實現(xiàn)、及考試成績查詢可由各考試機(jī)瀏覽器完成;學(xué)生考試過程中向服務(wù)器請求試題到本地機(jī),答案存于服務(wù)器;學(xué)生信息審核、題庫管理、自動組卷、考試控制、系統(tǒng)評分等核心業(yè)務(wù)邏輯
39、由WEB服務(wù)器(考試中心服務(wù)器)完成。 3.2 系統(tǒng)性能需求分析 為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效地運(yùn)行,網(wǎng)上考試系統(tǒng)應(yīng)該滿足以下性能需求: 1) 系統(tǒng)處理的準(zhǔn)確性和及時性 系統(tǒng)處理的準(zhǔn)確性和及時性是系統(tǒng)的必要性能。查詢時應(yīng)保證查全率,所有相應(yīng)域包含查詢關(guān)鍵字的記錄都應(yīng)能查到。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足學(xué)校對信息處理的需求。響應(yīng)時間,更新處理時間都比較迅速,完全滿足用戶要求。一般操作的響應(yīng)時間應(yīng)在1-2s內(nèi),對數(shù)據(jù)的導(dǎo)入、導(dǎo)出、軟磁盤和打印機(jī)的
40、操作也應(yīng)在可接受的時間內(nèi)完成。 2) 系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性 系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如,用戶查詢的需求也會不斷地更新和完善。求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實現(xiàn)這一點(diǎn),應(yīng)通過系統(tǒng)的開放性來完成,即系統(tǒng)應(yīng)是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單地加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補(bǔ)、替換,完成系統(tǒng)的升級和更新?lián)Q代。 3) 系統(tǒng)的易用性和易維護(hù)性 系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機(jī)并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文
41、信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。 4) 系統(tǒng)的標(biāo)準(zhǔn)性 系統(tǒng)在設(shè)計、開發(fā)、使用過程中,要涉及很多計算機(jī)硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標(biāo)準(zhǔn)。例如,在開發(fā)中使用的操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、開發(fā)工具都必須符合通用標(biāo)準(zhǔn)。 3.3 設(shè)計原則 1) 合理性原則 2) 系統(tǒng)的設(shè)計要求既能體現(xiàn)考試的嚴(yán)肅性,通過考試能真實地反應(yīng)出學(xué)生對知識的掌握情況,又要兼顧Internet的特點(diǎn),為學(xué)生設(shè)計出快捷、方便的答題功能; 3) 安全性原則 4) 網(wǎng)上考試系統(tǒng)模塊測驗考試的任何一個關(guān)鍵環(huán)節(jié)均需要身份驗證,考試過程中的數(shù)據(jù)傳輸及存儲均要經(jīng)過
42、嚴(yán)格的加密;在設(shè)計中將題庫、卷庫與考試過程中所使用的WEB數(shù)據(jù)庫服務(wù)器分開,充分保證題庫與試卷庫的安全性; 5) 可擴(kuò)充性原則 6) 系統(tǒng)要具有良好的可擴(kuò)充性,能根據(jù)網(wǎng)上考試系統(tǒng)模塊測驗考試的要求,進(jìn)行相應(yīng)的擴(kuò)展; 7) 先進(jìn)性原則 8) 從開發(fā)工具的選擇到系統(tǒng)設(shè)計均采用國際、國內(nèi)先進(jìn)IT相關(guān)技術(shù)。 4 系統(tǒng)方案及概要設(shè)計 4.1 系統(tǒng)方案設(shè)計 考試系統(tǒng)的用戶分為管理員、教師和學(xué)生三種,工作流程分為系統(tǒng)管理、題庫與組卷和考試及批閱三個階段;支持系統(tǒng)的數(shù)據(jù)庫分為:考試監(jiān)控庫、資源庫、用戶信息庫、題目庫、試卷庫、答題庫和成績庫。系統(tǒng)的功能模塊分別為:用戶管理
43、、資源管理、試題編制、試題管理、試卷生成、考試與提交、試卷評分、成績?nèi)霂?、成績查詢等? 系統(tǒng)方案描述:進(jìn)入系統(tǒng),首先需要登錄,然后根據(jù)分配的權(quán)限,可以進(jìn)行相應(yīng)的操作。 (1)系統(tǒng)管理員初始化系統(tǒng) 管理員需要對系統(tǒng)初始化參數(shù)進(jìn)行設(shè)置:資源管理(添加科目、院系和班級);用戶管理(此項包含用戶權(quán)限分配)。 (2)題庫管理 合法登錄的教師可以進(jìn)行如下操作:選擇科目所在的院系->選擇添加題目所在科目->選擇添加題目的題型->添加題目、選項和正確答案->提交。 (3)生成試卷 合法登錄的教師可以進(jìn)行如下操作:選擇試卷類型->選擇系別(院系)->選擇科目->填寫考試時間->填寫試卷中的題型及題
44、量->提交。 (4)發(fā)布試卷 合法登錄的教師可以進(jìn)行如下操作:點(diǎn)擊試卷發(fā)布->選擇試卷點(diǎn)擊“發(fā)布試卷”(或“取消發(fā)布” )->在發(fā)布試卷(或未發(fā)布試卷)表中出現(xiàn)相應(yīng)試卷。 (4)考試與提交 合法登錄的學(xué)生可以進(jìn)行如下操作:選擇一套沒有參加過的考試試卷->進(jìn)入考試->完成考試后提交試卷,系統(tǒng)將會自動評卷,給出成績并存入數(shù)據(jù)庫。 (5)成績查詢 合法登錄的學(xué)生可以進(jìn)行如下操作:點(diǎn)擊成績查詢->可看到自己參加的所有考試成績記錄->填寫高級查詢條件->點(diǎn)擊搜索->查看其他學(xué)生成績。 4.2 系統(tǒng)概要設(shè)計 4.2.1 系統(tǒng)層次模塊 根據(jù)系統(tǒng)的功能需求分析,將本系統(tǒng)劃分為以下幾個模塊:
45、 用戶登錄 用戶管理模塊 資源管理模塊 題庫管理模塊 控制中心模塊 試卷管理模塊 考試評分模塊 圖4.1 系統(tǒng)功能模塊 各個模塊包含主要功能如下: (1)用戶管理模塊:包括三種帳戶(管理員、教師和學(xué)生)的查詢、添加、刪除和修改功能。 (2)資源管理模塊:包括系統(tǒng)資源(院系、科目和班級)的查詢、添加、刪除和修改功能。 (3)控制中心模塊:包括查看考試進(jìn)行中的情況功能。包括已交卷和未交卷的人數(shù)以及按條件查找考生的考試情況。 (4)題庫管理模塊:包括題庫中所有題目的查詢、添加、刪除和修改功能。 (5)試卷管理模塊:包括生成試卷和發(fā)布試卷(或取消發(fā)布)功能。 (6)考試
46、評分模塊:包括學(xué)生請求試卷、進(jìn)行答題、提交試卷、給出評分和記錄成績功能。 其中管理員權(quán)限下有用戶管理模塊、資源管理模塊和控制中心模塊;教師權(quán)限下有題庫管理模塊和試卷管理模塊;學(xué)生權(quán)限下有考試評分模塊。 4.2.2 系統(tǒng)流程 用戶登錄時選擇身份,根據(jù)身份的不同跳轉(zhuǎn)到不同的頁面。 (1)管理員具有對整個系統(tǒng)的管理權(quán)限,可以管理所有用戶,管理系統(tǒng)資源,以及對考試過程控制。 (2)教師則有權(quán)對題庫進(jìn)行管理,包括對題庫的添加,刪除和修改;對試卷管理,包括生成試卷和發(fā)布試卷,但僅限發(fā)布自己創(chuàng)建的試卷。 (3)學(xué)生能參加考試和成績查詢,考試中有倒計時功能和定時提醒的功能。 4.2.3. 數(shù)
47、據(jù)庫設(shè)計 各數(shù)據(jù)表的設(shè)計: (1)管理員信息admini表:存儲管理員的基本信息; (2)教師信息teacher表:存儲教師的基本信息; (3)學(xué)生信息student表:存儲學(xué)生的基本信息; (4)題庫pool表:包含問題、選項和答案等; (5)試卷屬性paper表:存儲的基本屬性表; (6)被抽取的問題question表:存儲根據(jù)試卷屬性抽取的題目及選項,用來組成試卷的所有題目; (7)監(jiān)控monitor表:此表為一個臨時表,存儲學(xué)生進(jìn)入考試狀態(tài)的相關(guān)信息; (8)院系department表:存儲所有的院系信息; (9)班級class表:存儲所有的班級信息; (10)科
48、目subject表:存儲所有科目信息; (11)答題answer表:存儲學(xué)生提交的答案; (12)成績score表:存儲學(xué)生的考試成績; 表4.1學(xué)生信息表 名稱 字段名 數(shù)據(jù)類型 主鍵 非空 用戶名 username char(20) YES YES 密碼 password char(20) NO NO 姓名 name varchar(50) NO NO 性別 sex char(2) NO NO 出生日期 birthday datetime(8) NO NO 系別 deptname varchar(50) NO NO
49、 專業(yè) profession varchar(50) NO NO 班級 class varchar(50) NO NO 學(xué)號 num int(4) NO NO 電子郵箱 email varchar(50) NO NO 狀態(tài) state int(4) NO NO 身份等級 tpri int(4) NO NO 表4.2 試卷屬性表 名稱 字段名 數(shù)據(jù)類型 主鍵 非空 試卷號 papered int (4) YES YES 試卷類型 paperhead varchar(50) NO NO 科目 subjn
50、ame varchar(50) NO NO 院系 deptname varchar(50) NO NO 狀態(tài) state int (4) NO NO 考試時間 time int (4) NO NO 創(chuàng)建者 creatby varchar(50) NO NO 表4.3 題庫表 名稱 字段名 數(shù)據(jù)類型 主鍵 非空 問題號 sequence int(4) YES YES 科目 subj varchar(50) NO NO 題型 type varchar(50) NO NO 問題 question varch
51、ar(250) NO NO 選項1 option1 varchar(250) NO NO 選項2 option2 varchar(250) NO NO 選項3 option3 varchar(250) NO NO 選項4 option4 varchar(250) NO NO 答案 answer varchar(5) NO NO 表 4.4 院系信息表 名稱 字段名 數(shù)據(jù)類型 主鍵 非空 院系編號 deptcode char(10) YES YES 院系名稱 deptname varchar(50) NO NO
52、 表4.5 班級信息表 名稱 字段名 數(shù)據(jù)類型 主鍵 非空 院系名稱 deptname varchar(50) YES YES 班級編號 classcode char(10) YES YES 班級名稱 classname varchar(50) NO NO 人數(shù) total int(4) NO NO 數(shù)據(jù)庫連接是此系統(tǒng)最為重要的一部分,Java中連接數(shù)據(jù)庫的技術(shù)是JDBC (Java Database Connectivity)。大多數(shù)數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動程序, Java程序就通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取、插入
53、數(shù)據(jù)等等操作。另外Sun公司還開發(fā)了JDBC-ODBC橋,用此技術(shù)Java程序就可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫。 5 系統(tǒng)詳細(xì)設(shè)計及關(guān)鍵技術(shù) 5.1 總體設(shè)計 5.1.1系統(tǒng)架構(gòu)模式 本系統(tǒng)采用三層B/S架構(gòu)模式,即客戶端瀏覽器、應(yīng)用服務(wù)器和數(shù)據(jù)庫。這種結(jié)構(gòu)不僅把客戶機(jī)從沉重的負(fù)擔(dān)和不斷對其提高的性能的要求中解放出來,也把技術(shù)維護(hù)人員從繁重的維護(hù)升級工作中解脫出來。由于客戶機(jī)把事務(wù)處理邏輯部分分給了功能服務(wù)器,使客戶機(jī)一下子“苗條”了許多,不再負(fù)責(zé)處理復(fù)雜計算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,所以維護(hù)人員不再為程序的維護(hù)工作奔波于每個客戶機(jī)之間,而把主要精力放在功能服務(wù)器上
54、程序的更新工作。這種三層結(jié)構(gòu)層與層之間相互獨(dú)立,任何一層的改變不影響其它層的功能。它從根本上改變了傳統(tǒng)的二層C/S體系結(jié)構(gòu)的缺陷,是應(yīng)用系統(tǒng)體系結(jié)構(gòu)中一次深刻的變革。 圖 5.1系統(tǒng)構(gòu)架模式圖 5.1.2用戶登錄設(shè)計 所有用戶都通過主界面調(diào)用login.jsp文件驗證用戶身份,根據(jù)不同身份轉(zhuǎn)向相應(yīng)驗證程序,驗證過程需要檢索數(shù)據(jù)庫中的用戶信息表,檢查用戶名是否存在且密碼是否匹配。根據(jù)不同的結(jié)果調(diào)用不同的頁面。 5.2 主要功能模塊設(shè)計和實現(xiàn) 下圖為本系統(tǒng)的登陸主界面,用戶通過本界面登陸系統(tǒng)來完成功能。 圖5.2登陸主界面 5.2.1 管理員功能模塊 管理員具有三個模塊
55、功能,包括帳戶管理、資源管理和監(jiān)控中心。其中帳戶管理可以對自身、教師和學(xué)生信息進(jìn)行查詢、添加、修改和刪除操作;資源管理可以對系統(tǒng)中的院(院系)和科目進(jìn)行相同操作。而監(jiān)控中心則是對正在考試中的情況進(jìn)行時實查看。 1.管理員登錄 輸入:管理員的用戶名,密碼。 處理:判斷用戶名和密碼是否有效。填入用戶名和密碼后點(diǎn)擊[登錄]按扭,系統(tǒng)將自動從數(shù)據(jù)庫中的管理員信息表中判斷是否存在相同的管理員用戶名和密碼,如果有則進(jìn)入系統(tǒng),如果不存在則提示用戶名和密碼有錯誤信息。 輸出:登錄成功,進(jìn)入管理員的系統(tǒng)使用資源頁面,不成功則顯示錯誤信息頁面。 2. 帳戶管理 (1)自身帳戶 輸入:新密碼,姓名,性
56、別,院系,工作證號和電子郵箱。 處理:填入工作證號,密碼和其他必要的信息后點(diǎn)擊[修改]按扭,系統(tǒng)將自動從數(shù)據(jù)庫中的管理員信息表中判斷是否存在相同的管理員和密碼,如果有則修改管理員信息表,不成功則顯示錯誤信息頁面。 輸出:修改成功,進(jìn)入管理員的登錄頁面,不成功則顯示錯誤信息頁面。 (2)教師帳戶 輸入:新密碼,姓名,性別,院系,工作證號和電子郵箱。 處理:填入必要的信息后點(diǎn)擊[修改信息]按扭,系統(tǒng)將自動從數(shù)據(jù)庫中的教師信息表中判斷是否存在相同的該條記錄,如果有則修改教師信息表,不成功則顯示錯誤信息頁面。 輸出:修改成功則返回到教師信息查詢頁面,不成功則顯示錯誤信息頁面。 (3)學(xué)生
57、帳戶 輸入:用戶名,新密碼,確認(rèn)密碼,姓名,性別,出生日期,院系,專業(yè),班級,學(xué)號,電子郵箱(可選)和狀態(tài)。 處理:填入必要的信息后點(diǎn)擊[修改信息]按扭,系統(tǒng)將自動從數(shù)據(jù)庫中的學(xué)生信息表中判斷是否存在相同的該條記錄,如果有則修改學(xué)生信息表,不成功則顯示錯誤信息頁面。 輸出:修改成功則返回到學(xué)生信息查詢頁面,不成功則顯示錯誤信息頁面。 圖5.3學(xué)生帳戶管理頁面 3. 資源管理 (1)添加院系 輸入:院系編號和院系名稱。 處理:先判斷編號是否已經(jīng)存在,若不存在則在department表中插入一條記錄;否則給出重新輸入的信息。 輸出:提交成功,提示成功信息,不成功則顯示錯誤
58、信息頁面。 (2)添加科目 輸入:院系,科目編號和科目名稱。 處理:先判斷編號是否已經(jīng)存在,若不存在則在subject表中插入一條記錄;否則給出重新輸入的信息。 輸出:提交成功,提示成功信息,不成功則顯示錯誤信息頁面。 (3)添加班級 輸入:所屬院系、班級編號、班級名稱和總?cè)藬?shù)。 處理:先判斷編號是否已經(jīng)存在,若不存在則在subject表中插入一條記錄;否則給出重新輸入的信息。 輸出:若提交成功,提示成功信息,否則顯示錯誤信息頁面。 圖5.4 班級管理頁面 4. 監(jiān)控中心 輸入:查找的字段名和關(guān)鍵字。 處理:根據(jù)用戶輸入的查詢條件,檢索數(shù)據(jù)庫中的考試情況mo
59、nitor表,列出符合條件的記錄,并根據(jù)狀態(tài)為“1”的表示未交卷的,狀態(tài)為“2”的表示已經(jīng)提交是試卷。 輸出:學(xué)生及對應(yīng)試卷信息。 圖 5.5考試管理監(jiān)控頁面 5.2.2 教師功能模塊 教師登錄后有兩個功能模塊:題庫管理和試卷管理。其中題庫管理包括查詢和添加功能,進(jìn)入查詢頁面后,可以對查出的題目進(jìn)行修改和刪除操作;試卷管理包括生成試卷和發(fā)布試卷功能。 1. 題庫管理 (1)題庫查詢 輸入:查找條件:題型,科目和關(guān)鍵字。 處理: 根據(jù)輸入的條件查找數(shù)據(jù)庫中pool表,將相應(yīng)的題目記錄顯示到頁面上。本頁還提供了分頁顯示的功能,可以電擊“上一頁”或“下一頁”來逐頁瀏覽,也可
60、以用“轉(zhuǎn)到第___頁”的跳轉(zhuǎn)功能,還提供直接轉(zhuǎn)到首頁和尾頁的功能。 輸出:若有相關(guān)記錄存在則顯示在頁面上,若沒有則頁面為空。 (2)添加題庫 輸入:科目、題型、問題、選項和正確答案。 處理:首先自動生成一個序號,當(dāng)用戶填寫完成后,點(diǎn)擊“提交”,Tomcat服務(wù)器將向數(shù)據(jù)庫服務(wù)器發(fā)出插入一條數(shù)據(jù)的請求,當(dāng)數(shù)據(jù)是合法的,數(shù)據(jù)庫服務(wù)器則執(zhí)行操作,完成后頁面將會轉(zhuǎn)到題庫查詢頁面。 輸出:若添加成功在題庫查詢頁面可以看到新添加的記錄。 圖5.6題庫管理頁面 2. 試卷管理 試卷管理模塊包括兩大功能:生成試卷和發(fā)布試卷 (1)生成試卷 輸入:試卷的基本屬性:試卷類型、院系、科目、考
61、試時間;以及試卷中將會出現(xiàn)的題型及其數(shù)量和分值;抽題方式。 處理:將試卷的基本屬性存儲到paper表中,以便作為學(xué)生在進(jìn)入考試時隨機(jī)抽取題目的依據(jù)。試卷屬性包括試卷類型、院系、科目、考試時間、以及題型和相對應(yīng)的分值。 輸出:得到一條試卷屬性記錄和定義的數(shù)目的題目記錄。 圖5.7試卷生成頁面 (2)發(fā)布試卷 輸入: 處理:向數(shù)據(jù)庫服務(wù)器請求查找狀態(tài)為0和為1的兩種試卷,分別顯示。點(diǎn)擊“更改狀態(tài)”欄下的“發(fā)布”或“取消發(fā)布”則能改變試卷的狀態(tài)屬性。 輸出:將兩種狀態(tài)不同的試卷分別顯示。 圖5.8試卷發(fā)布頁面 5.2.3 學(xué)生功能模塊 學(xué)生成功登陸頁面如下:
62、圖5.9學(xué)生成功登陸頁面 合法學(xué)生登錄后,具有兩個功能:一是參加考試;二是成績查詢。參加考試之前必須選擇一套試卷,然后讀取相關(guān)試題。在進(jìn)入考試之前還會出現(xiàn)一個確定提示。成績查詢可以查詢所有人的考試結(jié)果,也可按用戶條件查詢。 1. 參加考試 參加考試 輸入:試卷名 處理:根據(jù)試卷名,獲得試卷屬性,再根據(jù)試卷屬性隨機(jī)抽取試題。首先將該題型的問題序號按原有順序放入一個向量(Vector)中,然后隨機(jī)抽取兩個問題序號交換位置,重復(fù)上一步操作,直到打亂了原有序號,再按順序提取出問題序號對應(yīng)的題目放入到question表中去。再讀取question表中的題目返回給客戶端,則進(jìn)入了考試狀態(tài),同時添
63、加一條記錄到考試情況表monitor中,狀態(tài)為“1”,利用monitor表中的記錄防止學(xué)生重復(fù)參加考試,當(dāng)試卷被“取消發(fā)布”后將會清除monitor中的記錄,防止該表數(shù)據(jù)無限增加。 輸出:試卷內(nèi)容(問題和選項)、考試成績。 下圖為學(xué)生正常登錄后的考試頁面截圖: 圖5.10學(xué)生考試頁面 學(xué)生使用帳號登錄系統(tǒng),進(jìn)行考試,考試系統(tǒng)自動處理學(xué)生的考試信息。首先進(jìn)入考試登錄窗口進(jìn)行登錄,輸入正確的帳號與密碼,否則系統(tǒng)會提示錯誤。學(xué)生登陸正確后,進(jìn)入考試系統(tǒng),開始進(jìn)行考試,考試系統(tǒng)自動進(jìn)行計時。 學(xué)生點(diǎn)“交卷”按紐以后,系統(tǒng)會給出提示,如果確定要交卷,可以點(diǎn)擊“確定”,否則點(diǎn)擊“取消”,學(xué)生
64、可以繼續(xù)答題。 在規(guī)定考試時間結(jié)束時,考試系統(tǒng)將自動為學(xué)生交卷,學(xué)生自動退出考試系統(tǒng)。 學(xué)生在考試完成提交后就會看到考試成績,效果如下: 圖5.11學(xué)生考試結(jié)果頁面 2. 成績查詢 成績查詢 輸入:用戶信息(系別,專業(yè),班級,學(xué)號,姓名) 處理:向數(shù)據(jù)庫服務(wù)器請求查詢score表,將自己所有考試成績的記錄顯示在頁面上。輸入高級查詢條件,點(diǎn)擊查詢,將顯示其他學(xué)生成績。 輸出:符合條件的記錄(姓名,學(xué)號,班級,專業(yè),系別,試卷標(biāo)題,成績) 學(xué)生成功登入頁面中點(diǎn)擊成績查詢,將會出現(xiàn)成績查詢頁面,如下圖: 圖5.12學(xué)生成績查詢頁面 5.3 關(guān)鍵技術(shù)研究與分析 (1)
65、分頁功能的實現(xiàn) 在本系統(tǒng)中分頁功能是用html語言和內(nèi)嵌的java語言相結(jié)合實現(xiàn)的,具體過程如下: int pageLine=5; //定義并初始化每頁顯示的記錄數(shù) int totalRec=0; //定義并初始化記錄總數(shù) int intPage=1; //定義并初始化轉(zhuǎn)到的頁碼 int intPageCount=0; //定義并初始化劃分的頁數(shù) int i; //指向記錄的指針變量 if (request.getParameter("page")!=null) intPage=Integer.parseInt(request.getParameter("page"
66、)); try{ ResultSet rs1=null; rs1=poolquery.executeQuery(countsql); // countsql為檢索記錄總數(shù)的SQL語句 if(rs1.next()) totalRec=rs1.getInt("cnt"); if(pageLine>totalRec) //如果記錄總數(shù)小于每頁記錄數(shù) pageLine=totalRec; //檢索到的記錄數(shù)就為每頁記錄數(shù) rs1.close(); } catch(Exception e){ e.printStackTrace(); } intPageCount=(totalRec+pageLine-1)/pageLine; //獲得劃分的頁數(shù) if(intPageCount>0){ ResultSet rs2=poolquery.executeQuery(querysql); for(i=1;i<=(intPage-1)*pageLine;i++) //控制頁數(shù) rs2.next(); for(i=1;i<=pageLine;i++)
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版小學(xué)數(shù)學(xué)五年級下冊圖形的運(yùn)動(三)-1課件
- 供應(yīng)鏈管理方法
- 2019最新青島版數(shù)學(xué)一年級上冊第三單元《走進(jìn)花果山-10以內(nèi)的加減法》(信息窗6)課件
- 第四章勞動中的心理、生理狀態(tài)對安全的影響
- 201x九年級物理上冊-雙休作業(yè)八(新版)教科版課件
- 課件:項目一-電子商務(wù)物流系統(tǒng)規(guī)劃
- 【人教版】2012-2013學(xué)年九年級(全一冊)數(shù)學(xué)小復(fù)習(xí):第27章相似復(fù)習(xí)課件
- 消化腺(全英文)課件
- 小學(xué)語文資源五年級上冊課件《落花生》課件第一課時
- 納米材料的基本效應(yīng)課件
- 分析化學(xué)概論-課件
- 沉浸式光影解決方案課件
- 第六講加固Windows操作系統(tǒng)安全ppt課件
- 民主選舉投出理性一票ppt課件
- 高二數(shù)學(xué)選修正態(tài)分布推薦實用全套PPT