基于J2EE架構的在線考試系統(tǒng)-免費畢業(yè)設計論文_第1頁
基于J2EE架構的在線考試系統(tǒng)-免費畢業(yè)設計論文_第2頁
基于J2EE架構的在線考試系統(tǒng)-免費畢業(yè)設計論文_第3頁
基于J2EE架構的在線考試系統(tǒng)-免費畢業(yè)設計論文_第4頁
基于J2EE架構的在線考試系統(tǒng)-免費畢業(yè)設計論文_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于J2EE架構的在線考試系統(tǒng)目錄 TOC o 1-4 h z HYPERLINK l _Toc73948867 摘要: PAGEREF _Toc73948867 h 3 HYPERLINK l _Toc73948868 Abstract: PAGEREF _Toc73948868 h 4 HYPERLINK l _Toc73948869 1 引言 PAGEREF _Toc73948869 h 5 HYPERLINK l _Toc73948870 2 在線考試系統(tǒng)構架 PAGEREF _Toc73948870 h 5 HYPERLINK l _Toc73948871 2.1 在線考試系統(tǒng)一般需

2、求分析 PAGEREF _Toc73948871 h 5 HYPERLINK l _Toc73948872 2.2 當前在線考試系統(tǒng)現(xiàn)狀分析 PAGEREF _Toc73948872 h 6 HYPERLINK l _Toc73948873 2.3 基于J2EE的在線考試系統(tǒng)架構介紹及擁有的優(yōu)勢 PAGEREF _Toc73948873 h 6 HYPERLINK l _Toc73948874 2.3.1 結構總體介紹 PAGEREF _Toc73948874 h 6 HYPERLINK l _Toc73948875 2.3.2 客戶層組件 PAGEREF _Toc73948875 h 7 H

3、YPERLINK l _Toc73948876 Applets PAGEREF _Toc73948876 h 7 HYPERLINK l _Toc73948877 應用程序客戶端 PAGEREF _Toc73948877 h 7 HYPERLINK l _Toc73948878 2.3.3 WEB層組件 PAGEREF _Toc73948878 h 7 HYPERLINK l _Toc73948879 2.3.4 業(yè)務層組件 PAGEREF _Toc73948879 h 7 HYPERLINK l _Toc73948880 2.3.5 企業(yè)信息系統(tǒng)層 PAGEREF _Toc73948880

4、h 8 HYPERLINK l _Toc73948881 2.3.6 J2EE架構的優(yōu)勢 PAGEREF _Toc73948881 h 8 HYPERLINK l _Toc73948882 3 測試系統(tǒng)具體設計 PAGEREF _Toc73948882 h 9 HYPERLINK l _Toc73948883 3.1 基于J2EE的E-nettest在線考試系統(tǒng)構架概要 PAGEREF _Toc73948883 h 9 HYPERLINK l _Toc73948884 3.1.1 E-nettest系統(tǒng)結構 PAGEREF _Toc73948884 h 9 HYPERLINK l _Toc73

5、948885 3.1.2 E-nettest數(shù)據(jù)流程 PAGEREF _Toc73948885 h 10 HYPERLINK l _Toc73948886 3.2 E-nettest考試系統(tǒng)環(huán)境設置 PAGEREF _Toc73948886 h 11 HYPERLINK l _Toc73948887 3.3 E-nettest總體功能介紹 PAGEREF _Toc73948887 h 11 HYPERLINK l _Toc73948888 3.4 E-nettest模塊設計 PAGEREF _Toc73948888 h 11 HYPERLINK l _Toc73948889 3.5 E-net

6、test數(shù)據(jù)庫設計 PAGEREF _Toc73948889 h 13 HYPERLINK l _Toc73948890 4 關鍵技術 PAGEREF _Toc73948890 h 14 HYPERLINK l _Toc73948891 4.1 tomcat數(shù)據(jù)庫連接池介紹與配置 PAGEREF _Toc73948891 h 14 HYPERLINK l _Toc73948892 4.2 applet數(shù)字簽名技術 PAGEREF _Toc73948892 h 16 HYPERLINK l _Toc73948893 4.3 如何調(diào)用java外部程序 PAGEREF _Toc73948893 h

7、17 HYPERLINK l _Toc73948894 5 總結與展望 PAGEREF _Toc73948894 h 18 HYPERLINK l _Toc73948895 參考文獻 PAGEREF _Toc73948895 h 19基于J2EE架構的在線考試系統(tǒng)計算機科學與技術專業(yè)001班沈志鋼指導教師:袁貞明 張佳摘要: 目前國內(nèi)基于B/S、C/S結構的在線考試系統(tǒng)產(chǎn)品已經(jīng)有許多,本文首先介紹了這些考試系統(tǒng)的形成和發(fā)展過程,大致結構。然后通過仔細分析,提出了目前的這些系統(tǒng)還存有系統(tǒng)更新和維護等種種弊端,仍不夠成熟?;趯ΜF(xiàn)有產(chǎn)品的思考,結合J2EE的成熟技術,我們想到了是否可以將該技術運用

