畢業(yè)設(shè)計(論文)基于Java技術(shù)的在線考試系統(tǒng)的開發(fā)_第1頁
畢業(yè)設(shè)計(論文)基于Java技術(shù)的在線考試系統(tǒng)的開發(fā)_第2頁
畢業(yè)設(shè)計(論文)基于Java技術(shù)的在線考試系統(tǒng)的開發(fā)_第3頁
畢業(yè)設(shè)計(論文)基于Java技術(shù)的在線考試系統(tǒng)的開發(fā)_第4頁
畢業(yè)設(shè)計(論文)基于Java技術(shù)的在線考試系統(tǒng)的開發(fā)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、x xx x 大大 學學 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文) 題目: 基基于于 j ja av va a 技技術(shù)術(shù)的的在在線線考考試試 系系統(tǒng)統(tǒng)的的開開發(fā)發(fā) 學 院: 專 業(yè): 班 級: 學 號: 學生姓名: 指導老師: 2009 年 6 月 9 日 摘 要 在線考試系統(tǒng)旨在實現(xiàn)考試的無紙化管理,對一些科目的考試可以通 過互聯(lián)網(wǎng)絡(luò)或局域網(wǎng)進行,方便校方考務(wù)的管理,也方便了考生,尤其適 合考生分布廣,不易集中的遠程教育。我主要開發(fā)系統(tǒng)的后臺管理系統(tǒng) java 在線考試管理子系統(tǒng),它包括試題管理、考生管理、在線制作試卷、 控制學生考試的設(shè)置、試卷審批等功能。本論文主要介紹了對 java 在線 考試管

2、理子系統(tǒng)的分析、設(shè)計和開發(fā)的全部過程。運用 er 圖,程序流程 圖等對在線管理子系統(tǒng)的設(shè)計過程進行詳細的說明。 全文共分為開發(fā)方案、需求分析、系統(tǒng)設(shè)計、關(guān)鍵技術(shù)解決,結(jié)論五 部分。開發(fā)方案中主要介紹開發(fā)在線考試系統(tǒng)得目的、開發(fā)方案的選擇及 開發(fā)框架的技術(shù)的確定;需求分析介紹了在線考試系統(tǒng)的總體需求及系統(tǒng) 各模塊的功能需求;系統(tǒng)設(shè)計介紹了系統(tǒng)設(shè)計的指導思想、數(shù)據(jù)庫的設(shè)計、 系統(tǒng)模塊的設(shè)計;關(guān)鍵技術(shù)介紹了在具體實現(xiàn)時需解決的一些技術(shù),如開 發(fā)框架的整合技術(shù)、開發(fā)框架與數(shù)據(jù)庫的連接及數(shù)據(jù)的備份與還原。 本畢業(yè)設(shè)計的內(nèi)容是設(shè)計并且實現(xiàn)一個基于 web 技術(shù)的在線考試系統(tǒng), 故而系統(tǒng)主要以 j2ee 作

3、為開發(fā)基礎(chǔ),主要使用了 struts+spring 等多種協(xié)議或 技術(shù),用 eclipse 作為開發(fā)工具,以 mysql 作為數(shù)據(jù)庫,以 macromedia 公 司的 dreamweaver 作為界面美化工具?;緦崿F(xiàn)了網(wǎng)上考試系統(tǒng)應(yīng)有的主 要功能模塊,包括:管理員的登錄,管理和維護;用戶注冊、登錄、注銷, 個人信息的查詢、修改;考試管理,套題管理,成績管理。該系統(tǒng)界面簡 單、操作方便,容易維護。 關(guān)鍵詞:在線考試 j2ee struts + spring developmentdevelopment ofof anan onlineonline examination systemsyst

4、em basedbased onon javajava technologytechnology abstract 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, candidates are also convenient, especially for ca

5、ndidates widely distributed, easy to focus on distance education . the background of my main development system management system-java-line examination management subsystem, which includes questions management, candidate management, on-line production of papers, control of student test set, paper pr

6、ocessing and other functions. this paper introduces online examination management subsystem on the java analysis, design and development of the whole process. using er diagram, process flow charts and other on-line management subsystem design process detail. paper is divided into development program

7、s, requirements analysis, system design, key technical solutions, the conclusion of five parts. development program introduces the development of online examination system was the purpose, development plan and development framework for the choice of identification technology; demand analysis describ

8、es the overall demand for online examination system and the system functional requirements of each module; system designed for the guidance system design thinking, database design, system design module; key technology introduced to be addressed in the detailed realization of some technologies, such

9、as the integration of technology development framework, development framework and the database connection and data backup and restore. the contents of this graduation project is to design and implement a web-based technology, online examination system, guer system based mainly j2ee as the developmen

10、t, mainly using struts + spring and other agreements or technology, using eclipse as a development tool to mysql as the database to macromedias dreamweaver as a landscaping tool interface. basically an online examination system should be the main functional modules, including: an administrators logi

11、n, management and maintenance; user registration, login, logout, personal information, access, correction; test management, problem sets of management, performance management. the system interface is simple to operate, easy to maintain. keywords: online examination j2ee struts + spring 目錄 摘 要 ii abs

