版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 題目: 基于Java技術的在線考試系統(tǒng)的開發(fā)</p><p> 學 院: </p><p> 專 業(yè): </p><p> 班 級: &
2、lt;/p><p> 學 號: </p><p> 學生姓名: </p><p> 指導老師: </p><p><b> 2009年6月9日</b></p><p><b> 摘
3、 要</b></p><p> 在線考試系統(tǒng)旨在實現考試的無紙化管理,對一些科目的考試可以通過互聯網絡或局域網進行,方便校方考務的管理,也方便了考生,尤其適合考生分布廣,不易集中的遠程教育。我主要開發(fā)系統(tǒng)的后臺管理系統(tǒng)—JAVA在線考試管理子系統(tǒng),它包括試題管理、考生管理、在線制作試卷、控制學生考試的設置、試卷審批等功能。本論文主要介紹了對JAVA在線考試管理子系統(tǒng)的分析、設計和開發(fā)的全部過程。運
4、用ER圖,程序流程圖等對在線管理子系統(tǒng)的設計過程進行詳細的說明。</p><p> 全文共分為開發(fā)方案、需求分析、系統(tǒng)設計、關鍵技術解決,結論五部分。開發(fā)方案中主要介紹開發(fā)在線考試系統(tǒng)得目的、開發(fā)方案的選擇及開發(fā)框架的技術的確定;需求分析介紹了在線考試系統(tǒng)的總體需求及系統(tǒng)各模塊的功能需求;系統(tǒng)設計介紹了系統(tǒng)設計的指導思想、數據庫的設計、系統(tǒng)模塊的設計;關鍵技術介紹了在具體實現時需解決的一些技術,如開發(fā)框架的整合
5、技術、開發(fā)框架與數據庫的連接及數據的備份與還原。</p><p> 本畢業(yè)設計的內容是設計并且實現一個基于web技術的在線考試系統(tǒng),故而系統(tǒng)主要以j2EE作為開發(fā)基礎,主要使用了struts+spring等多種協議或技術,用eclipse作為開發(fā)工具,以MYSQL作為數據庫,以Macromedia公司的Dreamweaver作為界面美化工具。基本實現了網上考試系統(tǒng)應有的主要功能模塊,包括:管理員的登錄,管理和維
6、護;用戶注冊、登錄、注銷,個人信息的查詢、修改;考試管理,套題管理,成績管理。該系統(tǒng)界面簡單、操作方便,容易維護。</p><p> 關鍵詞:在線考試 j2EE struts + spring </p><p> Development of an Online Examination System Based on Java Technology</p><p
7、><b> Abstract</b></p><p> Online examination system to achieve paperless management of examinations, the examination of some subjects through the Internet or LAN, to facilitate the managemen
8、t of the school Examination, candidates are also convenient, especially for candidates widely distributed, easy to focus on distance education . The background of my main development system management system-JAVA-line ex
9、amination management subsystem, which includes questions management, candidate management, on-line production of pap</p><p><b> 目錄</b></p><p><b> 摘 要II</b></p>
10、<p> AbstractIII</p><p><b> 第一章引言1</b></p><p> 1.1課題背景1</p><p> 1.2課題目的和意義1</p><p> 1.3本文結構1</p><p> 第二章 系統(tǒng)應用的關鍵技術2</p&
11、gt;<p> 2.1 JSP技術介紹2</p><p> 2.1.1 JSP的概述2</p><p> 2.1.3 JSP的強勢與劣勢3</p><p> 2.1.4 JSP與ASP的比較3</p><p> 2.2 Java組件JavaBeans4</p><p> 2.2.1
12、什么是JavaBeans4</p><p> 2.2.2 JSP與JavaBeans的關系4</p><p> 2.3 J2EE概述4</p><p> 2.4關于Struts5</p><p> 2.4.1 Struts簡介5</p><p> 2.4.2 Struts的主要功能5</p&
13、gt;<p> 2.4.3 Struts工作原理6</p><p> 2.5 關于Spring7</p><p> 2.5.1 Spring簡介7</p><p> 2.5.2 為什么需要Spring8</p><p> 2.5.3 Spring帶給我們什么8</p><p> 2.
14、6 關于B/S開發(fā)模式9</p><p> 2.6.1為什么引入B/S開發(fā)模式9</p><p> 2.7.1 mysql的特點9</p><p> 2.7.2 mysql的安裝和配置(部分截圖)[12]10</p><p> 2.8 Tomcat服務器12</p><p> 2.8.1 Tomca
15、t 服務器簡介12</p><p> 2.8.2 Tomcat的特點12</p><p> 2.8.3 Tomcat的優(yōu)勢12</p><p> 2.8.4 Tomcat服務器的安裝和配置12</p><p><b> 小結13</b></p><p> 第三章 系統(tǒng)需求分析和
16、總體設計14</p><p> 3.1 系統(tǒng)功能需求14</p><p> 3.2 系統(tǒng)角色及其功能分析14</p><p> 3.2.1 系統(tǒng)的2個角色:14</p><p> 3.2.2 系統(tǒng)角色的功能14</p><p> 3.3 總體設計思想概述15</p><p>
17、; 3.4 數據庫設計16</p><p> 3.4.1 E-R圖16</p><p> 3.4.2數據表的設計16</p><p> 3.5 系統(tǒng)的類設計18</p><p> 3.5.1 DAO類設計18</p><p> 3.5.2 connDB類設計(部分)18</p>&
18、lt;p> 3.5.3 過濾器類設計19</p><p> 3.5.4 監(jiān)聽器類設計19</p><p> 3.6系統(tǒng)的用例圖20</p><p> 3.6.1 總體用例分析20</p><p> 3.6.2 用戶管理用例分析21</p><p> 3.6.3 考試管理用例分析21<
19、/p><p> 3.6.4 考試題目管理用例分析22</p><p> 3.6.5 成績管理用例分析22</p><p><b> 小結22</b></p><p> 第四章 系統(tǒng)的詳細設計23</p><p> 4.1 數據庫與connDB類映射的實現23</p>
20、<p> 4.2 主要模塊的設計說明與界面24</p><p> 4.2.1用戶管理模塊24</p><p> 4.2.2考試管理模塊29</p><p> 4.2.3 題目管理模塊31</p><p> 4.3 系統(tǒng)的測試37</p><p><b> 小結38</b
21、></p><p> 第五章 總結與展望38</p><p> 5.1 工作總結38</p><p> 5.2 后續(xù)工作展望39</p><p><b> 參考文獻40</b></p><p><b> 附錄41</b></p><
22、;p><b> 致謝44</b></p><p><b> 引言</b></p><p><b> 課題背景</b></p><p> 網絡化教育代表了教育改革的一個發(fā)展方向,已經成為現代教育的一個重要特征,并對教育的發(fā)展形成新的推動力。隨著Internet/Intranet的迅速發(fā)展
23、和廣泛普及,網絡考試系統(tǒng)成為現代教育技術未來發(fā)展方向之一。作為網絡考試的一個子系統(tǒng)——網絡閱卷子系統(tǒng),也成為一個重要的研究領域?,F代網絡考試作為一種新的考試手段已經開始進入人們的生活,正在給傳統(tǒng)教育模式帶來新的變革,并對教育的發(fā)展形成新的推動力。網絡閱卷子系統(tǒng)突破了傳統(tǒng)考試方式的時空限制,使閱卷方式更為靈活,同時充分利用計算機進行自動閱卷功能,大大減輕了教師的工作量。</p><p><b> 課題目
24、的和意義</b></p><p> 現階段,學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經過五個步驟,即人工出卷,考生考試,人工閱卷,成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經不能適應現代考試的需要。隨著計算機應用的迅猛發(fā)展,網絡應用不斷擴大,
25、如遠程教育和虛擬大學的出現等等,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕教師的工作負擔及提高工作效率,與此同時也提高了考試的質量,從而使考試更趨于公證、客觀、更加激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。為了適應新形勢的發(fā)展,我們推出了這一系統(tǒng),使其盡快在各類考試中發(fā)揮高效,便捷的作用,把老師從繁重的工作中解脫出來。</p><
26、p><b> 本文結構</b></p><p> 本文共分五個章節(jié),系統(tǒng)地闡述了系統(tǒng)開發(fā)的全過程。</p><p> 第一章,主要介紹了開發(fā)的背景、目的和意義。</p><p> 第二章,主要介紹了本系統(tǒng)所用到的關鍵技術和工具,為下一步的設計的設計奠定基礎。</p><p> 第三章,主要對系統(tǒng)進行需求分
27、析并進行總體設計。需求分析階段通過分析系統(tǒng)的功能模塊的劃分以及角色的劃分,為系統(tǒng)的總體設計提供依據。總體設計階段通過對數據庫、過濾器、監(jiān)聽器、和實體類的設計,以及各個模塊用例圖的描述,形成了開發(fā)的整體思路。</p><p> 第四章,主要介紹了主要模塊的設計與實現,并給出關鍵源代碼和最終的效果圖。</p><p> 第五章,主要是對這次畢業(yè)設計的總結和對后續(xù)工作的展望。</p&g
28、t;<p> 第二章 系統(tǒng)應用的關鍵技術</p><p> 2.1 JSP技術介紹</p><p> 2.1.1 JSP的概述</p><p> JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態(tài)網頁技術標準,類似于其他技術標準,如ASP,PHP等,主要用于開發(fā)動態(tài)網頁內容。
29、</p><p> JSP是新一代的動態(tài)內容編程技術,它繼承了Java技術的“一次編寫,隨處運行”的特性,允許Web開發(fā)人員開發(fā)和維護與平臺無關,信息豐富動態(tài)的Web頁面,包括HTML,DHTML,XHTML和XML,它能使Web開發(fā)人員輕易搭建網絡平臺,建立起功能強大的Web網站。JSP可以把用戶界面從內容層次中分離出來,使得Web開發(fā)人員不必修改在底層的動態(tài)內容,就可以修改整體的頁面布局。</p>
30、;<p> 2.1.2 JSP的運行機制</p><p> JSP文檔被復制到Web服務器的文檔目錄中。當有人請求這個文檔時,服務器識別出這個帶有.jsp擴展名的文檔,并意識到需要做特殊處理。第一次請求這個文檔時,它被編譯成一個servlet對象,并存儲在內存中,然后輸出內容回送給發(fā)出請求的用戶機。第一請求之后,只要有請求到來,服務器將進行檢查,看看這個文件是否做過改動,如果沒有變化,服務器調用
31、先前編譯過的servlet對象。</p><p> JSP請求的步驟[2]如圖2-1所示。</p><p> ?。?)用戶機請求一個JSP頁面。</p><p> ?。?)JSP引擎編譯該JSP成一個servlet。</p><p> 圖2-1 一個JSP的請求步驟</p><p> ?。?)生成的servlet被
32、編譯并裝載。</p><p> ?。?)編譯的servlet服務請求并把一響應發(fā)送回用戶機。</p><p> JSP主要是針對Java程序處理不熟悉的人設計的。與Servlet相比,JSP有如下兩個優(yōu)勢:方便與HTML混合;在開發(fā)、測試方面比Servlet方便。</p><p> 2.1.3 JSP的強勢與劣勢</p><p><
33、b> JSP的強勢:</b></p><p> ?。?)可移植性。JSP是用Java開發(fā)的,因此它是可移植的,可以一處編寫,隨處運行,支持多平臺。</p><p> (2)有效性。JSP的初始化代碼僅在Web服務器第一次加載時執(zhí)行一次。一旦加載,在處理一個新的請求時,只須調用一個新的服務方法。與處理每個請求都要全部加載一個完整的可執(zhí)行程序相比,這是一個相當有效的技術。
34、</p><p> (3)強大的可伸縮性和可擴充性。它能夠在面向對象的語言(Java)中進行開發(fā),并可以在現有對象基礎上進行擴展,形成新的對象,從而更好地滿足用戶的需求。</p><p> ?。?)多樣化和功能強大的開發(fā)工具支持。Java已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下。</p><p> ?。?)
35、Java Servlet是一種開發(fā)Web應用的理想框架。JSP以Servlet技術為基礎,又在許多方面作了改進。利用跨平臺的JavaBeans組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。</p><p><b> JSP的劣勢:</b></p><p> ?。?)為了跨平臺的功能,為了極度的伸縮能力,極大的增加了產品的復雜性,Java系統(tǒng)中包括JRE,
36、JDK,J2EE,EJB等多種產品,這就需要大量的學習和培訓才能掌握它們,將它們有效地搭配在一起,靈活地加以運用。</p><p> ?。?)Java的運行速度快是由于用戶將class常駐內存,這樣使用的內存空間就比較大。另一方面,它還需要硬盤空間來存儲一系列.Java文件和.class文件以及對應的版本文件。</p><p> (3)JSP只有對Java相當熟悉的人才能用得很好。<
37、;/p><p> ?。?)JSP程序調試困難。</p><p> 2.1.4 JSP與ASP的比較</p><p> JSP與ASP(Active Server Page)兩者都是常用的動態(tài)網頁技術,也都是可以嵌入HTML中的程序,但兩者是有著本質的不同,主要從以下幾個方面對其進行比較: </p><p> ?。?)Web服務器的支持:大多數
38、通用的 Web服務器如:Apache、Netscape和Microsoft IIS都支持JSP頁面,只有微軟本身的Microsoft IIS和Personal Web Server可以支持ASP。 </p><p> (2)平臺的支持:JSP具有平臺獨立性,只要是一般的Java程序可以運行的平臺,都支持JSP程序。Windows平臺可以很好的支持ASP,但ASP對于基于Win32逐漸模型的依賴,使得它難于一直到
39、其它平臺上。 </p><p> ?。?)組件模型:JSP是建立在可重用的、跨平臺的組件(如:JavaBeans、Enterprises JavaBeans 和用戶定制的標簽庫等組件)之上的,而ASP使用的是基于Win32的COM組件模型。 </p><p> ?。?)腳本語言:JSP可以使用Java編程語言或JavaScript作為腳本語言,而ASP使用VBScript或Jscript作
40、為腳本語言。 </p><p> ?。?)安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全結構。 </p><p> ?。?)與Access數據庫的連接:JSP使用JDBC建立與Access數據庫的連接,而ASP對Access數據庫使用Data Active Objects。 </p><p> ?。?)用戶定制的標簽:JSP可以使用用戶定
41、制標簽庫進行擴充,而ASP中沒有用戶定制標簽庫,ASP是不能擴充的[3]。</p><p> 2.2 Java組件JavaBeans</p><p> 2.2.1 什么是JavaBeans</p><p> JavaBeans事實上有三層含義。首先,JavaBeans是一種規(guī)范,一種在Java(包括JSP)中使用可重復使用的Java組件的技術規(guī)范。其次,Jav
42、aBeans是一個Java的類,一般來說,這樣的Java類將對應于一個獨立的.java文件,在絕大多數情況下,這應該是一個public類型的類。最后,當JavaBeans這樣的一個Java類在我們的具體的Java程序中被示例之后,我們有時也會將這樣的一個JavaBeans的實例稱之為JavaBeans[4]。</p><p> 2.2.2 JSP與JavaBeans的關系</p><p>
43、; 使用JSP技術,Web頁面開發(fā)人員可以使用HTML和XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本生成頁面上的動態(tài)內容。生成內容的邏輯被封裝在JSP標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。核心邏輯封裝在標識和Beans中,可以方便頁面設計者編輯和使用JSP頁面。</p><p> 在服務器端,JSP引擎解釋JSP標識和小腳本生成所請求的內容(例如,通過訪問
44、JavaBeans組件,使用JDBC技術訪問數據庫),并且將結果以HTML(或XML)頁面的形式發(fā)送回瀏覽器。</p><p> 絕大多數JSP頁面依賴于可重用的跨平臺的足見(JavaBeans或者Enterprise JavaBeans組件)來執(zhí)行應用程序所要求的復雜的處理。這樣的好處是開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,加速了總體開發(fā)過程。因此,基于Web的較為復雜的應用程序(如JSP開發(fā)網站或網上M
45、IS),JSP的復雜架構必須由JavaBeans達成。</p><p> 2.3 J2EE概述</p><p> J2EE(Java 2 Platform Enterprise Edition)是使用Java技術開發(fā)企業(yè)級應用的一種事實上的工業(yè)標準(Sun公司出于其自身利益的考慮,至今沒有將Java及其相關技術納入標準化組織的體系),它是Java技術不斷適應和促進企業(yè)級應用過程中的產物
46、。目前,Java平臺有三個版本:適用于小型設備和智能卡的J2ME(Java 2 Platform Micro Edition)、適用于桌面系統(tǒng)的J2SE(Java 2 Platform Standard Edition)和適用于企業(yè)級應用的J2EE(Java 2 Platform Enterprise Edition)。Sun推出J2EE的目的是為了克服傳統(tǒng)Client/Server模式的弊病,迎合Browser/Server架構的潮流
47、,為應用Java技術開發(fā)服務器端應用提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標準的企業(yè)級平臺,從而簡化企業(yè)應用的開發(fā)、管理和部署。J2EE是一個標準,而不是一個現成的產品。各個平臺開發(fā)商按照J2EE規(guī)范分別開發(fā)了不同的J2EE應用服務器,J2EE應用服務器是J2EE企業(yè)級應</p><p> J2EE的優(yōu)勢主要有以下幾點:</p><p> ?。?)高效的開發(fā): J2EE允許
48、公司把一些通用的、很繁瑣的服務端任務交給中間件供應商去完成這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應地縮短了開發(fā)時間。高級中間件供應商提供以下這些復雜的中間件服務:狀態(tài)管理服務 -- 讓開發(fā)人員寫更少的代碼,不用關心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。</p><p> ?。?)持續(xù)性服務 : 讓開發(fā)人員不用對數據訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧,與數據庫無關的應用程序,這種應用程序更
49、易于開發(fā)與維護。分布式共享數據對象CACHE服務,讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。</p><p> ?。?)支持異構環(huán)境: J2EE能夠開發(fā)部署在異構環(huán)境中的可移植程序?;贘2EE的應用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構企業(yè)計算環(huán)境中是十分關鍵的。J2EE標準也允許用戶訂購與J2EE兼容的第三方的現成的
50、組件,把他們部署到異構環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。</p><p> ?。?)可伸縮性:企業(yè)必須要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新用戶。基于J2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載
51、平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數千個處理器,實現可高度伸縮的系統(tǒng),滿足未來商業(yè)應用的需要。</p><p> (5)穩(wěn)定的可用性: 一個服務器端平臺必須能全天候運轉以滿足公司用戶、合作伙伴的需要。這是實時性很強商業(yè)系統(tǒng)理想的選擇[5]。</p><p> 2.4關于Struts</p><p> 2.4.1 Struts簡介
52、</p><p> Struts已逐步越來越多運用于商業(yè)軟件,是一種非常優(yōu)秀的J2EE MVC實現方式。Struts用Java Servlet/JavaServer Pages技術,開發(fā)Web應用程序的開放源碼的framework。</p><p> 2.4.2 Struts的主要功能</p><p> (1) 包含一個controller servlet,能
53、將用戶的請求發(fā)送到相應的Action對象。</p><p> ?。?)JSP自由tag庫,并且在controller servlet中提供關聯支持,幫助開發(fā)員創(chuàng)建交互式表單應用。</p><p> ?。?)提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。Struts項目的目標是為創(chuàng)建Java web應用提供一
54、個開放源代framework。Struts framework的內核是基于例如Java Servlets, </p><p> JavaBeans, ResourceBundles, 和 XML,以及各種 Jakarta Commons包的標準技術的靈活的控制層。Struts提供了它自身的控制器組件,并整合了其他技術,以提供模型和視圖。Struts已逐步越來越多運用于商業(yè)軟件,是一種非常優(yōu)秀的J2EE MVC實
55、現方式[6]。</p><p> 2.4.3 Struts工作原理</p><p> MVC(Model-View-Controller),是一種常用的設計模式。MVC 減弱了業(yè)務邏輯接口和數據接口之間的耦合,以及讓視圖層更富于變化,MVC可以讓整個邏輯很清晰,這種思想和思維和人的思維很接近,很容易被理解。</p><p> MVC的工作原理如圖2-2所示:&
56、lt;/p><p> 圖2-2 MVC工作原理</p><p> Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬于 J2EE 規(guī)范)用作實現的一部分。Struts繼承了MVC的各項特性,并根據J2EE的特點,做了相應的變化與擴展。Struts的工作原理,如圖2-3所示:</p><p> 圖2-3 struts工作原理</p>
57、;<p> ?。?)Controller:在XML文件Struts-config.xml中,與之相關聯的是Controller,在Struts中,承擔MVC中Controller角色的是一個Servlet,叫ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發(fā)送到Struts的HTTP請求的入口點。它截取和分發(fā)這些請求到相應的動作類(這些動作類都是Action類的子類)。
58、另外控制組件也負責用相應的請求參數填充 Action From(通常稱之為FromBean),并傳給動作類(通常稱之為ActionBean)。動作類實現核心商業(yè)邏輯,它可以訪問java bean 或調用EJB。最后動作類把控制權傳給后續(xù)的JSP 文件,后者生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。</p><p> ?。?)視圖:主要由JSP生成頁面完成視圖,Struts提供豐富
59、的JSP 標簽庫: Html,Bean,Logic,Template等,這有利于分開表現邏輯和程序邏輯。</p><p> ?。?)模型:模型以一個或多個java bean的形式存在。這些bean分為三類:Action Form、Action、JavaBean or EJB。Action Form通常稱之為FormBean,封裝了來自于Client的用戶請求信息,如表單信息。Action通常稱之為ActionBe
60、an,獲取從ActionSevlet傳來的FormBean,取出FormBean中的相關信息,并做出相關的處理,一般是調用Java Bean或EJB等[7]。 </p><p> 2.5 關于Spring</p><p> 2.5.1 Spring簡介</p><p> Spring是一個開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應用開發(fā)的復雜
61、性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益[8]。</p><p> ◆目的:解決企業(yè)應用開發(fā)的復雜性</p><p> ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應用功能</p>
62、<p> ◆范圍:任何Java應用</p><p> 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。</p><p> ◆輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Sp
63、ring應用中的對象不依賴于Spring的特定類。 </p><p> ◆控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。</p><p>
64、◆面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發(fā)。應用對象只實現它們應該做的——完成業(yè)務邏輯——僅此而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關注點,例如日志或事務支持。 </p><p> ◆容器——Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以
65、配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同于傳統(tǒng)的重量級的EJB容器,它們經常是龐大與笨重的,難以使用。 </p><p> ◆框架——Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文
66、件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發(fā)留給了你。 </p><p> 所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。 </p><p> 2.5.2 為什么需要Spring</p><p> 你可能正在想“Spring不過是另外一個
67、的framework”。當已經有許多開放源代碼(和專有) J2EE framework時,我們?yōu)槭裁催€需要Spring Framework? </p><p> Spring是獨特的,因為若干個原因: </p><p> ◆它定位的領域是許多其他流行的framework沒有的。Spring關注提供一種方法管理你的業(yè)務對象。 </p><p> ◆ Spring
68、是全面的和模塊化的。Spring有分層的體系結構,這意味著你能選擇使用它孤立的任何部分,它的架構仍然是內在穩(wěn)定的。因此從你的學習中,你可得到最大的價值。例如,你可能選擇僅僅使用Spring來簡單化JDBC的使用,或用來管理所有的業(yè)務對象。 </p><p> ◆它的設計從底部幫助你編寫易于測試的代碼。Spring是用于測試驅動工程的理想的framework。 </p><p> Spr
69、ing對你的工程來說,它不需要一個以上的framework。Spring是潛在地一站式解決方案,定位于與典型應用相關的大部分基礎結構。它也涉及到其他framework沒有考慮到的內容。 </p><p> 2.5.3 Spring帶給我們什么</p><p> ◆方便解耦,簡化開發(fā)</p><p> 通過Spring提供的IoC容器,我們可以將對象之間的依賴關
70、系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應用。</p><p><b> ◆AOP編程的支持</b></p><p> 通過Spring提供的AOP功能,方便進行面向切面的編程,許多不容易用傳統(tǒng)OOP實現的功能可以通過AOP輕松應付。</
71、p><p><b> ◆聲明式事務的支持</b></p><p> 在Spring中,我們可以從單調煩悶的事務管理代碼中解脫出來,通過聲明式方式靈活地進行事務的管理,提高開發(fā)效率和質量。</p><p><b> ◆方便程序的測試</b></p><p> 可以用非容器依賴的編程方式進行幾乎所有
72、的測試工作,在Spring里,測試不再是昂貴的操作,而是隨手可做的事情。</p><p> ◆方便集成各種優(yōu)秀框架</p><p> Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。</p><p> ◆降低Ja
73、va EE API的使用難度</p><p> Spring對很多難用的Java EE API(如JDBC,JavaMail,遠程調用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低。</p><p> ◆Java 源碼是經典學習范例</p><p> Spring的源碼設計精妙、結構清晰、匠心獨用,處處體現
74、著大師對Java設計模式靈活運用以及對Java技術的高深造詣。Spring框架源碼無疑是Java技術的最佳實踐范例。如果想在短時間內迅速提高自己的Java技術水平和應用開發(fā)水平,學習和研究Spring源碼將會使你收到意想不到的效果[9]。</p><p> 2.6 關于B/S開發(fā)模式</p><p> 2.6.1為什么引入B/S開發(fā)模式</p><p> B/
75、S 開發(fā)模式伴隨著Internet的迅速發(fā)展,計算機技術正在由基于C/S(client/ Server)模式的應用系統(tǒng)轉變?yōu)榛贐/S模式的應用系統(tǒng)。過去,網絡軟件的開發(fā)都采用C/S(client)模式,在這種模式下,主要的業(yè)務邏輯都集中于用戶端程序,因此,必然導致以下問題:a) 系統(tǒng)安裝、調試、維護和升級困難。由于用戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個用戶端分別進行配置,同樣,在軟
76、件升級時也要對用戶端分別處理。b) 在整個系統(tǒng)中,業(yè)務邏輯和用戶界面都集中到了用戶端,必然會增加安全隱患。B/S模式帶來了巨大的好處:a) 開發(fā)成本及維護成本降低。由于B/S架構管理軟件只安裝在服務器端(Server)上,即應用程序在部署、升級、維護時,只需要在服務器端進行配置就可以了,網絡管理人員只需要管理服務器就行了,用戶界面主要事務邏輯在服務器(Server)端完全通過WWW瀏覽器實現,極少部分事務邏輯在
77、前端(Browser)實現,所有的用戶端只有瀏覽器,網絡管理人員只需要做硬件維護。b) 良好的安全性能,防火墻技術可以保證后臺數據庫的安全性。所</p><p> 2.7 MYSQL數據庫</p><p> 2.7.1 mysql的特點</p><p> MySQL是一種開放源代碼的關系型數據庫管理系統(tǒng)(RDBMS),MySQL數據庫系統(tǒng)使用最常用
78、的數據庫管理語言--結構化查詢語言(SQL)進行數據庫管理。</p><p> 由于MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++
79、、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型并且提供了完整的操作符支持查詢中的SELECT和WHERE操作。</p><p> 目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫[11]。</
80、p><p> 2.7.2 mysql的安裝和配置(部分截圖)[12]</p><p> 圖2-4mysql安裝圖(開始)</p><p> 安裝時一般采用默認路徑:</p><p> 圖2-5mysql安裝圖(路徑)</p><p> 圖2-6 sql安裝圖(數據庫類型)</p><p>
81、 為了支持中文,在下面的列表框中學者gb2312(切記)</p><p> 圖2-7mysql安裝圖(語言)</p><p> 圖2-8mysql安裝圖(等待成功)</p><p> 2.8 Tomcat服務器</p><p> 2.8.1 Tomcat 服務器簡介</p><p> Tomcat是一個免費
82、的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache,Sun和其它一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現。 Tomcat中采用了Servlet容器:Catalina,完整的實現了Servlet2.3和Jsp1.2規(guī)范。Tomcat提供了各種平臺的版本供下載,可以從其官方網站上下載其源代
83、碼版或者二進制版。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性[13]。</p><p> 2.8.2 Tomcat的特點</p><p> 在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉
84、化為Servlet文件,然后編譯。編譯以后,訪問將會很快。另外Tomcat也提供了一個應用:manager,訪問這個應用需要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。通過這個應用,輔助于Ftp,你可以在遠程通過Web部署和撤銷應用。當然本地也可以。</p><p> 2.8.3 Tomcat的優(yōu)勢</p><p> Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的W
85、eb服務器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache.我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet.這種集成只需要修改一下Apache和Tomcat的配置文件即可。</p><p> 2.8.4 Tomcat服務器的安裝和配置</p><p> 在開始安裝之
86、前,先準備J2SDK和TOMCAT兩個軟件,如果已經安裝了J2SDK,就只需TOMCAT即可。</p><p> ?。?)需設置的環(huán)境變量</p><p> 變量名:CATALINA_HOME變量值:D:\Program Files\tomcat6.0變量名:CLASSPATH</p><p> 變量值:.;%JAVA_HOME%\lib;%CATALINA
87、_HOME%\common\lib</p><p> ?。?)安裝完成后,打開tomcat服務器,啟動瀏覽器,在地址欄上輸入:http://localhost:8080/ 若出現以下界面說明安裝成功[14]。</p><p> 圖2-9 tomcat啟動頁面</p><p><b> 小結</b></p><p>
88、; 本章全面介紹本系統(tǒng)所用到的關鍵技術和工具,其中jsp作為javaweb開發(fā)的基礎,對它的運行機制要理解,同時還要明白它的優(yōu)劣勢;j2ee作為開發(fā)的標準也作了簡單介紹。而SSH(struts+spring+hibernate)作為本系統(tǒng)的核心與亮點技術,更是作了詳細介紹,要掌握他們的工作原理,主要功能。最后介紹了本系統(tǒng)使用的數據庫mysql以及tomcat服務器的安裝與配置。只有掌握了這些技術基礎,才能使本系統(tǒng)的開發(fā)正常進行。<
89、;/p><p> 第三章 系統(tǒng)需求分析和總體設計</p><p> 3.1 系統(tǒng)功能需求</p><p> 圖3-1 系統(tǒng)功能模塊</p><p> 如圖3-1所示,在本系統(tǒng)中主要闡述用戶管理、考試管理、成績管理、題目管理四個模塊。</p><p> ?。?)考試管理:實現選擇課程,準備考試,開始考試,自動閱卷,顯
90、示考試成績等。</p><p> ?。?)題目管理:實現試題庫中試題的分類和增加,刪除,以及答案的設置等。</p><p> ?。?)成績管理:實現前臺用戶的成績查詢,后臺管理員對成績的查詢。(4)用戶管理:實現用戶注冊、用戶信息修改、用戶查詢功能。</p><p> 3.2 系統(tǒng)角色及其功能分析</p><p> 3.2.1 系統(tǒng)的2
91、個角色:</p><p><b> (1)注冊用戶</b></p><p><b> (2)管理員</b></p><p> 3.2.2 系統(tǒng)角色的功能</p><p><b> (1)注冊用戶</b></p><p> 使用系統(tǒng)的功能,用戶必
92、須先注冊,只要注冊為網站用戶后,獲得自己的帳號,設置自己的密碼就具有以下功能:登錄,登出,參加考試,提交試卷,查詢成績,添加或修改個人資料。</p><p><b> (2)管理員</b></p><p> 管理員可以對試題屬性進行設置、對用戶資料的查看,刪除等,以及對成績的查詢等</p><p> 3.3 總體設計思想概述</p&
93、gt;<p> 本系統(tǒng)是基于B/S架構下的多層結構應用系統(tǒng)。B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了用戶端電腦載荷,減輕了系統(tǒng)維護與升
94、級的成本和工作量,降低了用戶的總體成本(TCO)[15]。 </p><p> 在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。推薦的分層式結構一般分為三層,從下至上分別為:數據訪問(持久)層、業(yè)務邏輯層(或稱為領域層)、表示層[16],如圖3-2:</p><p><b> 圖3-2 系統(tǒng)架構</b></p><p>
95、總的來說,采用分層結構的設計思想,可以讓每個層由一組相關的類或組件構成,共同完成特定的功能。層與層之間存在自上而下的依賴關系,上層組件會依賴下層組件的API,而下層組件則不依賴于上層組件。例如:表述層依賴于業(yè)務邏輯層,而業(yè)務邏輯層依賴于數據庫層。并且每個層對對上層公開API,但具體的實現細節(jié)對外透明。當某一層發(fā)生變化,只要API不變,不會影響其他層的實現。</p><p> 在本系統(tǒng)中,使用開源的mysql數據
96、庫,持久層用到spring所集成的Hibernate技術,業(yè)務邏輯層用普通javabean實現,表述層運用基于struts的MVC設計模式(struts用來做C層,spring實現V層與C層的解耦以及C層與M層的解耦)。</p><p><b> 3.4 數據庫設計</b></p><p> 3.4.1 E-R圖</p><p> 下面是
97、該系統(tǒng)數據庫表的E-R圖,如圖3-4</p><p><b> 圖3-4 E-R圖</b></p><p> 3.4.2數據表的設計</p><p> 下面列出了設計過程中所用到的數據庫表及其結構:</p><p> 1.tb_Lesson表用來保存課程的信息,如表3-1:</p><p>
98、; 表3-1 tb_Lesson</p><p> tb_manager表用來保存管理員信息,如表3-2:</p><p> 表3-2 tb_manageer</p><p> 3.tb_Questions表用來保存考試題目,如表3-3:</p><p> 表3-3 tb_Questions</p><p>
99、 4.tb_TaoTi表用來保存套題信息,如表3-4:</p><p> 表3-4:tb_TaoTi</p><p> 5. tb_Student表用來保存用戶個人資料,如表3-5:</p><p> 表3-5 tb_Student</p><p> 6.tb_StuResult表用來保存學生考試成績,如表3-6:</p>
100、;<p> 表3-6 tb_StuResult</p><p> 3.5 系統(tǒng)的類設計</p><p> 3.5.1 DAO類設計</p><p> 圖3-4 dao類設計</p><p> 如圖3-4,通過這個工廠獲取對應的 DAO,然后使用DAO 進行數據庫操作。</p><p> 3.5
101、.2 connDB類設計(部分)</p><p> 圖3-5 connDB類設計</p><p> 這些實體類將通過servlet映射到數據庫中</p><p> 3.5.3 過濾器類設計</p><p> 圖3-6 過濾器類設計1</p><p> 如圖3-6,這是編碼過濾器類,通過他可保證頁面不出現亂碼問
102、題。</p><p> 圖3-7 過濾器類設計2</p><p> 如圖3-7,這是登陸安全過濾器類,通過它來達到控制訪問權限的功能。</p><p> 3.5.4 監(jiān)聽器類設計</p><p> 如圖3-8,“CartSessionListener”啟動時把考試信息初始化到內存中,提高系統(tǒng)性能?!癙roductContextList
103、ener”啟動時把商品信息初始化到內存中,提高系統(tǒng)性能。</p><p> 圖3-8 監(jiān)聽器類設計</p><p><b> 3.6系統(tǒng)的用例圖</b></p><p> 3.6.1 總體用例分析</p><p> 圖3-9 總體用例圖</p><p> 如圖3-9,用戶管理、考試管理、
104、成績管理、題目管理四個模塊構成了本網上考試系統(tǒng)。使用者是指系統(tǒng)用戶,包括管理者和考試者用戶兩種,考試者只可以選擇課程,參加考試,查看成績,修改個人資料等,管理者通過用后臺管理就可以對試題庫,用戶,成績進行管理。</p><p> 3.6.2 用戶管理用例分析</p><p> 圖3-10 用戶管理用例圖</p><p> 如圖3-10,用戶管理模塊主要包括:用
105、戶注冊、修改資料、選擇課程、在線考試、成績查詢五個功能組成。</p><p> 3.6.3 考試管理用例分析</p><p> 圖3-11 考試管理用例圖</p><p> 如圖3-11,考試管理模塊主要包括:閱讀考試規(guī)則、選擇課程、準備考試、開始考試、自動閱卷、查看成績六個功能組成。</p><p> 3.6.4 考試題目管理用例分
106、析</p><p> 圖3-10考試題目管理用例圖</p><p> 如圖3-12,考題管理模塊主要包括:增加題目、刪除題目、題目分類、套題管理、答案設置等五個模塊組成。 </p><p> 3.6.5 成績管理用例分析</p><p> 圖3-11績查詢用例圖</p><p> 如圖3-13,成績查詢模塊主
107、要包括:前臺考試者的成績查詢,后臺管理者的成績查看。</p><p><b> 小結</b></p><p> 本章首先分析系統(tǒng)的功能需求,通過對系統(tǒng)功能模塊的劃分以及角色的劃分,明確了系統(tǒng)需求,為總體設計提供依據。接下來闡述了系統(tǒng)的總體設計思想,說明了本系統(tǒng)是基于B/S架構下的多層結構應用系統(tǒng)。最后通過對數據庫、過濾器、監(jiān)聽器、和實體類的設計分析,以及各個模塊用
108、例圖的描述,形成了開發(fā)的整體思路,為下一步編程實現各個具體功能鋪平了道路。</p><p> 第四章 系統(tǒng)的詳細設計</p><p> 4.1 數據庫與connDB類映射的實現</p><p> 前面第二章曾介紹過connDB類采用servlet的形式調用DAO來對數據庫實行更新,我們可以配置好Object和數據庫中表的映射關系,,這樣connDB類在啟動時就
109、可以加載數據庫調用的類,并可以根據配置文件對對象實現自動的加載,并且可以對這些Object實行自動的維護。</p><p><b> 圖例說明如下:</b></p><p> 圖4-1 connDB.java</p><p> 如圖4-1,connDB.java 文件配置了數據庫調用類的相關信息。</p><p>
110、 4.2 主要模塊的設計說明與界面</p><p> 4.2.1用戶管理模塊</p><p> 用戶管理模塊主要包括用戶注冊,登錄,退出3個部分.</p><p><b> (1)用戶注冊</b></p><p> 當用戶第一次登錄時首先要注冊,成為注冊用戶后,才可以進行其他操作.用戶可以通過單擊首頁的注冊按鍵
111、來打開注冊頁面進行會員注冊操作,用戶注冊頁面的運行結果如圖4-3所示.</p><p> 圖4-2戶登錄/注冊界面</p><p> 如果需要注冊,會自動跳轉到注冊頁面。部分結果如圖4-4:</p><p><b> 圖4-3冊界面</b></p><p> 校驗用戶登陸信息是是否正確的javaScript部分代
112、碼如下[17]:</p><p> <script language="javascript"></p><p> function checkForm(form){</p><p> if(form.name.value==""){</p><p> alert("請輸入
113、考生姓名!");form.name.focus();return false;</p><p><b> }</b></p><p> if(form.password1.value==""){</p><p> alert("請輸入登錄密碼!");form.password1.focus
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的在線考試系統(tǒng)畢業(yè)論文
- 基于java的在線考試系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——基于jsp的java在線考試系統(tǒng)
- 基于java的在線考試系統(tǒng)——畢業(yè)論文 (2)
- 畢業(yè)論文——基于jsp的java在線考試系統(tǒng)
- 畢業(yè)論文——基于jsp的java在線考試系統(tǒng)
- 基于JAVA的在線考試系統(tǒng)畢業(yè)論文.DOC
- 畢業(yè)論文---基于java的在線考試系統(tǒng)的設計
- 基于java技術的在線考試系統(tǒng)的開發(fā)畢業(yè)論文
- 基于java的網上考試系統(tǒng)畢業(yè)論文
- 基于java的在線購物系統(tǒng)的設計與實現——畢業(yè)論文
- 畢業(yè)論文——基于java的在線購物系統(tǒng)的設計與實現
- 基于java的在線購物系統(tǒng)的設計與實現——畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 畢業(yè)設計--基于java的在線考試系統(tǒng)
- 畢業(yè)設計--基于java的在線考試系統(tǒng)
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
評論
0/150
提交評論