8、在在線考試系統(tǒng)中,提出了一個基于J2EE架構的在線考試系統(tǒng)。通過將該架構與已有結構的在線考試系統(tǒng)進行比較,分析了該架構的優(yōu)勢,重點介紹了該框架的整體構造以及相關的概念和技術。并通過設計了一個基于J2EE架構的在線考試系統(tǒng)對該架構做了一個比較深入的剖析。最后,對J2EE技術做了一個總結性的展望,認為該技術有著良好的發(fā)展空間和廣闊的前景。關鍵詞:J2EE,在線考試系統(tǒng),b/s,JavaBean,jsp,數(shù)據(jù)池Abstract: At present, there are many b/s, c/s structure examination systems based on-line, this

9、paper first introduced most of these systems formed and developed process, and structures. Then, analysis these systems, and pointed out that there still have many defects about them, just like the update and the service to these systems .Thinking based on these produces, and now the J2EE technical

10、is becoming mature, we thinking about is this technical can be used in examination systems, so we mentioned a on-line system based on J2EE structure. Compared to other systems, and also analysis its advantages, we introduced this structures construction and technical as emphasize. Finally, make J2EE

11、 technical a expectation and it can progress quiet great and have a nice foreground.Keywords: J2EE, Examination system on-line, b/s, JavaBean, jsp, data pool1 引言現(xiàn)階段,學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即出卷、考生考試、閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分繁瑣和非常容易出錯的事情,可以說傳統(tǒng)的

12、考試方式已經(jīng)不能適應現(xiàn)代考試的需要。隨著計算機應用的迅猛發(fā)展,網(wǎng)絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕教師的工作負擔及提高工作效率,從而提高了考試的質(zhì)量,使考試更趨于公證、客觀、激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。為了適應新形勢的發(fā)展,目前國內(nèi)有很多公司團體研究開發(fā)了基于Web的考試系統(tǒng)。而我們知道網(wǎng)絡應用軟件運行的模式主要有二類:Client/Server模式、Browser/Server模式。前者主要的缺點是維護、升級較麻煩,后者是近幾年伴隨In

13、ternet迅速發(fā)展而應運而生的一種技術,在這種模式下,客戶端需要一個瀏覽器,服務器端是Web Server ,而Web Server是與數(shù)據(jù)庫和應用服務器的緊密結合,可見,這種模式是瘦客戶端,即對客戶端的要求不高.如今,很多部門的業(yè)務系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴充應用、升級維護簡便。然而,隨著技術的發(fā)展,更先進的模式紛紛被提出并時興起來,其中J2EE就是比較成熟的一種。2 在線考試系統(tǒng)構架2.1 在線考試系統(tǒng)一般需求分析 在線考試系統(tǒng)應具有以下要求:1)由于考試對應的是特定的對象,所以系統(tǒng)需要經(jīng)過有效的身份驗證才可以登陸。并且系統(tǒng)需要有可以管理會話的功能。以便

14、在考試過程中全程跟蹤考試狀態(tài)。2)系統(tǒng)的權限一般分為兩種:管理員和學生。不同的身份使用不同的權限和功能。3)管理員需要對試題和考生進行有效的管理,負責試題的錄入及更新和修改,對試題的分類,每次考試前,需要對試場環(huán)境和考生狀態(tài)進行考前初始化工作。要注意的是, 鑒于考試環(huán)境一般為機房,考試者之間的距離很近,為了在線考試做到規(guī)范,對于每個應試者來說,試卷的試題和題量都應是相同的,但試題并不相同。系統(tǒng)要有良好的試卷上傳和回收功能,確保信息傳送的正確性。系統(tǒng)要有一個友善的界面,確??忌荚嚨捻樌M行。因為試卷中的主觀題需要老師批改,可能需要一段時間才能查詢到成績。但如果試卷是由客觀題型組成的,考生就可以

15、在考試結束后查詢到自己的成績了。系統(tǒng)提供對考生成績的統(tǒng)計和查詢等管理功能。系統(tǒng)應具有良好的安全性管理。2.2 當前在線考試系統(tǒng)現(xiàn)狀分析當前考試系統(tǒng)中,仍有許多是基于c/s模式的,每一次伴隨著系統(tǒng)的升級,都要在每個客戶端更新軟件,耗時耗力??上驳氖?,隨著技術的發(fā)展,基于b/s模式的在線考試系統(tǒng)越來越多,逐漸占據(jù)了主導地位。它克服了c/s模式下的許多缺點,從傳統(tǒng)的基于C/S模式的考試系統(tǒng)轉變到基于B/S模式的考試系統(tǒng),可以使用戶在任何一臺電腦上,只要可以上網(wǎng),就可以使用該服務,大大簡化了操作,為用戶提供了方便。另一方面,也為教師的管理和批閱工作提供了方便,提高了效率。但是據(jù)我多方的觀察和研究,發(fā)現(xiàn)