12、tractiii 第一章 引言.1 1.1課題背景.1 1.2課題目的和意義.1 1.3本文結(jié)構(gòu).1 第二章 系統(tǒng)應(yīng)用的關(guān)鍵技術(shù).2 2.1 jsp 技術(shù)介紹 .2 2.1.1 jsp 的概述.2 2.1.3 jsp 的強勢與劣勢.3 2.1.4 jsp 與 asp 的比較.3 2.2 java 組件 javabeans .4 2.2.1 什么是 javabeans.4 2.2.2 jsp 與 javabeans 的關(guān)系.4 2.3 j2ee 概述.4 2.4 關(guān)于 struts.5 2.4.1 struts 簡介.5 2.4.2 struts 的主要功能.5 2.4.3 struts 工作原

13、理.6 2.5 關(guān)于 spring.7 2.5.1 spring 簡介.7 2.5.2 為什么需要 spring.8 2.5.3 spring 帶給我們什么.8 2.6 關(guān)于 b/s 開發(fā)模式 .9 2.6.1 為什么引入 b/s 開發(fā)模式.9 2.7.1 mysql 的特點.9 2.7.2 mysql 的安裝和配置(部分截圖)12.10 2.8 tomcat 服務(wù)器.12 2.8.1 tomcat 服務(wù)器簡介.12 2.8.2 tomcat 的特點.12 2.8.3 tomcat 的優(yōu)勢.12 2.8.4 tomcat 服務(wù)器的安裝和配置.12 小結(jié) 13 第三章 系統(tǒng)需求分析和總體設(shè)計.1

14、4 3.1 系統(tǒng)功能需求 .14 3.2 系統(tǒng)角色及其功能分析 .14 3.2.1 系統(tǒng)的 2 個角色:.14 3.2.2 系統(tǒng)角色的功能.14 3.3 總體設(shè)計思想概述 .15 3.4 數(shù)據(jù)庫設(shè)計 .16 3.4.1 e-r 圖.16 3.4.2 數(shù)據(jù)表的設(shè)計.16 3.5 系統(tǒng)的類設(shè)計 .18 3.5.1 dao 類設(shè)計.18 3.5.2 conndb 類設(shè)計(部分).18 3.5.3 過濾器類設(shè)計.19 3.5.4 監(jiān)聽器類設(shè)計.19 3.6 系統(tǒng)的用例圖 .20 3.6.1 總體用例分析.20 3.6.2 用戶管理用例分析.21 3.6.3 考試管理用例分析.21 3.6.4 考試題目

15、管理用例分析.22 3.6.5 成績管理用例分析.22 小結(jié) 22 第四章 系統(tǒng)的詳細設(shè)計.23 4.1 數(shù)據(jù)庫與 conndb 類映射的實現(xiàn).23 4.2 主要模塊的設(shè)計說明與界面 .24 4.2.1 用戶管理模塊.24 4.2.2 考試管理模塊.29 4.2.3 題目管理模塊.31 4.3 系統(tǒng)的測試 .37 小結(jié) 38 第五章 總結(jié)與展望.38 5.1 工作總結(jié) .38 5.2 后續(xù)工作展望 .39 參考文獻.40 附錄41 致謝44 第一章 引言 1.1課題背景 網(wǎng)絡(luò)化教育代表了教育改革的一個發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個重要 特征,并對教育的發(fā)展形成新的推動力。隨著 interne

16、t/intranet 的迅速發(fā)展和廣泛 普及,網(wǎng)絡(luò)考試系統(tǒng)成為現(xiàn)代教育技術(shù)未來發(fā)展方向之一。作為網(wǎng)絡(luò)考試的一 個子系統(tǒng)網(wǎng)絡(luò)閱卷子系統(tǒng),也成為一個重要的研究領(lǐng)域。現(xiàn)代網(wǎng)絡(luò)考試作 為一種新的考試手段已經(jīng)開始進入人們的生活,正在給傳統(tǒng)教育模式帶來新的 變革,并對教育的發(fā)展形成新的推動力。網(wǎng)絡(luò)閱卷子系統(tǒng)突破了傳統(tǒng)考試方式 的時空限制,使閱卷方式更為靈活,同時充分利用計算機進行自動閱卷功能, 大大減輕了教師的工作量。 1.2課題目的和意義 現(xiàn)階段,學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織 一次考試至少要經(jīng)過五個步驟,即人工出卷,考生考試,人工閱卷,成績評估和試卷 分析。顯然,隨著考

17、試類型的不斷增加及考試要求的不斷提高,教師的工作量將會 越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考 試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不 斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。 人們迫切要求利用這些技術(shù)來進行在線考試,以減輕教師的工作負擔及提高工作 效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀、更加激發(fā)學 生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕 大部分采用這種方式。為了適應(yīng)新形勢的發(fā)展,我們推出了這一系統(tǒng),使其盡快在 各類考試中發(fā)揮高效,便捷的作用,把

18、老師從繁重的工作中解脫出來。 1.3本文結(jié)構(gòu) 本文共分五個章節(jié),系統(tǒng)地闡述了系統(tǒng)開發(fā)的全過程。 第一章,主要介紹了開發(fā)的背景、目的和意義。 第二章,主要介紹了本系統(tǒng)所用到的關(guān)鍵技術(shù)和工具,為下一步的設(shè)計的 設(shè)計奠定基礎(chǔ)。 第三章,主要對系統(tǒng)進行需求分析并進行總體設(shè)計。需求分析階段通過分 析系統(tǒng)的功能模塊的劃分以及角色的劃分,為系統(tǒng)的總體設(shè)計提供依據(jù)。 總體設(shè)計階段通過對數(shù)據(jù)庫、過濾器、監(jiān)聽器、和實體類的設(shè)計,以及各 個模塊用例圖的描述,形成了開發(fā)的整體思路。 第四章,主要介紹了主要模塊的設(shè)計與實現(xiàn),并給出關(guān)鍵源代碼和最終的 效果圖。 第五章,主要是對這次畢業(yè)設(shè)計的總結(jié)和對后續(xù)工作的展望。 第二

