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