16、大多數(shù)的在線考試系統(tǒng)都是采用基于頁面的模式開發(fā),每個頁面中都包含了要用到的所有功能邏輯,導致代碼重復率高,結構不夠清晰,維護升級起來也很費時間和人力。鑒于這種情況,所以我們將J2EE的概念加入到在線考試系統(tǒng)中來,使得該系統(tǒng)更易于升級和維護。2.3 基于J2EE的在線考試系統(tǒng)架構介紹及擁有的優(yōu)勢23.1 結構總體介紹J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)他們所在的層分布在不同的機器上。事實上,sun設計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易

17、,但難于升級或改進,可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務邏輯和界面邏輯非常困難。現(xiàn)在J2EE 的多層企業(yè)級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的每種服務提供一個獨立的層,以下是 J2EE 典型的四層結構:運行在客戶端機器上的客戶層組件 運行在J2EE服務器上的Web層組件 運行在J2EE服務器上的業(yè)務邏輯層組件 運行在EIS服務器上的企業(yè)信息系統(tǒng)(Enterprise information system)層軟件 圖1 J2EE 典型的四層結構 客戶層組件J2EE應用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的

18、。J2EE規(guī)范中指出,客戶層組件有兩種,它們是應用客戶端程序和applets客戶端。.1 Applets從Web層接收的一個Web頁面可以包含內(nèi)嵌的applet。一個applet是一個用Java編程語言編寫的小的客戶端應用程序,它在安裝在Web瀏覽器中的Java虛擬機中運行。然而,為了在Web瀏覽器中成功地運行applet,客戶端系統(tǒng)很可能需要Java插作和安全策略文件。 Web組件是用來建立一個Web客戶端程序的首選的API,因為這樣在客戶端系統(tǒng)中就不需要插件和安全策略文件。同樣的,使用Web組件可以有效地改善應用程序設計,因為它們提供了一個將應用程序設計和Web頁面設計有效分離的途徑。We

19、b頁面的設計者可以不必關心Java編程語言的語法就能很好地完成自己的工作。.2 應用程序客戶端一個J2EE應用程序客戶端運行在客戶端機器上,它使得用戶可以處理需要比標記語言所能提供的更豐富的用戶界面的任務。具有代表性的是用Swing或抽象窗口工具包(AWT)API建立的圖形用戶界面(GUI),但是一個命令行界面也是當然可能的。 應用程序客戶端直接訪問運行在商業(yè)層的enterprise bean。然而,如果應用程序需要授權, 一個J2EE應用程序客戶端可以打開一個 連接來與一個運行在Web層的servlet建立通信。 WEB層組件J2EE web層組件可以是JSP 頁面或Servlets.按照J

20、2EE規(guī)范,靜態(tài)的HTML頁面和Applets不算是web層組件。正如下圖所示的客戶層那樣,web層可能包含某些 JavaBean 對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務層上的enterprise bean 來進行處理。圖2 Web層組件 業(yè)務層組件業(yè)務層代碼的邏輯用來滿足銀行,零售,金融等特殊商務領域的需要,由運行在業(yè)務層上的enterprise bean 進行處理. 下圖表明了一個enterprise bean 是如何從客戶端程序接收數(shù)據(jù),進行處理(如果必要的話), 并發(fā)送到EIS 層儲存的,這個過程也可以逆向進行。有三種企業(yè)級的bean: 會話(session) beans, 實體

21、(entity) beans, 和消息驅(qū)動(message-driven) beans。 會話bean 表示與客戶端程序的臨時交互. 當客戶端程序執(zhí)行完后, 會話bean 和相關數(shù)據(jù)就會消失. 相反, 實體bean 表示數(shù)據(jù)庫的表中一行永久的記錄。當客戶端程序中止或服務器關閉時, 就會有潛在的服務保證實體bean 的數(shù)據(jù)得以保存.消息驅(qū)動 bean 結合了會話bean 和 JMS的消息監(jiān)聽器的特性, 允許一個業(yè)務層組件異步接收JMS 消息。圖3 業(yè)務層組件 企業(yè)信息系統(tǒng)層企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎建設系統(tǒng)例如企業(yè)資源計劃 (ERP), 大型機事務處理, 數(shù)據(jù)庫系統(tǒng),和其它的

22、遺留信息系統(tǒng). 例如,J2EE 應用組件可能為了數(shù)據(jù)庫連接需要訪問企業(yè)信息系統(tǒng)。 J2EE架構的優(yōu)勢J2EE為搭建具有可伸縮性、靈活性、易維護性的系統(tǒng)提供了良好的機制:1)保留現(xiàn)存的IT資產(chǎn): 由于技術需求的不斷更新,在線考試系統(tǒng)必須可以適應新的要求,利用已有的對考試系統(tǒng)方面的投資,而不是重新制定全盤方案。這樣,一個以漸進的(而不是激進的,全盤否定的)方式建立在已有考試系統(tǒng)之上的服務器端平臺機制是學校和單位所需求的。J2EE架構可以充分利用用戶原有的投資,這之所以成為可能是因為J2EE擁有廣泛的業(yè)界支持和一些重要的企業(yè)計算領域供應商的參與。每一個供應商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入