19、章 系統(tǒng)應(yīng)用的關(guān)鍵技術(shù) 2.1 jsp 技術(shù)介紹 2.1.1 jsp 的概述 jsp(java server pages)是由 sun microsystems 公司倡導、許多公司參與 一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準,類似于其他技術(shù)標準,如 asp,php 等,主 要用于開發(fā)動態(tài)網(wǎng)頁內(nèi)容。 jsp 是新一代的動態(tài)內(nèi)容編程技術(shù),它繼承了 java 技術(shù)的“一次編寫,隨 處運行”的特性,允許 web 開發(fā)人員開發(fā)和維護與平臺無關(guān),信息豐富動態(tài)的 web 頁面,包括 html,dhtml,xhtml 和 xml,它能使 web 開發(fā)人員輕易搭建網(wǎng) 絡(luò)平臺,建立起功能強大的 web 網(wǎng)站。jsp 可以

20、把用戶界面從內(nèi)容層次中分離 出來,使得 web 開發(fā)人員不必修改在底層的動態(tài)內(nèi)容,就可以修改整體的頁面 布局。 2.1.2 jsp 的運行機制 jsp 文檔被復制到 web 服務(wù)器的文檔目錄中。當有人請求這個文檔時,服 務(wù)器識別出這個帶有.jsp 擴展名的文檔,并意識到需要做特殊處理。第一次請 求這個文檔時,它被編譯成一個 servlet 對象,并存儲在內(nèi)存中,然后輸出內(nèi)容 回送給發(fā)出請求的用戶機。第一請求之后,只要有請求到來,服務(wù)器將進行檢 查,看看這個文件是否做過改動,如果沒有變化,服務(wù)器調(diào)用先前編譯過的 servlet 對象。 jsp 請求的步驟2如圖 2-1 所示。 (1)用戶機請求一

21、個 jsp 頁面。 (2)jsp 引擎編譯該 jsp 成一個 servlet。 web 瀏覽器 jsp 頁面 生成的 servlet 編譯的 servlet web 服務(wù)器 2第一次編 譯 3第二次編 譯 1請求 4響應(yīng) 圖 2-1 一個 jsp 的請求步驟 (3)生成的 servlet 被編譯并裝載。 (4)編譯的 servlet 服務(wù)請求并把一響應(yīng)發(fā)送回用戶機。 jsp 主要是針對 java 程序處理不熟悉的人設(shè)計的。與 servlet 相比,jsp 有 如下兩個優(yōu)勢:方便與 html 混合;在開發(fā)、測試方面比 servlet 方便。 2.1.3 jsp 的強勢與劣勢 jsp 的強勢: (

22、1)可移植性。jsp 是用 java 開發(fā)的,因此它是可移植的,可以一處編寫, 隨處運行,支持多平臺。 (2)有效性。jsp 的初始化代碼僅在 web 服務(wù)器第一次加載時執(zhí)行一次。 一旦加載,在處理一個新的請求時,只須調(diào)用一個新的服務(wù)方法。與處理 每個請求都要全部加載一個完整的可執(zhí)行程序相比,這是一個相當有效的 技術(shù)。 (3)強大的可伸縮性和可擴充性。它能夠在面向?qū)ο蟮恼Z言(java)中進行 開發(fā),并可以在現(xiàn)有對象基礎(chǔ)上進行擴展,形成新的對象,從而更好地滿 足用戶的需求。 (4)多樣化和功能強大的開發(fā)工具支持。java 已經(jīng)有了許多非常優(yōu)秀的開 發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可

23、以順利的運行于多 種平臺之下。 (5)java servlet 是一種開發(fā) web 應(yīng)用的理想框架。jsp 以 servlet 技術(shù)為 基礎(chǔ),又在許多方面作了改進。利用跨平臺的 javabeans 組件,jsp 為分離 處理邏輯與顯示樣式提供了卓越的解決方案。 jsp 的劣勢: (1)為了跨平臺的功能,為了極度的伸縮能力,極大的增加了產(chǎn)品的復雜 性,java 系統(tǒng)中包括 jre,jdk,j2ee,ejb 等多種產(chǎn)品,這就需要大 量的學習和培訓才能掌握它們,將它們有效地搭配在一起,靈活地加以 運用。 (2)java 的運行速度快是由于用戶將 class 常駐內(nèi)存,這樣使用的內(nèi)存空 間就比較大。另

24、一方面,它還需要硬盤空間來存儲一系列.java 文件和. class 文件以及對應(yīng)的版本文件。 (3)jsp 只有對 java 相當熟悉的人才能用得很好。 (4)jsp 程序調(diào)試困難。 2.1.4 jsp 與 asp 的比較 jsp 與 asp(active server page)兩者都是常用的動態(tài)網(wǎng)頁技術(shù),也都是可以 嵌入 html 中的程序,但兩者是有著本質(zhì)的不同,主要從以下幾個方面對其進 行比較: (1)web 服務(wù)器的支持服務(wù)器的支持:大多數(shù)通用的 web 服務(wù)器如: apache、netscape 和 microsoft iis 都支持 jsp 頁面,只有微軟本身的 microso

25、ft iis 和 personal web server 可以支持 asp。 (2)平臺的支持平臺的支持:jsp 具有平臺獨立性,只要是一般的 java 程序可以運行 的平臺,都支持 jsp 程序。windows 平臺可以很好的支持 asp,但 asp 對于基 于 win32 逐漸模型的依賴,使得它難于一直到其它平臺上。 (3)組件模型組件模型:jsp 是建立在可重用的、跨平臺的組件(如: javabeans、enterprises javabeans 和用戶定制的標簽庫等組件)之上的,而 asp 使用的是基于 win32 的 com 組件模型。 (4)腳本語言腳本語言:jsp 可以使用 ja

26、va 編程語言或 javascript 作為腳本語言, 而 asp 使用 vbscript 或 jscript 作為腳本語言。 (5)安全性安全性:jsp 使用 java 安全模型,而 asp 使用 windows nt 的安全 結(jié)構(gòu)。 (6)與與 access 數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接:jsp 使用 jdbc 建立與 access 數(shù)據(jù)庫的連 接,而 asp 對 access 數(shù)據(jù)庫使用 data active objects。 (7)用戶定制的標簽用戶定制的標簽:jsp 可以使用用戶定制標簽庫進行擴充,而 asp 中 沒有用戶定制標簽庫,asp 是不能擴充的3。 2.2 java 組件 j

27、avabeans 2.2.1 什么是 javabeans javabeans 事實上有三層含義。首先,javabeans 是一種規(guī)范,一種在 java(包括 jsp)中使用可重復使用的 java 組件的技術(shù)規(guī)范。其次,javabeans 是一個 java 的類,一般來說,這樣的 java 類將對應(yīng)于一個獨立的.java 文件, 在絕大多數(shù)情況下,這應(yīng)該是一個 public 類型的類。最后,當 javabeans 這樣 的一個 java 類在我們的具體的 java 程序中被示例之后,我們有時也會將這樣的 一個 javabeans 的實例稱之為 javabeans4。 2.2.2 jsp 與 ja

28、vabeans 的關(guān)系 使用 jsp 技術(shù),web 頁面開發(fā)人員可以使用 html 和 xml 標識來設(shè)計和 格式化最終頁面。使用 jsp 標識或者小腳本生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容 的邏輯被封裝在 jsp 標識和 javabeans 組件中,并且捆綁在小腳本中,所有的 腳本在服務(wù)器端運行。核心邏輯封裝在標識和 beans 中,可以方便頁面設(shè)計者 編輯和使用 jsp 頁面。 在服務(wù)器端,jsp 引擎解釋 jsp 標識和小腳本生成所請求的內(nèi)容(例如,通 過訪問 javabeans 組件,使用 jdbc 技術(shù)訪問數(shù)據(jù)庫),并且將結(jié)果以 html(或 xml)頁面的形式發(fā)送回瀏覽器。 絕大多數(shù) j

29、sp 頁面依賴于可重用的跨平臺的足見(javabeans 或者 enterprise javabeans 組件)來執(zhí)行應(yīng)用程序所要求的復雜的處理。這樣的好處是開發(fā)人員 能夠共享和交換執(zhí)行普通操作的組件,加速了總體開發(fā)過程。因此,基于 web 的較為復雜的應(yīng)用程序(如 jsp 開發(fā)網(wǎng)站或網(wǎng)上 mis),jsp 的復雜架構(gòu)必須由 javabeans 達成。 2.3 j2ee 概述 j2ee(java 2 platform enterprise edition)是使用 java 技術(shù)開發(fā)企業(yè)級應(yīng)用的 一種事實上的工業(yè)標準(sun 公司出于其自身利益的考慮,至今沒有將 java 及其 相關(guān)技術(shù)納入標準

30、化組織的體系),它是 java 技術(shù)不斷適應(yīng)和促進企業(yè)級應(yīng)用 過程中的產(chǎn)物。目前,java 平臺有三個版本:適用于小型設(shè)備和智能卡的 j2me(java 2 platform micro edition)、適用于桌面系統(tǒng)的 j2se(java 2 platform standard edition)和適用于企業(yè)級應(yīng)用的 j2ee(java 2 platform enterprise edition)。 sun 推出 j2ee 的目的是為了克服傳統(tǒng) client/server 模式的弊病,迎合 browser/server 架構(gòu)的潮流,為應(yīng)用 java 技術(shù)開發(fā)服務(wù)器端應(yīng)用提供一個平臺 獨立的、

31、可移植的、多用戶的、安全的和基于標準的企業(yè)級平臺,從而簡化企 業(yè)應(yīng)用的開發(fā)、管理和部署。j2ee 是一個標準,而不是一個現(xiàn)成的產(chǎn)品。各個 平臺開發(fā)商按照 j2ee 規(guī)范分別開發(fā)了不同的 j2ee 應(yīng)用服務(wù)器,j2ee 應(yīng)用服務(wù) 器是 j2ee 企業(yè)級應(yīng)用的部署平臺。由于它們都遵循了 j2ee 規(guī)范,因此,使用 j2ee 技術(shù)開發(fā)的企業(yè)級應(yīng)用可以部署在各種 j2ee 應(yīng)用服務(wù)器上。為了推廣并 規(guī)范化使用 j2ee 架構(gòu)企業(yè)級應(yīng)用的體系架構(gòu),sun 同時給出了一個建議性的 j2ee 應(yīng)用設(shè)計模型:j2ee blueprints。j2ee blueprints 提供了實施 j2ee 企業(yè)級 應(yīng)用的體