23、可移植的J2EE領域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。 2)高效的開發(fā): J2EE允許客戶把一些通用的、很繁瑣的服務端任務交給中間件供應商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應地縮短了開發(fā)時間。高級中間件供應商提供以下這些復雜的中間件服務: 狀態(tài)管理服務 - 讓開發(fā)人員寫更少的代碼,不用關心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。 持續(xù)性服務 - 讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧,與數(shù)據(jù)庫無關的應用程序,這種應用程序更易于開發(fā)與維護。 分布式共享數(shù)據(jù)對象服務

24、- 讓開發(fā)人員編制高性能系統(tǒng),極大提高整體部署的伸縮性。 3)支持異構環(huán)境: J2EE能夠開發(fā)部署在異構環(huán)境中的可移植程序?;贘2EE的應用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。由于考試系統(tǒng)很多時候需要提供給許多不同的學校和單位使用,這些學校和單位的軟件硬件環(huán)境存在有較大的差異,所以能支持異構環(huán)境這點就十分關鍵。同時J2EE標準也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。 4)伸縮性: 學校和單位必須要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足

25、可能不斷增多的在他們系統(tǒng)上進行考試的大批新的考生?;贘2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來系統(tǒng)升級和規(guī)模擴大的需要。 5)穩(wěn)定的可用性: 雖然在線考試系統(tǒng)不象一般企業(yè)的服務器端平臺必須能全天候運轉以滿足公司客戶、合作伙伴的需要,但起碼必須保證考生考試的這段時間內(nèi)不發(fā)生意外停機等故障,從而影響到考生考試。J2EE部署到可靠的操作

26、環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如Sun Solaris、IBM OS/390。最健壯的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘停機時間。這是對在線考試系統(tǒng),特別對于那些比較重要的考試的理想選擇。 3 測試系統(tǒng)具體設計3.1 基于J2EE的E-nettest在線考試系統(tǒng)構架概要 E-nettest系統(tǒng)結構我們的系統(tǒng)結構是針對了J2EE的四層架構進行設計的客戶端瀏覽器,負責處理用戶視圖界面負責處理考生的登錄和做題信息,傳送給相應的javabean組件。并將返回信息傳送給用戶頁面顯示。客戶端瀏覽器,負責處理用戶視圖

27、界面負責處理考生的登錄和做題信息,傳送給相應的javabean組件。并將返回信息傳送給用戶頁面顯示。負責得到數(shù)據(jù)庫的連接,從數(shù)據(jù)庫取得相應信息,將用戶信息輸入上傳到數(shù)據(jù)庫中。負責試題和考生信息等的存儲。圖4 系統(tǒng)結構如圖所示,客戶層負責提供用戶界面接口,包括試題的顯示和考生答案的輸入。Web層負責將得到的考生登陸和題目上傳的信息送交給業(yè)務層,同時,將從業(yè)務層處得到考試的相關信息輸出到html頁面為考生提供相關服務。業(yè)務層負責系統(tǒng)的具體邏輯實現(xiàn),主要是得到數(shù)據(jù)池中的數(shù)據(jù)源,向數(shù)據(jù)庫中提交和獲得數(shù)據(jù)等。信息系統(tǒng)層主要采用了Microsoft sql2000數(shù)據(jù)庫對數(shù)據(jù)進行存貯管理。 E-nette

28、st數(shù)據(jù)流程考生首先進入登陸頁面,輸入用戶名和密碼,系統(tǒng)將該用戶名和密碼與數(shù)據(jù)庫中考生表的用戶名密碼一一核對,如果存在該考生且未登陸,則彈出一個考試的主頁面正常進入考試,并將該考生置為考試狀態(tài)。否則會跳到出錯頁面要求考生重新登陸。進入考試頁面后,有許多分類的試題要求考生分別完成,考生點擊相應頁面的超鏈接,進入做題,在每個分頁面的頂部,都將會有對該部分試題的操作提示和注意事項,考生閱讀完相關事項后進行做題,每做完該部分試題都必須保存,系統(tǒng)將收集到的考生做題信息上傳到數(shù)據(jù)庫中,考生則繼續(xù)做其他部分試題。完成所有考試后,考生點擊交卷標記,系統(tǒng)保存考生所有的答題信息后正常他退出,并將考生置于離線狀態(tài)。

29、具體流程見下圖:圖5 系統(tǒng)流程3.2 E-nettest考試系統(tǒng)環(huán)境設置 本系統(tǒng)運行環(huán)境如下: 服務器端:軟件環(huán)境:win2000/nt Tomcat,jsdk用以支持jsp網(wǎng)頁,sql server數(shù)據(jù)庫服務器 硬件環(huán)境:p3 1.0以上cpu,256M Rom 硬件環(huán)境:p2 233以上cup,32M 以上內(nèi)存3.3 E-nettest總體功能介紹客戶端登陸服務:負責用戶的登陸的輸入,與服務器端的驗證,如果是重登陸的,需重登陸密碼。 題目下載:負責從數(shù)據(jù)庫中讀取試題數(shù)據(jù),下載到客戶端。用戶答題:負責在客戶的瀏覽器中顯示下載的題目,供用戶做題。題目上傳:負責將客戶所答題目的答案上傳到服務器端

30、。管理端生成試題:負責從試題源中生成當場考試的相應試題。試題初始化:負責在每場考試前清空試題回收信息。考生監(jiān)控:負責在考試期間管理監(jiān)控各考生的考試狀態(tài)。試卷回收:負責在考試結束后,將考生提交的答案上傳到數(shù)據(jù)庫服務器中。試卷批閱:負責自動化批閱回收試卷(客觀題)。數(shù)據(jù)庫連接服務:負責從各共性服務層模塊接收相關數(shù)據(jù)庫連接,查詢,修改等服務,并返回相關數(shù)據(jù)。數(shù)據(jù)訪問層異常管理:負責數(shù)據(jù)庫連接服務出現(xiàn)的異常。3.4 E-nettest模塊設計各模塊的詳細介紹:1)考生登陸模塊:在客戶層,考生通過主登陸頁面輸入用戶名與密碼。在web層,將從用戶輸入處得到的用戶名和密碼與從業(yè)務層返回的相應用戶名和密碼作比

31、較,如果用戶存在密碼正確且還未登陸就登陸考試主頁面,否則跳到出錯頁面要求重新登陸。在業(yè)務層,獲得與mssql數(shù)據(jù)庫的連接,并取出所有的用戶名和密碼信息。將該信息傳入web層。在EIS層,對應的是mssql數(shù)據(jù)庫中的students表格。2)做題模塊:(1)選擇題:在客戶層,瀏覽器中顯示每個考生所對應的考試題目,要求考生輸入考試答案。并有一個提交按鈕供考生做完題目后上傳題目。在Web層,jsp負責從業(yè)務層中獲得題目,并將題目組織在一起向客戶端顯示。在業(yè)務層,獲得與數(shù)據(jù)庫的連接,并且取出選擇題題目。在EIS層,對應的是數(shù)據(jù)庫中choose表格。(2)word題:在客戶層,在瀏覽器中applet的t

32、extarea區(qū)域顯示word題的要求,并利用applett數(shù)字簽名技術,突破訪問本地文件系統(tǒng)的限制,打開word做題。在Web層,利用servlet的文件上傳下載技術,將讀出的word文件下載到本地磁盤。在業(yè)務層,獲得數(shù)據(jù)庫連接,并取出word題目,word題是以二進制流的方式將word文件存貯在數(shù)據(jù)庫。在EIS層,對應的是數(shù)據(jù)庫中word表格。3)答案上傳模塊:在客戶層,在瀏覽器中單擊提交按鈕將做完的答案提交制相應頁面在Web層,將用戶提交的答案提交給相應的javabean組件,并在客戶端顯示提示信息。在業(yè)務層,將提交上來的答案存入相應的數(shù)據(jù)庫中。在EIS層,數(shù)據(jù)庫中students表格,

33、有兩個相應字段用來存放該用戶所對應的提交答案。e-nettest系統(tǒng)e-nettest系統(tǒng)登陸服務用戶答題答案上傳數(shù)據(jù)庫連接服務 MS SQL SERVER數(shù)據(jù)訪問層異常管理題目下載生成試 題試題初始化考生監(jiān)控試卷回收試卷批閱圖6 系統(tǒng)模塊3.5 E-nettest數(shù)據(jù)庫設計由于目前市場上存在有許多的數(shù)據(jù)庫產(chǎn)品,較流行的有oracle,Mssql,Access,等,oracle數(shù)據(jù)庫多用于大企業(yè)中,穩(wěn)定性最好,但價格也較高,且系統(tǒng)要求也較高,而Access數(shù)據(jù)庫不支持網(wǎng)絡功能,一般只對個人或小型的系統(tǒng)適用,而對于本系統(tǒng)來說,采用Msssql則是一個較為合適的選擇,Mssql是微軟網(wǎng)絡數(shù)據(jù)庫的主

34、打產(chǎn)品,支持網(wǎng)絡功能,日志記錄等多種方便的服務,并且有著較為穩(wěn)定的性能和可靠的管理。下面是數(shù)據(jù)庫表的設計:Students table:id, char, 10,notnull; password, char, 10,null; number, char, 10,notnull; sex, char, 1,null;(1=男,0=女) chooseans, char, 60,null; wordans, image,16,null; status, char, 1,notnull;(1=在線,0=離線)choose table: QNUM, INT, 4,notnull; QCON, TEXT

35、, 16, notnull;QANSA, TEXT, 50, notnull;QANSB, TEXT, 50,notnull;QANSC, TEXT, 50,notnull;QANSD, TEXT, 50,notnull;QANSE, TEXT, 50,notnull;QANS, TEXT, 1,notnull;Word table: Topic_Number , nvarchar, 2,notnull; Question_Title, text, 16,notnull;Question_Content,image, 16,notnull;4 關鍵技術4.1 tomcat數(shù)據(jù)庫連接池介紹與配置