32、系架構(gòu)、設(shè)計模式和相關(guān)的代碼,通過應(yīng)用 j2ee blueprints 所描述的 體系模型,能夠部分簡化架構(gòu)企業(yè)級應(yīng)用這項復雜的工作。j2ee blueprints 是 開發(fā)人員設(shè)計和優(yōu)化 j2ee 組件的基本原則,同時為圍繞開發(fā)工作進行職能分 工給出了指導性策略,以幫助應(yīng)用開發(fā)設(shè)計人員合理地分配技術(shù)資源。 j2ee 的優(yōu)勢主要有以下幾點: (1)高效的開發(fā): j2ee 允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中 間件供應(yīng)商去完成這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地 縮短了開發(fā)時間。高級中間件供應(yīng)商提供以下這些復雜的中間件服務(wù):狀態(tài)管理 服務(wù) - 讓開發(fā)人員寫更少的代碼,不

33、用關(guān)心如何管理狀態(tài),這樣能夠更快地 完成程序開發(fā)。 (2)持續(xù)性服務(wù) : 讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進行編碼就能編寫應(yīng)用程 序,能生成更輕巧,與數(shù)據(jù)庫無關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維 護。分布式共享數(shù)據(jù)對象 cache 服務(wù),讓開發(fā)人員編制高性能的系統(tǒng),極大 提高整體部署的伸縮性。 (3)支持異構(gòu)環(huán)境: j2ee 能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序。基于 j2ee 的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計合理的基 于 j2ee 的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算 環(huán)境中是十分關(guān)鍵的。j2ee 標準也允許用戶訂購與 j2ee 兼容的第三方的

34、現(xiàn)成 的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。 (4)可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的 可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新用戶。基于 j2ee 平 臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端 unix 與大型 機系統(tǒng),這種系統(tǒng)單機可支持 64 至 256 個處理器。 (這是 nt 服務(wù)器所望塵莫 及的)j2ee 領(lǐng)域的供應(yīng)商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶 頸,允許多臺服務(wù)器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮 的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。 (5)穩(wěn)定的可用性: 一個服務(wù)器

35、端平臺必須能全天候運轉(zhuǎn)以滿足公司用戶、 合作伙伴的需要。這是實時性很強商業(yè)系統(tǒng)理想的選擇5。 2.4 關(guān)于 struts 2.4.1 struts 簡介 struts 已逐步越來越多運用于商業(yè)軟件,是一種非常優(yōu)秀的 j2ee mvc 實 現(xiàn)方式。struts 用 java servlet/javaserverpages 技術(shù),開發(fā) web 應(yīng)用程序的開 放源碼的 framework。 2.4.2 struts 的主要功能 (1) 包含一個 controllerservlet,能將用戶的請求發(fā)送到相應(yīng)的 action 對象。 (2)jsp 自由 tag 庫,并且在 controllerservl

36、et 中提供關(guān)聯(lián)支持,幫助開發(fā)員 創(chuàng)建交互式表單應(yīng)用。 (3)提供了一系列實用對象:xml 處理、通過 javareflectionapis 自動處 理 javabeans 屬性、國際化的提示和消息。struts 項目的目標是為創(chuàng)建 java web 應(yīng)用提供一個開放源代 framework。struts framework 的內(nèi)核是基于例如 java servlets, javabeans, resourcebundles, 和 xml,以及各種 jakarta commons 包的標準技 術(shù)的靈活的控制層。struts 提供了它自身的控制器組件,并整合了其他技術(shù),以 提供模型和視圖。str

37、uts 已逐步越來越多運用于商業(yè)軟件,是一種非常優(yōu)秀的 j2ee mvc 實現(xiàn)方式6。 2.4.3 struts 工作原理 mvc(model-view-controller) ,是一種常用的設(shè)計模式。mvc 減弱了業(yè) 務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化,mvc 可以讓整 個邏輯很清晰,這種思想和思維和人的思維很接近,很容易被理解。 mvc 的工作原理如圖 2-2 所示: 圖 2-2 mvc 工作原理 struts 是 mvc 的一種實現(xiàn),它將 servlet 和 jsp 標記(屬于 j2ee 規(guī)范) 用作實現(xiàn)的一部分。struts 繼承了 mvc 的各項特性,并根據(jù) j2

38、ee 的特點,做 了相應(yīng)的變化與擴展。struts 的工作原理,如圖 2-3 所示: 圖 2-3 struts 工作原理 (1)controller:在 xml 文件 struts-config.xml 中,與之相關(guān)聯(lián)的是 controller, 在 struts 中,承擔 mvc 中 controller 角色的是一個 servlet,叫 actionservlet。actionservlet 是一個通用的控制組件。這個控制組件提供了處理 所有發(fā)送到 struts 的 http 請求的入口點。它截取和分發(fā)這些請求到相應(yīng)的動 作類(這些動作類都是 action 類的子類) 。另外控制組件也負責

39、用相應(yīng)的請求 參數(shù)填充 action from(通常稱之為 frombean),并傳給動作類(通常稱之為 actionbean) 。動作類實現(xiàn)核心商業(yè)邏輯,它可以訪問 java bean 或調(diào)用 ejb。 最后動作類把控制權(quán)傳給后續(xù)的 jsp 文件,后者生成視圖。所有這些控制邏輯 利用 struts-config.xml 文件來配置。 (2)視圖:主要由 jsp 生成頁面完成視圖,struts 提供豐富的 jsp 標簽庫: html,bean,logic,template 等,這有利于分開表現(xiàn)邏輯和程序邏輯。 (3)模型:模型以一個或多個 java bean 的形式存在。這些 bean 分為三