36、數(shù)據(jù)庫連接池概述:數(shù)據(jù)庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網(wǎng)頁應用程序中體現(xiàn)得尤為突出。對數(shù)據(jù)庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。數(shù)據(jù)庫連接池正是針對這個問題提出來的。數(shù)據(jù)庫連接池負責分配、管理和釋放數(shù)據(jù)庫連接,它允許應用程序重復使用一個現(xiàn)有的數(shù)據(jù)庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的數(shù)據(jù)庫連接來避免因為沒有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏。這項技術能明顯提高對數(shù)據(jù)庫操作的性能。數(shù)據(jù)庫連接池在初始化時將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接放到連接池中,這些數(shù)據(jù)庫連接的數(shù)量是由最小數(shù)據(jù)庫連接數(shù)來設定的。無論這些數(shù)據(jù)庫連接是否被

37、使用,連接池都將一直保證至少擁有這么多的連接數(shù)量。連接池的最大數(shù)據(jù)庫連接數(shù)量限定了這個連接池能占有的最大連接數(shù),當應用程序向連接池請求的連接數(shù)超過最大連接數(shù)量時,這些請求將被加入到等待隊列中。數(shù)據(jù)庫連接池的最小連接數(shù)和最大連接數(shù)的設置要考慮到下列幾個因素:1) 最小連接數(shù)是連接池一直保持的數(shù)據(jù)庫連接,所以如果應用程序?qū)?shù)據(jù)庫連接的使用量不大,將會有大量的數(shù)據(jù)庫連接資源被浪費;2) 最大連接數(shù)是連接池能申請的最大連接數(shù),如果數(shù)據(jù)庫連接請求超過此數(shù),后面的數(shù)據(jù)庫連接請求將被加入到等待隊列中,這會影響之后的數(shù)據(jù)庫操作。3) 如果最小連接數(shù)與最大連接數(shù)相差太大,那么最先的連接請求將會獲利,之后超過最小

38、連接數(shù)量的連接請求等價于建立一個新的數(shù)據(jù)庫連接。不過,這些大于最小連接數(shù)的數(shù)據(jù)庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時后被釋放。以下介紹一下連接池配置關鍵幾個環(huán)節(jié):1)首先在中, 配置應用程序的路徑2)然后配置資源名,用以在jndi中進行查詢 3)定義各連接參數(shù),用戶名,密碼,數(shù)據(jù)庫驅(qū)動以及數(shù)據(jù)源的查找路徑 usernamejavauser passwordjavadude driverClassName url jdbc:mysql:/localhost:3306/javatest?autoReconnect=true 4)由于系統(tǒng)是一個web應用程序,被布署