40、類: action form、action、javabean or ejb。action form 通常稱之為 formbean,封 裝了來自于 client 的用戶請求信息,如表單信息。action 通常稱之為 actionbean,獲取從 actionsevlet 傳來的 formbean,取出 formbean 中的相關(guān) 信息,并做出相關(guān)的處理,一般是調(diào)用 java bean 或 ejb 等7。 2.5 關(guān)于 spring 2.5.1 spring 簡介 spring 是一個開源框架,它由 rod johnson 創(chuàng)建。它是為了解決企業(yè)應(yīng)用 開發(fā)的復雜性而創(chuàng)建的。spring 使用基本的

41、 javabean 來完成以前只可能由 ejb 完成的事情。然而,spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測 試性和松耦合的角度而言,任何 java 應(yīng)用都可以從 spring 中受益8。 目的:解決企業(yè)應(yīng)用開發(fā)的復雜性 功能:使用基本的 javabean 代替 ejb,并提供了更多的企業(yè)應(yīng)用功能 范圍:任何 java 應(yīng)用 簡單來說,spring 是一個輕量級的控制反轉(zhuǎn)(ioc)和面向切面(aop)的容器 框架。 輕量輕量從大小與開銷兩方面而言 spring 都是輕量的。完整的 spring 框 架可以在一個大小只有 1mb 多的 jar 文件里發(fā)布。并且 spring 所需

42、的處理開 銷也是微不足道的。此外,spring 是非侵入式的:典型地,spring 應(yīng)用中的對 象不依賴于 spring 的特定類。 控制反轉(zhuǎn)控制反轉(zhuǎn)spring 通過一種稱作控制反轉(zhuǎn)(ioc)的技術(shù)促進了松耦合。 當應(yīng)用了 ioc,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是 這個對象自己創(chuàng)建或者查找依賴對象。你可以認為 ioc 與 jndi 相反不是 對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴 傳遞給它。 面向切面面向切面spring 提供了面向切面編程的豐富支持,允許通過分離應(yīng) 用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transa

43、ction)管理) 進行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此 而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支 持。 容器容器spring 包含并管理應(yīng)用對象的配置和生命周期,在這個意義上 它是一種容器,你可以配置你的每個 bean 如何被創(chuàng)建基于一個可配置原型 (prototype) ,你的 bean 可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個 新的實例以及它們是如何相互關(guān)聯(lián)的。然而,spring 不應(yīng)該被混同于傳統(tǒng) 的重量級的 ejb 容器,它們經(jīng)常是龐大與笨重的,難以使用。 框架框架spring 可以將簡單的組件配置、組合成為復雜的應(yīng)用。在 s

44、pring 中,應(yīng)用對象被聲明式地組合,典型地是在一個 xml 文件里。spring 也 提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等) ,將應(yīng)用邏輯的開發(fā)留 給了你。 所有 spring 的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試 的代碼。它們也為 spring 中的各種模塊提供了基礎(chǔ)支持。 2.5.2 為什么需要 spring 你可能正在想“spring 不過是另外一個的 framework”。當已經(jīng)有許多開放源 代碼(和專有) j2ee framework 時,我們?yōu)槭裁催€需要 spring framework? spring 是獨特的,因為若干個原因: 它定位的領(lǐng)域是許

45、多其他流行的 framework 沒有的。spring 關(guān)注提供一 種方法管理你的業(yè)務(wù)對象。 spring 是全面的和模塊化的。spring 有分層的體系結(jié)構(gòu),這意味著你能選 擇使用它孤立的任何部分,它的架構(gòu)仍然是內(nèi)在穩(wěn)定的。因此從你的學習中,你 可得到最大的價值。例如,你可能選擇僅僅使用 spring 來簡單化 jdbc 的使用, 或用來管理所有的業(yè)務(wù)對象。 它的設(shè)計從底部幫助你編寫易于測試的代碼。spring 是用于測試驅(qū)動工 程的理想的 framework。 spring 對你的工程來說,它不需要一個以上的 framework。spring 是潛在地 一站式解決方案,定位于與典型應(yīng)用相關(guān)

46、的大部分基礎(chǔ)結(jié)構(gòu)。它也涉及到其他 framework 沒有考慮到的內(nèi)容。 2.5.3 spring 帶給我們什么 方便解耦,簡化開發(fā)方便解耦,簡化開發(fā) 通過 spring 提供的 ioc 容器,我們可以將對象之間的依賴關(guān)系交由 spring 進行控制,避免硬編碼所造成的過度程序耦合。有了 spring,用戶不必再為單 實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層 的應(yīng)用。 aop 編程的支持編程的支持 通過 spring 提供的 aop 功能,方便進行面向切面的編程,許多不容易用 傳統(tǒng) oop 實現(xiàn)的功能可以通過 aop 輕松應(yīng)付。 聲明式事務(wù)的支持聲明式事務(wù)的支持 在