39、在tomcat容器中,所以需要在$CATALINA_HOME/webapps/quality/WEB-INF/web.xml里設置被引用的資源:下面是配置代碼,必須放在和里。connectDB testjdbc/connectDBjavax.sql.DataSourceContainer5)最后,將第3方的驅(qū)動都保存在$CATALINA_HOME/common/lib/*.jar中,如我們這里連接的是mssql,則將mssql的驅(qū)動程序,放入其中。4.2 applet數(shù)字簽名技術實現(xiàn)applet數(shù)字簽名,使得applet可以突破默認安全限制,讀取本地文件系統(tǒng)。在Java2的安全體系下,1個Ap

40、plet開發(fā)和運行的過程如下: 在代碼的分發(fā)端: 1)開發(fā)Java源程序并對其進行編譯。 2)用JAR工具對類文件和資源文件進行封裝。 3)用keytool創(chuàng)建公鑰和密鑰,生成X。509V1簽名證書,輸出證書。 4)通過jarsigner工具用生成的密鑰對JAR文件進行數(shù)字簽名。 在代碼的接收端: 1)用keytool輸入證書視其為可信任。 2)用policytool創(chuàng)建和修改安全性策略配置文件,授權請求的訪問權限。 3)從網(wǎng)絡取得字節(jié)碼,用公鑰驗證數(shù)字簽名證書和文檔代碼的完整性。 4)驗證字節(jié)碼的合法性,根據(jù)策略文件分配相應權限。 5)執(zhí)行代碼,完成后被垃圾回收器回收內(nèi)存。 在用公鑰驗證數(shù)字

41、簽名證書之前,接收方需要確認公鑰自身的可靠性,因此通常情況是提供一個包含公鑰的證書而不是公鑰自身。1個證書包括: 1)1個公鑰。 2)1個唯一的名字實體(個人或公司),它是證書的所有者,包含用戶名字、公司、組織、城市、地址、國家代碼、省份等信息。 3)數(shù)字簽名:1個證書被1個分發(fā)者的實體簽名,保證證書確實包含另1個實體(所有者)的公鑰。 4)分發(fā)者的標識名信息。 對于接收者可以用分發(fā)者的公鑰來驗證他的數(shù)字簽名,檢查證書的合法性。然而公鑰可能包含在另一個證書中,而數(shù)字簽名需要用另一個證書的分發(fā)者的公鑰來驗證,這樣嵌套下去,直到一個公鑰被接收者確認是可信任的。如果接收者不能建立信任鏈,例如:1個分

42、發(fā)者的證書不合法,那么可以用keytoolimport命令來計算指紋,每個指紋是一個相關的短數(shù)字,它唯一可靠地標識證書(指紋是一個用信息摘要算法計算的證書信息的哈希值),接收者可以呼叫證書的所有者,并比較發(fā)出的證書和接收證書的指紋,如果指紋相同,則證書不同。因此能夠保證證書在傳遞的過程中未被修改。另一個潛在的問題是發(fā)送者身份的標識,有時一個證書是自簽名的,即使用證書中的公鑰相對應的密鑰進行簽名,如果接收者已經(jīng)知道或信任發(fā)送者,那么就沒有任何問題。否則發(fā)送者需要從一個可信任的第3方得到證書,這個第3方通常是一個證書的授權機構CA,那么首先發(fā)送一個自簽名的證書簽名請求CSR給CA,由CA驗證CSR

43、的簽名及發(fā)送CSR的身份、許可證以及其它信息。然后CA通過一個用CA的密鑰進行簽名的證書,授權CSR的發(fā)送者作為公鑰的所有者,任何人只要信任CA的公鑰,都可以用之來驗證證書的簽名,很多情況下CA自身有一個來自更高一級的CA的證書,從而構成證書鏈。所有信任的證書實體都可以作為信任證書被引入鑰匙庫,每個證書中的公鑰都可以用來驗證用相應的密鑰生成的簽名。 發(fā)送者在發(fā)送簽名的代碼和文檔時還相應提供包含與簽名的密鑰相應的公鑰證書。用keytoolexport命令或API函數(shù)可以從鑰匙庫中輸出證書到文件中,然后將這個文件發(fā)送給需要的接收者,由接收者用keytoolimport命令或API函數(shù)將其引入鑰匙庫

44、中。如果用jarsigner工具為JAR文件生成簽名,他會從鑰匙庫中取出證書及證書鏈,并和簽名一起放入JAR文件。 密鑰和相應的公鑰證書存放在一個由口令保護的數(shù)據(jù)庫中,稱為鑰匙庫(keystore)。1個鑰匙庫包含2種類型的條目,可信任的證書條目,鑰匙和證書條目,每個都包含1個密鑰和與密鑰相應的公鑰證書,在鑰匙庫中的每個條目都有1個別名進行標識。1個鑰匙庫的所有者在鑰匙庫中可以有多個鑰匙,可以通過不同的別名進行訪問,每個別名通常是用鑰匙庫的所有者使用的鑰匙的特定角色來命名,別名也可以標識鑰匙的目的。例如:SignPersonalEmail可以被用來標識1個鑰匙庫的條目,它的密鑰用于簽名個人郵件

45、,SignJarFiles用于標識1個條目,它的密鑰用于簽名JAR文件。4.3 如何調(diào)用java外部程序在系統(tǒng)中,由于涉及到需要調(diào)用word程序進行word試題的考試,因此需要用到調(diào)用java外部程序的功能,java.lang.Runtime 類提供了exce()方法來完成對外部可執(zhí)行程序的調(diào)用。注意:在這里exce()方法調(diào)用的其實是java解釋器這個可執(zhí)行程序,外部類文件Invoked.class只不過是作為java解釋器的參數(shù)出現(xiàn)。事實上,exce()方法還可以直接調(diào)用其它的可執(zhí)行文件,而不僅僅是java解釋器。具體代碼見下:String path = C:;try Runtime.ge

46、tRuntime().exec(cmd /c start winword + path + ); catch (IOException e) tStackTrace();5 總結與展望在傳統(tǒng)的兩層體系下,業(yè)務邏輯在客戶端和服務器端都有分布,而且服務器端的主要計算任務都由數(shù)據(jù)庫承擔。數(shù)據(jù)庫系統(tǒng)本身作為系統(tǒng)級軟件,它本身的優(yōu)勢在于提供高效率的數(shù)據(jù)訪問和處理而不是數(shù)值計算,利用數(shù)據(jù)庫系統(tǒng)處理大量的業(yè)務計算并沒有完全發(fā)揮出數(shù)據(jù)庫管理系統(tǒng)的特長,當請求并發(fā)量巨大時,數(shù)據(jù)庫性能下降很快。針對這一不足,基于J2EE架構的處理方式是:業(yè)務邏輯分布到應用服務器上,數(shù)據(jù)庫上不再具有業(yè)務邏輯處理單元,而只負責基礎業(yè)

47、務數(shù)據(jù)的管理,主要的計算任務由應用服務器完成,從而充分利用了應用服務器在并發(fā)處理和邏輯計算方面的優(yōu)勢。另外,應用服務器還可以做集群的配制,即在物理上,統(tǒng)一應用管理多臺應用服務器對外部請求的分配和并行處理。這樣,當計算請求并發(fā)量巨大時,集群的多臺應用服務器之間可以動態(tài)的進行任務分配,實現(xiàn)負載均衡,保證了系統(tǒng)性能不會因為大量并發(fā)用戶的訪問而急劇下降,另外系統(tǒng)也同時具備了很好的可擴展性和伸縮性,即在請求并發(fā)量增大或減少時,可根據(jù)實際情況增加或減少應用服務器數(shù)量,以便保證性能的前提下,合理利用硬件資源。這些都是兩層結構所不具備的優(yōu)點。 基于J2EE的四層架構還具備很多特點。應用J2EE的四層架構對于保

48、留現(xiàn)存的IT資產(chǎn)有著重要意義。由于社保機構在面對適應新的業(yè)務需求的同時,也要充分利用好已有的資產(chǎn),因此,在信息系統(tǒng)建設方面,做平滑的系統(tǒng)遷移方案,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進的,而不是激進的、全盤否定的方式建立在已有系統(tǒng)之上的服務器端平臺機制,是所有社保經(jīng)辦機構所力求的。J2EE架構可以充分利用用戶原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina、Inprise VisiBroker。之所以成為可能,主要是因為J2EE擁有廣泛的業(yè)界支持。每一個供應商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領域的升級途徑。另外,由

49、于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也可以被完整地保留下來繼續(xù)使用。 J2EE體系對大型系統(tǒng)的高效開發(fā)有著良好的支持者。J2EE標準嚴格要求把一些通用的、很繁瑣的服務端底層開發(fā)任務交給中間件供應商去完成,而這些復雜的系統(tǒng)級功能是常規(guī)應用開發(fā)中難度最大、開發(fā)成本最高的一部分工作。高級中間件供應商提供復雜的中間件服務,如:狀態(tài)管理服務、持續(xù)性服務、分布式共享數(shù)據(jù)對象的緩沖服務等,它對開發(fā)人員來說是很重要的,這樣開發(fā)人員可以集中精力在如何創(chuàng)建業(yè)務邏輯上,相應地縮短了開發(fā)時間。對于核心平臺來講,也就縮短了本地化開發(fā)的周期。 這篇論文拿在線考試系統(tǒng)作為實例

50、,從中具體實現(xiàn)了最基本的J2EE架構并體現(xiàn)了其優(yōu)勢。由于時間關系,設計還不算很完美,主要研究了關鍵技術,設計有待于改進。參考文獻2 Yuan Zhenming, Zhang Liang, Zhan Guohua ,A NOVEL WEB-BASED ONLINE EXAMINATION SYSTEM FOR COMPUTE SCIENCE EDUCATION,3 Bruce Eckel ,Thinking in Java (3rd Edition), December 6, 20025 Danny Ayers,Java 數(shù)據(jù)編程指南,電子工業(yè)出版社6 John Bell , HYPERLINK

51、 :/www -java /eshop/book.php?pk=1085365952&id=17&ac=2000102212 t _self ,電子工業(yè)出版社7 Subrahmanyam Allamaraju,p?pk=1085366035&id=13&ac=2000102212 t _self J2EE編程指南(1.3版),電子工業(yè)出版社tudies serve for delight, for ornament, and for ability. Their chief use for delight, is in privateness and retiring; for ornamen

52、t, is in discourse; and for ability, is in the judgement and disposition of business. For expert men can execute, and perhaps judge of particulars, one by one; but the general counsels, and the plots, and marshalling of affairs, come best from those that are learned. To spend too much time in studie

53、s, is sloth; to use them too much for ornament, is affectation; to make judgement wholly by their rules is the humour of a scholar. They perfect nature, and are perfected by experience: for natural abilities are like natural plants, that need pruning by study: and studies themselves do give forth di

54、rections too much at large, except they be bounded in by experience. Crafty men condemn studies; simple men admire them; and wise men use them: for they teach not their own use; but that is a wisdom without them, and above them, won by observation. Read not to contradict, and confute; nor to believe

55、 and take for granted; nor to find talk and discourse; but to weigh and consider. Some books are to be tasted, others to be swallowed, and some few to be chewed and digested: that is, some books are to be read only in parts; others to be read but not curiously; and some few to be read wholly, and wi

56、th diligence and attention. Some books also may be read by deputy, and extracts made of them by others: but that would be, only in the less important arguments, and the meaner sort of book: else distilled books are like common distilled waters, flashy things. Reading maketh a full man; conference a

57、ready man; and writing an exact man. And therefore, if a man write little, he had need have a great memory; if he confer lime, he had need have a present wit; and if he read little, he had need have much cunning, to seem to know that he doth not. Histories make men wise; poets witty; the mathematics

58、 subtle; natural philosophy deep; moral grave;logic and rhetoric able to contend. AbeuntstucSa in mores. Nay, there is no stond or impediment in the wit, but may be wrought out by fit studies: like as diseases of the body may have appropriate exercises. Bowling is good for the stone and reins; shoot

59、ing for the lungs and breast; gentle walking for the stomach; riding for the head; and the like. So if a mans wit be wandering, let him study the mathematics; for in demonstrations, if his wit be called away never so little, he must begin again: if his wit be not apt to distinguish or find differenc

60、es, let him study the schoolmen; for they are cymnisectores. If he be not apt to beat over matters, and to call up one thing, to prove and illustrate another, let him study the lawyers cases: so every defect of the mind may have a special receipt. Of Riches I cannot call riches better than the bagga

溫馨提示

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

最新文檔

評論

0/150

提交評論