47、 spring 中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明 式方式靈活地進行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。 方便程序的測試方便程序的測試 可以用非容器依賴的編程方式進行幾乎所有的測試工作,在 spring 里,測 試不再是昂貴的操作,而是隨手可做的事情。 方便集成各種優(yōu)秀框架方便集成各種優(yōu)秀框架 spring 不排斥各種優(yōu)秀的開源框架,相反,spring 可以降低各種框架的使 用難度,spring 提供了對各種優(yōu)秀框架(如 struts,hibernate、hession、quartz)等的直接支持。 降低降低 java ee api 的使用難度的使用難度 spring 對很多

48、難用的 java ee api(如 jdbc,javamail,遠程調(diào)用等)提 供了一個薄薄的封裝層,通過 spring 的簡易封裝,這些 java ee api 的使用難 度大為降低。 java 源碼是經(jīng)典學習范例源碼是經(jīng)典學習范例 spring 的源碼設(shè)計精妙、結(jié)構(gòu)清晰、匠心獨用,處處體現(xiàn)著大師對 java 設(shè) 計模式靈活運用以及對 java 技術(shù)的高深造詣。spring 框架源碼無疑是 java 技術(shù) 的最佳實踐范例。如果想在短時間內(nèi)迅速提高自己的 java 技術(shù)水平和應(yīng)用開發(fā) 水平,學習和研究 spring 源碼將會使你收到意想不到的效果9。 2.6 關(guān)于 b/s 開發(fā)模式 2.6.1

49、 為什么引入 b/s 開發(fā)模式 b/s 開發(fā)模式 伴隨著 internet 的迅速發(fā)展,計算機技術(shù)正在由基于 c/s(client/ server)模式 的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛?b/s 模式的應(yīng)用系統(tǒng)。 過去,網(wǎng)絡(luò)軟件的開發(fā)都采用 c/s(client)模式,在這種模式下,主要的業(yè)務(wù) 邏輯都集中于用戶端程序,因此,必然導致以下問題: a) 系統(tǒng)安裝、調(diào)試、維護和升級困難。由于用戶端的硬件配置可能存在差異, 軟件環(huán)能各不相同,因此,在安裝時,必須對每一個用戶端分別進行配置,同 樣,在軟件升級時也要對用戶端分別處理。 b) 在整個系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了用戶端,必然會增加安全隱 患。 b

50、/s 模式帶來了巨大的好處: a) 開發(fā)成本及維護成本降低。由于 b/s 架構(gòu)管理軟件只安裝在服務(wù)器端 (server)上,即應(yīng)用程序在部署、升級、維護時,只需要在服務(wù)器端進行配 置就可以了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯 在服務(wù)器(server)端完全通過 www 瀏覽器實現(xiàn),極少部分事務(wù)邏輯在前端 (browser)實現(xiàn),所有的用戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護。 b) 良好的安全性能,防火墻技術(shù)可以保證后臺數(shù)據(jù)庫的安全性。所有的配置工 作都集中在服務(wù)器端且所有用戶端請求都是通過 dbms 來訪問數(shù)據(jù)庫,從而大 大減少了數(shù)據(jù)直接暴露的風險。 2.7 m

51、ysql 數(shù)據(jù)庫 2.7.1 mysql 的特點 mysql 是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(rdbms) ,mysql 數(shù)據(jù)庫 系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言-結(jié)構(gòu)化查詢語言(sql)進行數(shù)據(jù)庫管理。 由于 mysql 是開放源代碼的,因此任何人都可以在 general public license 的許可下下載并根據(jù)個性化的需要對其進行修改。mysql 因為其速度、 可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認為在不需要事務(wù)化處理的情況下, mysql 是管理內(nèi)容最好的選擇。它使用系統(tǒng)核心提供的多線程機制提供完全的 多線程運行模式,提供了面向 c、c+、eiffel、java、perl、

52、php、python 以 及 tcl 等編程語言的編程接口(apis) ,支持多種字段類型并且提供了完整的操 作符支持查詢中的 select 和 where 操作。 目前 mysql 被廣泛地應(yīng)用在 internet 上的中小型網(wǎng)站中。由于其體積小、 速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降 低網(wǎng)站總體擁有成本而選擇了 mysql 作為網(wǎng)站數(shù)據(jù)庫11。 2.7.2 mysql 的安裝和配置(部分截圖)12 圖 2-4mysql 安裝圖(開始) 安裝時一般采用默認路徑: 圖 2-5mysql 安裝圖(路徑) 圖 2-6 sql 安裝圖(數(shù)據(jù)庫類型) 為了支持中文,在下

53、面的列表框中學者 gb2312(切記) 圖 2-7mysql 安裝圖(語言) 圖 2-8mysql 安裝圖(等待成功) 2.8 tomcat 服務(wù)器 2.8.1 tomcat 服務(wù)器簡介 tomcat 是一個免費的開源的 serlvet 容器,它是 apache 基金會的 jakarta 項目中的一個核心項目,由 apache,sun 和其它一些公司及個人共同開發(fā)而成。 由于有了 sun 的參與和支持,最新的 servlet 和 jsp 規(guī)范總能在 tomcat 中得到 體現(xiàn)。 tomcat 中采用了 servlet 容器:catalina,完整的實現(xiàn)了 servlet2.3 和 jsp1.2

54、 規(guī)范。tomcat 提供了各種平臺的版本供下載,可以從其官方網(wǎng)站上 下載其源代碼版或者二進制版。由于 java 的跨平臺特性,基于 java 的 tomcat 也具有跨平臺性13。 2.8.2 tomcat 的特點 在 tomcat 中,應(yīng)用程序的部署很簡單,你只需將你的 war 放到 tomcat 的 webapp 目錄下,tomcat 會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪 問這個應(yīng)用的 jsp 時,通常第一次會很慢,因為 tomcat 要將 jsp 轉(zhuǎn)化為 servlet 文件,然后編譯。編譯以后,訪問將會很快。另外 tomcat 也提供了一 個應(yīng)用:manager,訪問這個

55、應(yīng)用需要用戶名和密碼,用戶名和密碼存儲在一個 xml 文件中。通過這個應(yīng)用,輔助于 ftp,你可以在遠程通過 web 部署和撤銷應(yīng) 用。當然本地也可以。 2.8.3 tomcat 的優(yōu)勢 tomcat 不僅僅是一個 servlet 容器,它也具有傳統(tǒng)的 web 服務(wù)器的功能: 處理 html 頁面。但是與 apache 相比,它的處理靜態(tài) html 的能力就不如 apache.我們可以將 tomcat 和 apache 集成到一塊,讓 apache 處理靜態(tài) html, 而 tomcat 處理 jsp 和 servlet.這種集成只需要修改一下 apache 和 tomcat 的 配置文件即可

56、。 2.8.4 tomcat 服務(wù)器的安裝和配置 在開始安裝之前,先準備 j2sdk 和 tomcat 兩個軟件,如果已經(jīng)安裝了 j2sdk,就只需 tomcat 即可。 (1)需設(shè)置的環(huán)境變量 變量名:catalina_home 變量值:d:program filestomcat6.0 變量名:classpath 變量值:.;%java_home%lib;%catalina_home%commonlib (2)安裝完成后,打開 tomcat 服務(wù)器,啟動瀏覽器,在地址欄上輸入: http:/localhost:8080/ 若出現(xiàn)以下界面說明安裝成功14。 圖 2-9 tomcat 啟動頁面

57、小結(jié) 本章全面介紹本系統(tǒng)所用到的關(guān)鍵技術(shù)和工具,其中 jsp 作為 javaweb 開 發(fā)的基礎(chǔ),對它的運行機制要理解,同時還要明白它的優(yōu)劣勢;j2ee 作為開發(fā) 的標準也作了簡單介紹。而 ssh(struts+spring+hibernate)作為本系統(tǒng)的核心 與亮點技術(shù),更是作了詳細介紹,要掌握他們的工作原理,主要功能。最后介 紹了本系統(tǒng)使用的數(shù)據(jù)庫 mysql 以及 tomcat 服務(wù)器的安裝與配置。只有掌握了 這些技術(shù)基礎(chǔ),才能使本系統(tǒng)的開發(fā)正常進行。 第三章 系統(tǒng)需求分析和總體設(shè)計 3.1 系統(tǒng)功能需求 圖 3-1 系統(tǒng)功能模塊 如圖 3-1 所示,在本系統(tǒng)中主要闡述用戶管理、考試管

58、理、成績管理、題 目管理四個模塊。 (1)考試管理:實現(xiàn)選擇課程,準備考試,開始考試,自動閱卷,顯示考試成 績等。 (2)題目管理:實現(xiàn)試題庫中試題的分類和增加,刪除,以及答案的設(shè)置等。 (3)成績管理:實現(xiàn)前臺用戶的成績查詢,后臺管理員對成績的查詢。 (4)用戶管理:實現(xiàn)用戶注冊、用戶信息修改、用戶查詢功能。 3.2 系統(tǒng)角色及其功能分析 3.2.1 系統(tǒng)的 2 個角色: (1)注冊用戶 (2)管理員 3.2.2 系統(tǒng)角色的功能 (1)注冊用戶 使用系統(tǒng)的功能,用戶必須先注冊,只要注冊為網(wǎng)站用戶后,獲得自己的 帳號,設(shè)置自己的密碼就具有以下功能:登錄,登出,參加考試,提交試卷, 查詢成績,添

59、加或修改個人資料。 (2)管理員 管理員可以對試題屬性進行設(shè)置、對用戶資料的查看,刪除等,以及對成 績的查詢等 3.3 總體設(shè)計思想概述 本系統(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ù)的興起,對 c/s 結(jié)構(gòu)的一種 變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過 www 瀏覽器來實 現(xiàn),極少部分事務(wù)邏輯在前端(browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端 (server)實現(xiàn),形成所謂三層 3-tier 結(jié)構(gòu)。這樣就大大簡化了用戶端電腦載荷, 減輕了系統(tǒng)維護與升級的成本和工作量,降低了

60、用戶的總體成本(tco)15。 在軟件體系架構(gòu)設(shè)計中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。 推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問(持久)層、業(yè) 務(wù)邏輯層(或稱為領(lǐng)域?qū)樱?、表示層16,如圖 3-2: 圖 3-2 系統(tǒng)架構(gòu) 總的來說,采用分層結(jié)構(gòu)的設(shè)計思想,可以讓每個層由一組相關(guān)的類或組 件構(gòu)成,共同完成特定的功能。層與層之間存在自上而下的依賴關(guān)系,上層組 件會依賴下層組件的 api,而下層組件則不依賴于上層組件。例如:表述層依 賴于業(yè)務(wù)邏輯層,而業(yè)務(wù)邏輯層依賴于數(shù)據(jù)庫層。并且每個層對對上層公開 api,但具體的實現(xiàn)細節(jié)對外透明。當某一層發(fā)生變化,只要 api 不變,不會

溫馨提示

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

評論

0/150

提交評論