

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于java的計算機考試系統(tǒng)</p><p> 學院(系): 計算機學院 </p><p><b> 摘要</b></p><p> 無紙化考試系統(tǒng)是現(xiàn)代教育的重要標志,讓考試的結果更加的合理、公正、公平,也可以節(jié)約人力成本。高校在線考試系統(tǒng),常用客戶機/服務器(C/S)型的MIS型架構,或基于Web使用瀏覽器/
2、服務器 (B/S)的架構。C/S架構的在線考試系統(tǒng),試題存放在遠程服務器上,客戶端安裝考試應用程序和數(shù)據(jù)庫客戶機配置,每次考試時需對客戶端進行安裝、配置。而采用B/S架構的考試系統(tǒng),通過與B/S結構的數(shù)據(jù)庫管理系統(tǒng)結合可實現(xiàn)瘦客戶機,系統(tǒng)維護僅需在服務器端進行。故開發(fā)了基于B/S的在線考試系統(tǒng)。網絡應用軟件運行的模式主要有兩類:C/S和B/S模式。前者主要的缺點是維護、升級相對比較麻煩,費用也比較高;B/S(Browser/Server
3、)結構即瀏覽器和服務器結構。在這種結構下,用戶工作界面是通過WWW 瀏覽器來實現(xiàn),極少部分事務邏輯在前端 (Browser)實現(xiàn),主要事務邏輯在服務器端(Server)實現(xiàn)。這樣大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本。</p><p> 本論文的內容就是設計一個基于java的B/S結構的計算機考試系統(tǒng),可以基本實現(xiàn)學生、教師以及管理員所需要的功能。在這個B/S結構的設
4、計中,學生通過計算機網絡登入系統(tǒng),實時提交解答。系統(tǒng)能保存結果,供教師披閱,并能自動根據(jù)條件對客觀題進行判分,還能對分數(shù)進行統(tǒng)計、管理,協(xié)助教師找出教學中存在的問題,滿足任何授權的考生隨時隨地考試并迅速獲得成績的需求,同時也大大減輕了教師出題、監(jiān)考和判卷等繁重的工作量。</p><p> 關鍵字:J2EE;java;MVC;在線;考試系統(tǒng)</p><p><b> Abstr
5、act</b></p><p> Paperless exam is an important symbol of modern education for this kind of exam make the result more reasonable, more just, and release human resource. The online exam system of univer
6、sity, usually uses the C/S MIS architecture, or based web use B/S architecture. In the exam system of C/S architecture, where the papers are stored in the remote Server and the Client must set up the exam application and
7、 configure the database, we must set up and configure the Client every time when do exam. Howeve</p><p> This graduate project is about the exam system based on java and B/S architecture. It has implemented
8、 the basic function needed by the student, teacher and administrator. In this B/S architecture project, students login the system through web, and commit the answers in real-time. The system can judge the paper and save
9、the result, statistic, manage the points; help the teacher to find the problem in teaching. It allows any student which is authorized to subscribe to exam and gain the result at a</p><p> key words:J2EE;jav
10、a;MVC;web;exam system</p><p><b> 目 錄</b></p><p><b> 第1章 緒論3</b></p><p><b> 1.1項目背景3</b></p><p> 1.2計算機考試系統(tǒng)發(fā)展及現(xiàn)狀3</p>
11、<p> 1.3國內外發(fā)展現(xiàn)狀4</p><p> 1.4研究開發(fā)的目標和基本內容4</p><p> 1.4.1 系統(tǒng)開發(fā)的主要任務和目標4</p><p> 1.4.2 系統(tǒng)開發(fā)的基本內容5</p><p> 1.5 技術研究背景5</p><p> 第2章 系統(tǒng)技術介紹及應用
12、7</p><p> 2.1 JSP技術概述及工作原理7</p><p> 2.1.1 JSP技術概要7</p><p> 2.1.2 JSP的工作原理8</p><p> 2.1.3 JSP與ASP的比較8</p><p> 2.2 JDBC介紹10</p><p> 2
13、.3 MVC模式介紹12</p><p> 2.4 Struts技術概述及工作原理13</p><p> 2.4.1 Struts技術概述13</p><p> 2.4.2 Struts的工作原理14</p><p> 2.5 Hibernate技術概述及工作原理15</p><p> 2.5.1
14、Hibernate技術概述15</p><p> 2.5.2 Hibernate工作原理16</p><p> 2.6 Tomcat應用服務器介紹17</p><p> 2.7 MySQL數(shù)據(jù)庫介紹19</p><p> 2.7.1 數(shù)據(jù)庫的歷史和發(fā)展19</p><p> 2.7.2 MySQL介
15、紹19</p><p> 2.7.3 MySQL的主要特性20</p><p> 第3章 系統(tǒng)需求分析22</p><p> 3.1系統(tǒng)功能概述22</p><p> 3.2權限與控制22</p><p> 3.3系統(tǒng)業(yè)務流程分析23</p><p> 3.3.1業(yè)務術
16、語23</p><p> 3.3.2業(yè)務流程23</p><p> 3.4系統(tǒng)模塊簡介27</p><p> 3.4.1登錄模塊27</p><p> 3.4.2系統(tǒng)管理模塊27</p><p> 3.4.3科目管理模塊28</p><p> 3.4.4題庫管理模塊29
17、</p><p> 3.4.5試卷管理模塊29</p><p> 3.4.6帳戶管理模塊29</p><p> 3.4.7考試管理模塊29</p><p> 3.4.8信息查詢模塊30</p><p> 3.5系統(tǒng)開發(fā)環(huán)境30</p><p> 第4章 系統(tǒng)設計31&l
18、t;/p><p> 4.1系統(tǒng)整體架構設計31</p><p> 4.2系統(tǒng)管理設計31</p><p> 4.3題庫管理設計37</p><p> 4.4科目管理設計38</p><p> 4.5試卷管理設計39</p><p> 4.6帳戶管理設計39</p>
19、<p> 4.7考試管理設計40</p><p> 4.8信息查詢設計41</p><p> 4.9數(shù)據(jù)庫設計42</p><p> 第5章 系統(tǒng)實現(xiàn)45</p><p> 5.1 系統(tǒng)Model層實現(xiàn)45</p><p> 5.1.1類AdminBean:45</p>
20、;<p> 5.1.2類SchoolBean:45</p><p> 5.1.3類CollegeBean:46</p><p> 5.1.4類ClassBean:46</p><p> 5.1.5類TeacherBean:47</p><p> 5.1.6類StudentBean:47</p>
21、<p> 5.1.7類ExamBean:48</p><p> 5.1.8類PaperBean:49</p><p> 5.1.9類SubjectBean:50</p><p> 5.1.10類TiankongBean:50</p><p> 5.1.11類XuanzeBean:51</p><
22、;p> 5.2系統(tǒng)數(shù)據(jù)訪問對象DAO層實現(xiàn)52</p><p> 5.2.1類AdminBeanDAO:52</p><p> 5.2.2類SchoolBeanDAO:52</p><p> 5.2.3類CollegeBeanDAO:53</p><p> 5.2.4類ClassBeanDAO:53</p>
23、;<p> 5.2.5類TeacherBeanDAO:53</p><p> 5.2.6類StudentBeanDAO:53</p><p> 5.2.7類ExamBeanDAO:54</p><p> 5.2.8類PaperBeanDAO:54</p><p> 5.2.9類SubjectBeanDAO:5
24、4</p><p> 5.2.10類TiankongBeanDAO:55</p><p> 5.2.11類XuanzeBeanDAO:55</p><p> 5.3系統(tǒng)中的ACTION類55</p><p> 5.3.1類AccountAction:55</p><p> 5.3.2類AccountM
25、anageAction:56</p><p> 5.3.3類SchoolAction:56</p><p> 5.3.4類CollegeAction:57</p><p> 5.3.5類ClassAction:57</p><p> 5.3.6類TeacherAction:58</p><p> 5
26、.3.7類StudentAction:59</p><p> 5.3.8類ExamAction:59</p><p> 5.3.9類PaperAction:60</p><p> 5.3.10類SubjectAction:61</p><p> 5.3.11類QuestionAction:62</p><
27、p> 5.4系統(tǒng)中的視圖層62</p><p> 第6章 總結71</p><p><b> 第1章 緒論</b></p><p><b> 1.1項目背景</b></p><p> 無紙化考試系統(tǒng)是現(xiàn)代教育的重要標志,這樣的考試讓考試的結果更加的合理,更加的公正、公平。也讓
28、不必要的人力從中解脫出來,去完成其它的一些事情。學生通過計算機網絡登入系統(tǒng),實時提交解答。系統(tǒng)能保存結果,供教師披閱,并能自動根據(jù)條件對客觀題進行判分,還能對分數(shù)進行統(tǒng)計、管理,協(xié)助教師找出教學中存在的問題,滿足任何授權的考生隨時隨地考試并迅速獲得成績的需求,同時也大大減輕了教師出題、監(jiān)考和判卷等繁重的工作量。</p><p> 鑒于現(xiàn)在大多數(shù)學校的計算機考試系統(tǒng)基本上都是C/S結構,對時間、地點以及考試規(guī)模都
29、有很大的限制,而現(xiàn)在的大學里基本上的學生都人手一臺電腦。如果將考試系統(tǒng)做成B/S結構的話就可以將沒有這些方面的限制,可以進行大規(guī)模同時的考試,而且計算機可以方便的進行考試,不需要進行任何的客戶端安裝,只需要有一個瀏覽器。</p><p> 1.2計算機考試系統(tǒng)發(fā)展及現(xiàn)狀</p><p> 20世紀50年代,電子計算機和光電閱讀機在大規(guī)??荚囍械膹V泛運用促進了標準化考試的推廣和普及。然而
30、應當指出,這時的考試方法仍是傳統(tǒng)的紙筆考試形式。到了2O世紀末,隨著測試理論的完善、計算機的普及、多媒體技術的運用和經濟的增長,測試界已清楚地看到單一的紙筆考試弊大于利。那么紙筆考試所暴露出來的問題該如何解決?標準化考試還要不要推行?于是專家們開始在測試的方法和手段上下工夫,國外的TOEFL如此,國內的CET亦然。這一變化競來得如此之快,可以說是在向一個時代告別,即:計算機化考試時代的到來[1]。</p><p>
31、; 1.3國內外發(fā)展現(xiàn)狀</p><p> 現(xiàn)在國內外都有許多的計算機考試系統(tǒng),而CAT(computerized Adaptive Testing,計算機自適應考試系統(tǒng))是近年來測驗研究中引人注目并取得了重大發(fā)展的領域。計算機化白適應測驗(簡稱CAT)是在項目反應理論的基礎上,建立題庫,然后計算機根據(jù)被試的能力水平自動地選擇測試題目,并對被試的所達到的能力的水平做出判斷的一種全新的測驗形式 [2] 。所謂自
32、適應測驗它的基本思想是“因人施測”,使不同水平被試者都能接受一組跟自己特質水平相適應的試題。所謂“自適應”就是測驗本身要自動地適應被試的具體情況,在被試作答過程中及時根據(jù)作答資料估出被試的可能水平,并針對這一水平迅速決策,從大型題庫中調取難度恰當、性能優(yōu)良的題目繼續(xù)施測。直到施測的題目足夠多,測驗信息量累計和達到指定值為止。</p><p> 如今在美國,CAT已經在教育測驗、職業(yè)測量、人事測評等領域中大顯身手
33、,如美國研究生入學考試(Graduate Record Examination)、工商管理類研究生入學考試(Graduate for Management and Administration Test)以及全美護士國家委員會資格考試(Nurse National Committee License Test)等都已采取了CAT的方式。在信息產業(yè)中,美國Novell公司于1991年成功的應用了CAT進行認證考試,使參加Novell自適應
34、考試的人數(shù)超過1,000,000人次。</p><p> 在我國,已經出現(xiàn)一些應用型的研究,自行編制了一些CAT測驗,并取得了實際的運用效果,上海電大在上海市計算機應用能力的考試項目“VB6.0程序設計”中已采用了CAT的考試設計方法。江西師大小學數(shù)學CAT研究、華南理工大的“數(shù)據(jù)結構”自適應測試系統(tǒng)的研究也取得了一定的成果。自上世紀九十年代初期開始,全國大學英語四、六級考試委員會一直致力于項目反應理論和“計算
35、機自適應測驗”的研究和開發(fā)。</p><p> 1.4研究開發(fā)的目標和基本內容</p><p> 1.4.1 系統(tǒng)開發(fā)的主要任務和目標</p><p> 1、實現(xiàn)保存試題的數(shù)據(jù)庫系統(tǒng)</p><p> 2、實現(xiàn)在線考試系統(tǒng)的服務器端及客戶端</p><p> 3、了解試卷批改規(guī)則,實現(xiàn)客觀題的自動判分<
36、/p><p> 4、實現(xiàn)系統(tǒng)成績查詢功能</p><p> 1.4.2 系統(tǒng)開發(fā)的基本內容</p><p> 1、提供數(shù)據(jù)庫訪問權限給不同人員進行試題庫添加、管理,試卷批改,答案輸入;</p><p> 2、從試題庫中生成難度的合理試卷;</p><p> 3、通過網絡實現(xiàn)與考生的互動,隨時增減試題難度,以便最大
37、限度地考察學生水平;</p><p> 4、結合試題難度系數(shù)協(xié)助教師判分。</p><p> 1.5 技術研究背景</p><p> J2EE是適用于創(chuàng)建服務器應用程序和服務的Java 2平臺企業(yè)版Java2 Platform Enterprise Edition,J2EE),該技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版
38、中的許多優(yōu)點,例如“編寫一次、隨處運行”的特性,方便存取數(shù)據(jù)庫的JDBC API、CORBA技術以及能夠在Intemet應用中保護數(shù)據(jù)的安全模式等等,同時還提供了對EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術的全面支持[3]。J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)他們所在的層面分布在不同的機器上,解
39、決了兩層模式(client/server)的弊端.在傳統(tǒng)模式中,客戶端擔當了過多的角色,可能第一次部署時比較容易,但難于升級,可伸展性也不理想,經常是基于某種專有的協(xié)議(通常是某種數(shù)據(jù)庫協(xié)議),重用業(yè)務邏輯和界面邏輯非常困難.現(xiàn)在J2EE的多層企業(yè)級應用模型將兩層化模型中的不同層面切分成許多層,每個多層化應用能夠為不同的服務提供一</p><p> 本系統(tǒng)采用J2EE進行開發(fā),J2EE特別適用于WEB開發(fā),現(xiàn)在
40、最流行的WEB開發(fā)模式是SSH(Struts+Spring+Hibernate)模式,Struts作為視圖層,Spring作為控制層,Hibernate為模型層。這樣寫的程序有很清晰的分層,耦合度低,有利于開發(fā)和維護。</p><p> 這些框架可以為開發(fā)者提供一個簡單易用的模型,采用一個經過良好設計的開源框架有很多好處:</p><p> 開發(fā)者只需要寫一些必須的代碼。他們不需要直接
41、接觸底層的API。</p><p> 經過良好設計的框架可以為程序提供清晰的結構并且提高程序的內聚性。清晰的結構使得其他人很容易加入項目。</p><p> 一個容易適用的框架可以通過一些例子和文檔為用戶提供最佳實踐。</p><p> 使用成功的框架的代碼比自己的代碼容易測試。</p><p> 框架應該在需要的時候才使用,不要為了
42、使用框架而使用框架。所為我的這個系統(tǒng)使用的是Struts+Hibernate,這兩個都是比較成熟的開源框架,通過Hibernate做OR映射和對數(shù)據(jù)庫的訪問。Struts做視圖層,Struts的ActionServlet做控制層。</p><p> 第2章 系統(tǒng)技術介紹及應用</p><p> 2.1 JSP技術概述及工作原理</p><p> 2.1.1
43、JSP技術概要</p><p> 在開始介紹JSP之前,我先要介紹兩個名詞:組件和容器還有servlet。</p><p><b> 組件:</b></p><p> 組件是你的應用程序的的組體構件。它包括servlets、JavaBeans、JSP、HTML頁面、EJBs以及其它類似的東西。</p><p>&l
44、t;b> 容器:</b></p><p> 容器是那些執(zhí)行組件的應用程序。如果你的應用程序由JSP和servlet組件構成的,那么你就需要一個具有JSP支持的servlet容器(正式名稱是servlet引擎);如果你的應用程序是有EJBs構成的,那就需要一個EJB容器。</p><p><b> servlet:</b></p>
45、<p> servlet是一種獨立于平臺和協(xié)議的服務器端的Java應用程序,可以動態(tài)的生成WEB頁面。servlet由WEB服務器進行加載,該WEB服務器必須包含支持servlet的java虛擬機。</p><p><b> JSP:</b></p><p> JSP(java server pages)是由SUN公司在servlet基礎上開發(fā)出來的一
46、種動態(tài)網頁制作技術,其可使您可以將網頁中的動態(tài)部分和靜態(tài)的HTML相分離。您可以使用平常得心應手的工具并按照平常的方式來書寫HTML語句。然后,將動態(tài)部分用特殊的標記嵌入即可,這些標記常常以“<%”開始并以“%>”結束。通常,您要將文件以“.jsp”為擴展名,并將它 放置到任何您可以放置普通WEB頁面的路徑下。盡管JSP文件看起來更象是HTML文件而不是Servlet文件,但,事實上,它恰恰將轉換為 Servlet文件,其中的靜態(tài)HTM
47、L僅僅用來輸出Servlet服務方法返回的信息。如果JSP pages 已經被轉換為Servlet且Servlet 被編譯進而被裝載(在第一次被Request時),當您再次Request 此JSP頁面時,將察覺不到一瞬的延遲。</p><p> JSP有4個關鍵成分:指令(directive)、動作(action)、scriptlet和 標記庫(tag library)。指令是指那些發(fā)送給JSP容器的消息,它使
48、程序能夠指定頁面的設置、包含其它資源中的內容和指定JSP中使用的定制標記庫。動作將功能封裝在預定義的 標記中,然后程序員可以將它們(預定義標記)嵌入JSP中。通常根據(jù)發(fā)送給服務器的 特定客戶請求中的信息來執(zhí)行動作。它們還可以創(chuàng)建在JSP scriptlet中使用Java對象。Scriptlet,即腳本元素(scripting element),使程序員能夠插入與JSP中的組件(和其它Web應用程序組件)進行交互的Java代碼,以處理請求
49、。標記庫是標記擴展機制的一部分,它使程序員能夠創(chuàng)建定制的標記,這種標記使得程序員能夠操作JSP內容。[5]</p><p> 2.1.2 JSP的工作原理</p><p> 當用戶第一次請求或者刷新一個JSP頁面時,JSP容器首先是要找到這個JSP頁面的源代碼文件,然后開始處理,把這個JSP源文件翻譯成java代碼文件。當用戶請求這個文件時,需要JSP容器來處理這個文件。[6]<
50、/p><p> 2.1.3 JSP與ASP的比較</p><p> 一般說來,Sun 公司的JavaServer Pages(JSP)和Microsoft的Active Server Pages(ASP)在技術方面有許多相似之處。兩者都為動態(tài)網頁的技術,并且雙方都能夠替代CGI 技術,使網站的開發(fā)時程能夠大大縮短,在性能上也有較高的表現(xiàn),更重要的一點是,兩者都能夠為程序員提供組件設計的功能
51、,通過組件設計,將網頁中邏輯處理部分交由組件負責處理(ASP 使用COM 組件、JSP則有JavaBean 組件),而和網頁上的排版、美工分離。</p><p> 盡管Java Server Pages 技術和Active Server Pages(ASP)在許多方面都很相似,但仍然存在很多不同之處,其中本質上的區(qū)別在于:兩者是來源于不同的技術規(guī)范組織。以下就來比較兩大技術有哪些不同點,而又為各自帶來哪些優(yōu)勢。
52、</p><p><b> 平臺和服務器的彈性</b></p><p> ASP (Active Server Pages)技術主要在微軟(Microsoft)公司的Windows 平臺上運行,其中包括Windows 2000、Windows XP 和Windows 2003,并且搭配其WEB 服務器IIS (Internet Information Servic
53、es)。但是,在其他的平臺運行時,不是性能低落,就是根本不支持,因此,當在開發(fā)網站系統(tǒng)時,選擇NT+IIS+ASP的體系結構時,未來當系統(tǒng)無法負荷時,也只能繼續(xù)選擇Windows 平臺的服務器,無法改寫在性能表現(xiàn)相當優(yōu)異的UNIX 平臺上。</p><p> JSP (Java Server Pages)技術主要運行在操作系統(tǒng)上的一個Java Virtual Machine (JVM)虛擬機器上,因此,它能夠跨
54、越所有的平臺,例如:NT、Windows 2000、Solaris、Linux、OS/390、AIX、HP-UX ,等等,除了能在各式各樣的操作系統(tǒng)上執(zhí)行,并且能搭配現(xiàn)有的WEB服務器:Apache、IIS、Netscape Enterprise Server ,等等,將靜態(tài)的HTML網頁交由執(zhí)行速度較快的Web Server 處理,而動態(tài)產生網頁的部分,就交由JSP Container 來執(zhí)行。由上述可知,JSP (JavaServe
55、r Pages)技術在跨平臺的表現(xiàn)比ASP來得更有彈性。</p><p> WEB 網頁程序員未來在開發(fā)電子商務平臺時,就不需要再考慮客戶廠商的操作系統(tǒng)平臺,可更專心于系統(tǒng)功能的開發(fā)。相應地,廠商在使用Java Server Pages 技術開發(fā)的系統(tǒng)平臺時,不再需要擔心未來在擴充軟、硬件時,是否產生不兼容的問題。光這一點,就能為企業(yè)省下一大筆的費用,這是JSP 的主要優(yōu)點。</p><p&
56、gt;<b> 開放的開發(fā)環(huán)境</b></p><p> 自從1995 年,Sun 公司已經開放技術與國際Java 組織合作開發(fā)和修改Java 技術與規(guī)范。JSP應用程序接口(API)毫無疑問已經取得成功,并隨著Java 組織不斷擴大其應用的范圍,目前全力發(fā)展Java 技術的廠商不勝枚舉,例如:最近IBM 公司強力推廣的WebSphere 家族,正是完全支持J2EE 標準而開發(fā)。數(shù)據(jù)庫廠
57、商Oracle 也發(fā)展自己的Application Server 來和自己公司本身數(shù)據(jù)庫產品Oracle 9i 做一緊密的結合。那也更不用提Amazon 系統(tǒng)的供貨商BEA 公司,它的產品WebLogic也是完全支持Java Server Pages技術和J2EE 規(guī)范的。</p><p> 相反,ASP 技術僅依靠微軟本身的推動,其發(fā)展建立在獨占、封閉的基礎之上,并且微軟本身的技術又只允許在微軟相關平臺的服務
58、器上執(zhí)行,因此,在標準方面顯得有點力不從心。</p><p><b> 執(zhí)行性能表現(xiàn)</b></p><p> ASP 和JSP 在執(zhí)行性能的表現(xiàn)上,有一段顯著的差距,JSP 除了在一開始加載的時間會比較久外,之后的表現(xiàn)就遠遠比ASP 的表現(xiàn)來得好。原因在于:JSP 在一開始接受到請求時,會產生一份Servlet 實體( instance ),它會先被暫存在內存中
59、,我們稱之為持續(xù)( Persistence ),當再有相同請求時,這實體會產生一個線程(thread)來服務它。如果過了一段時間都不再用到此實體時, Container 會自動將其釋放,至于時間的長短,通常都是可以在Container 上自行設定的。</p><p> 而ASP在每次接收到請求時,都必須要重新編譯,因此,JSP 的執(zhí)行比每次都要編譯執(zhí)行的ASP要快,尤其是程序中存在循環(huán)操作時,JSP 的速度要快
60、上1 到2倍。不過,ASP在這部分的缺陷,將隨ASP+的出現(xiàn)有所改觀,在新版的ASP+技術中,性能表現(xiàn)上有很大的突破。[7]</p><p> 2.2 JDBC介紹</p><p> JDBC(Java DataBase Connectivity),是用于執(zhí)行SQL語句的Java應用程序接口,是一套API集合,在這個集合中設置了許多允許Java程序連接數(shù)據(jù)庫的框架。JDBC由一組用Ja
61、va語言寫成的類和接口組成,是一種連接不同數(shù)據(jù)庫的規(guī)范,其宗旨是讓各數(shù)據(jù)庫開發(fā)商為Java程序員提供標準的數(shù)據(jù)庫訪問類和接口。JDBC與Java結合,使用戶可以很容易的把SQL語句傳送到任何關系型數(shù)據(jù)庫中,程序員用它編寫的數(shù)據(jù)庫應用程序,可以在各種數(shù)據(jù)庫系統(tǒng)上運行。[8]這是真正的可移植性的軟件所必須具備的一個特點。JDBC已經被業(yè)界普遍采用,而且是在Java在服務器端成功的主要貢獻因素。JDBC驅動程序是依靠獨立的軟件公司開發(fā)的。JD
62、BC驅動程序適合特定的數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)訪問模型,主要的那些數(shù)據(jù)庫系統(tǒng)都有對應的的驅動程序,例如Microsoft、oracle、Informix、Sybase、Postgress、MySQL等等。JDBC與java應用程序和數(shù)據(jù)庫的關系如圖2.2所示.</p><p> 圖2.2 JDBC與java應用程序和數(shù)據(jù)庫的關系</p><p> JDBC中的主要對象包括:</p>
63、<p> class:- DriverManager - 驅動管理,獲得連接</p><p> interface:</p><p> -Connection – 連接對象</p><p> -Statement – 執(zhí)行SQL語句</p><p> -PrepareStatement – 執(zhí)行SQL語句,預編譯,可
64、帶參數(shù)</p><p> -CallableStatement – 執(zhí)行存儲過程</p><p> ResultSet – 查詢結果記錄集</p><p> ResultSetMetaData – 記錄集的元信息</p><p> 2.3 MVC模式介紹</p><p> MVC是一種體系結構模式,代表Mod
65、el—View—Controller,是應用于交互式系統(tǒng)的一種體系結構模式。MVC產生于20世紀70年代Palo—Alto實驗室的Smalltalk編程環(huán)境。MVC模式指導模塊的職責分配和模塊之間的通信協(xié)議。職責分配是面向對象分析和設計中最重要的工作,協(xié)議設計則是相當困難的工作。MVC為這兩項工作提供了指導,所以意義重大。</p><p> Model是應用程序對象,也就是包含應用程序數(shù)據(jù)和業(yè)務邏輯的對象。Mo
66、del對外表現(xiàn)為一個對象,實際上可以也應該是一組子對象的集合。</p><p> 傳統(tǒng)意義上的View是屏幕對象,負責向用戶顯示交互界面。這個意義可以進行擴展,將View視為向外界展現(xiàn)應用程序狀態(tài)的接口和界面。</p><p> 所有的用戶輸入都由Controller負責處理。在交互式系統(tǒng)中,Controller是導致Model發(fā)生變化的唯一原因,是導致View發(fā)生變化的兩個原因之一,
67、因此是控制中心。</p><p> Controller將用戶事件翻譯成為請求,而不是命令。如果機械地遵循MVC的規(guī)則,Controller的邏輯將十分復雜。Controller通常需要查詢View和Model才知道如何處理用戶輸入。不要把所有邏輯寫在Controller里。View和Model都是有智能的對象。可以通知它們,由它們自己決定應對的方式。</p><p> 一個應用程序或
68、者組件只能有一個Model,但是這個Model可以對應多個View。View向Model注冊,要求在Model的數(shù)據(jù)發(fā)生變化時獲得通知消息。View得到通知消息之后,獲取Model的相應數(shù)據(jù),更新自己的顯示。View不向Model發(fā)送消息。</p><p> 一個View對應一個Controller。View負責創(chuàng)建和初始化Controller,這也是View和Controller關系密切的原因之一。Contr
69、oller接收用戶輸入,如果有與應用程序數(shù)據(jù)無關,而只涉及顯示變化的用戶輸入,Controller直接通知View。</p><p> Controller和View關系密切的另一個原因是現(xiàn)代應用程序界面復雜,靈活多變。因此Controller需要大量了解View的情況,大量查詢View的信息,距離太遠不利于效率和靈活性,協(xié)議也很難設計,所以經常捆綁在一起。例如,目前基于控件的圖形界面,很多控件實際上是一個封裝
70、好的MVC實體,通過屬性、事件和方法與外界協(xié)同工作,強行拆分反而適得其反。</p><p> 因為一個Model對應多個View,一個View對應一個Controller,所以一個Model對應多個Controllers。Controller接收外部輸入,是導致Model發(fā)生變化的唯一原因。同時,Model的變化可能導致Controller行為的變化。[9]</p><p> MVC模
71、式如圖2.3所示。</p><p> 圖2.3 MVC模式圖</p><p> 2.4 Struts技術概述及工作原理</p><p> 2.4.1 Struts技術概述</p><p> Struts最初是由Craig R.McClanahan 創(chuàng)建的,然后在2000年用于Apache Software Foundation(ASF
72、)的Jakarta項目。2001年6月,Struts1.0發(fā)布。那以后,很多人在源代碼和文檔方面對該項目做出過貢獻,Struts得到迅速的發(fā)展。在Craig R.McClanahan將Struts用于Apache Jakarta項目的時候,Struts就成為了開放源代碼軟件,任何人都可以通過http://jakarta.apache.org/struts 下載到源代碼。</p><p> Struts是構建基于
73、java的Web應用程序的首選框架。通過采用模型-視圖-控制器(MVC)設計模式,使用Struts可以開發(fā)使用Java Servlets和JavaServer Pages的高性能、面向事務的Web應用程序,并可以解決諸多相關問題。首先,需要認識到Struts帶來的不僅僅是編程的便利性,Struts還從根本上為Web編程人員構思和 構建Web應用程序提供了一種新的方式。在MVC體系結構中,中心Servlet(被稱為控制器)接收所有應用程序
74、的請求。然后控制器將對請求進行處理,同時準備視圖(通常是JSP)所需要的任何數(shù)據(jù),并將此數(shù)據(jù)發(fā)給JSP。接著JSP使用由控制器準備的數(shù)據(jù)生成瀏覽器響應。本體系結構中,事務邏輯和顯示邏輯彼此相互獨立。[10]</p><p> 在struts框架中,模型分為兩個部分:</p><p><b> ·系統(tǒng)的內部狀態(tài) </b></p><p&
75、gt; ·可以改變狀態(tài)的操作(事務邏輯) </p><p> 內部狀態(tài)通常由一組ActinForm JavaBean表示。根據(jù)設計或應用程序復雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時才獲得數(shù)據(jù)(從某個數(shù)據(jù)庫)。</p><p> 大型應用程序通常在方法內部封裝事務邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調用。比如購物車bean,它擁有用
76、戶購買商品的信息,可能還有checkOut()方法用來檢查用戶的信用卡,并向倉庫發(fā)定貨信息。</p><p> 小型程序中,操作可能會被內嵌在Action類,它是struts框架中控制器角色的一部分。當邏輯簡單時這個方法很適合。 </p><p> 建議用戶將事務邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。[11]</p><p> 2.4
77、.2 Struts的工作原理</p><p> Struts應用程序的執(zhí)行流如圖2.4.2所示:</p><p> 圖2.4.2 Struts應用程序的執(zhí)行流</p><p> 1.瀏覽器向Struts應用程序發(fā)出請求,ActionServlet(控制器)對該請求進行處理。</p><p> 2.ActionServlet(控制器)用
78、HTML表單填充ActionForm(視圖)對象,并調用其validate()方法。</p><p> 3.ActionServlet(控制器)執(zhí)行Action對象(控制器)。</p><p> 4.Action(控制器)與模型組件一起為視圖準備數(shù)據(jù)。</p><p> 5.Action(控制器)將控制權交給JSP(視圖)。</p><p&
79、gt; 6.JSP(視圖)使用模型數(shù)據(jù)生成對瀏覽器的響應。</p><p> 2.5 Hibernate技術概述及工作原理</p><p> 2.5.1 Hibernate技術概述</p><p> 現(xiàn)今的應用系統(tǒng)設計中,MVC作為主流系統(tǒng)架構模式之一,貫穿了 整個設計流程。MVC中的 M,也就是所謂的Model,則可以說是與業(yè)務邏輯和數(shù)據(jù)邏輯關聯(lián)最為緊密的
80、部分。而持久層作為Model層中的主要組成,其設計的優(yōu)劣勢必對系統(tǒng)的整體表現(xiàn)產生至關重要的影響。</p><p> 說到持久層設計就必須說到持久層框架,現(xiàn)在有很多優(yōu)秀的實現(xiàn)版本,其中ORM持久層框架,則是未來的主流。</p><p> 所謂ORM—Object/Relational Mapper,從字面上理解是:對象—關系型數(shù)據(jù)映射組件。</p><p> 在
81、java發(fā)展的初級階段,直接調用JDBC幾乎是數(shù)據(jù)庫訪問的唯一手段。隨著近年來設計思想和Java技術本身的演化,出現(xiàn)了許多JDBC的封裝技術,這些技術為我們的數(shù)據(jù)庫訪問層實現(xiàn)提供了更多的選擇,目前主流的JDBC封裝框架包括:Hibernate、Apache OJB、iBatis,JDO以及J2EE框架中的CMP等。這些框架以優(yōu)良的設計大大提高了數(shù)據(jù)庫訪問層的開發(fā)效率,并且通過對數(shù)據(jù)訪問中各種資源和數(shù)據(jù)的緩存調度,實現(xiàn)了更佳的性能。<
82、;/p><p> Hibernate提供了強大、高性能的對象到關系型數(shù)據(jù)庫的持久化服務。利用Hibernate,開發(fā)人員可以按照Java的基礎語義(包括關聯(lián)、繼承、多態(tài)、組合以及Java的集合架構)進行持久化開發(fā)。Hibernate提供的HQL(Hibernate Query Language)是面向對象的查詢語言,它在對象型數(shù)據(jù)和關系型數(shù)據(jù)庫之間構建了一條快速、高效、便捷的 溝通渠道。</p>&l
83、t;p> 2001年末,Hibernate第一個正式版本對外發(fā)布,之后兩年作者Gavin King以靈活快速的迭代發(fā)布,使得Hibernate快速發(fā)展起來。</p><p> 2003年6月8日,Hibernate2發(fā)布,提供了對大多數(shù)主流數(shù)據(jù)庫的良好支持,提供了完善的 數(shù)據(jù)關聯(lián)、事務處理、緩存管理、延遲加載機制實現(xiàn),同時堪稱典范的開發(fā)文檔(Hibernate Reference)也為廣大用戶提供了一份
84、清晰易懂的參考手冊。</p><p> 2003年末,Hibernate獲得了Jolt2004大獎并且Hibernate被業(yè)內知名的開源組織JBoss收納,成為從屬于JBoss組織的子項目之一。這兩個時間確立了Hibernate在Java ORM架構中的主導地位。[12]</p><p> 2.5.2 Hibernate工作原理</p><p> Hibern
85、ate的基礎代碼包括POJO和Hibernate映射文件。</p><p> POJO在Hibernate語義中理解為數(shù)據(jù)庫表所對應的Domain Object。這里的POJO是所謂的“Plain Ordinary Java Object”,指無格式普通Java對象,可以簡單地理解為一個不包含邏輯代碼的值對象,這樣的類只包含字段的get和set方法。</p><p> Hibernat
86、e是一種“對象—關系型數(shù)據(jù)映射組件”,它使用映射文件將對象和關系型數(shù)據(jù)相關聯(lián)。在Hibernate中,映射文件通常以“.hbm.xml”作為后綴。</p><p> Hibernate配置文件主要用于配置數(shù)據(jù)庫連接和運行時所需要的各種屬性。主要配置內容為:SessionFactory中的數(shù)據(jù)庫URL配置、數(shù)據(jù)庫JDBC驅動配置、數(shù)據(jù)庫用戶名配置、數(shù)據(jù)庫用戶密碼配置、數(shù)據(jù)庫適配器配置,映射文件配置等等。</
87、p><p> 由于Hibernate對JDBC進行的很好的封裝,所以我們并不需要直接通過JDBC操作數(shù)據(jù)庫表,而是通過Hibernate間接使用。</p><p> 首先通過Configuration config = new Configuration().configure();得到Configuration類,Configuration類負責管理Hibernate的 配置信息。<
88、;/p><p> 再通過SessionFactory sessionFactory = config.buildSessionFactory();得到sessionFactory,SessionFactory中保存了對應當前數(shù)據(jù)庫配置的所有映射關系,同時負責維護當前二級數(shù)據(jù)緩存和Statement Pool。</p><p> Session是Hibernate持久化操作的基礎。這里的Se
89、ssion與傳統(tǒng)意義上的Web層HttpSession沒有什么關系。Hibernate Session 之與Hibernate,相當于JDBC Connection 之與JDBC。</p><p> Session通過 Session session = sessionFactory.openSession();得到,Session作為貫穿Hibernate的持久化管理器核心,提供了眾多持久化方法,如save、
90、update、delete,find等。通過這些方法我們就可以操作數(shù)據(jù)庫了。</p><p> Session是一個輕量級對象。通常每一個Session實例和一個數(shù)據(jù)庫事務綁定,也就是說,每執(zhí)行一個數(shù)據(jù)庫事務,都應該先創(chuàng)建一個新的Session實例。如果事務執(zhí)行中出現(xiàn)異常,應該撤銷事務。不論事務執(zhí)行成功與否,最后都應該調用Session的close()方法,從而釋放Session實例占用的資源。[13]<
91、/p><p> 2.6 Tomcat應用服務器介紹</p><p> 學習Servlet技術,首先需要有一個Servlet運行環(huán)境,也就是需要有一個Servlet容器,這里介紹Tomcat。</p><p> Tomcat服務器是一個免費的開放源代碼的Web應用服務器,它是Apache軟件基金會(Apache Software Foundation)的Jakart
92、a項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持, 最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn)。因為Tomcat技術先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器</p><p> Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載
93、平衡與郵件服務等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。</p><p> Tomcat是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試JSP程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache服務器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat 部分是Ap
94、ache服務器的擴展,但它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。[14]</p><p> 圖2.6是Tomcat服務器接受客戶請求并做出響應的過程。</p><p> 圖2.6 Tomcat服務器接受客戶請求并做出響應的過程</p><p> 1客戶端(通常都是瀏覽器)訪問Web服務器,發(fā)送HTPP請求
95、。</p><p> 2 Web服務器接收到請求后,傳遞給Servlet容器。</p><p> 3 Servlet容器加載Servlet,產生Servlet實例后,向其傳遞表示請求和響應的對象。</p><p> 4 Servlet實例使用請求對象得到客戶端的請求信息,然后進行相應的處理。</p><p> 5 Servlet實例將
96、處理結果通過響應對象發(fā)送回客戶端,容器負責確保響應正確送出,同時將控制返回給Web服務器。[15]</p><p> 2.7 MySQL數(shù)據(jù)庫介紹</p><p> 2.7.1 數(shù)據(jù)庫的歷史和發(fā)展</p><p> 在當前信息時代,作為信息管理的主要工具——數(shù)據(jù)庫技術得到了廣泛的應用。數(shù)據(jù)庫一詞起源于20世紀50年代,當時美國的研究人員為了戰(zhàn)爭的需要,把各種情
97、報集中在一起存儲在計算機中,稱為 Information Base 或 DataBase。半個世紀以來,數(shù)據(jù)庫技術已經成為計算機領域中最重要的技術之一,它是軟件學科中一個獨立的分支。數(shù)據(jù)庫技術的出現(xiàn)使得計算機應用滲透到工業(yè)、農業(yè)、商業(yè)、行政、科研、工程、國防、軍事、文化教育等各個部門,滲透到社會的每個角落,并且正改變著人們的工作和生活方式。管理信息系統(tǒng)、辦公自動化系統(tǒng)、決策支持系統(tǒng)等都是使用的數(shù)據(jù)庫技術的計算機應用系統(tǒng)。數(shù)據(jù)庫技術已經成
98、為了信息高速公路的核心組件技術[16]。當前主要的數(shù)據(jù)庫產品有IBM的DB2當前版本為9,Microsoft 的 SQL Server當前版本為2005,Oracle數(shù)據(jù)庫當前版本為11g,和開源社區(qū)的MySQL當前版本為5.1。</p><p> 2.7.2 MySQL介紹</p><p><b> MySQL:</b></p><p>
99、 MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQL AB開發(fā)、發(fā)布和支持。MySQL AB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的注冊商標。</p><p> MySQL網站(http://www.mysql.com)提供了關于MySQL和MySQL AB的最新的消息。</p>&
100、lt;p> MySQL是一個關系數(shù)據(jù)庫管理系統(tǒng)</p><p> 關系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個大倉庫中要好得多,這樣做將增加你的速度和靈活性?!癕ySQL”中的SQL代表“Structured Query Language”(結構化查詢語言)。SQL是用于訪問數(shù)據(jù)庫的最通用的標準語言,它是由ANSI/ISO定義的SQL標準。SQL標準發(fā)展自1986年以來,已經存在多個版本
101、:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是該標準的當前版本。</p><p> MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務器。SQL(結構化查詢語言)是世界上最流行的和標準化的數(shù)據(jù)庫語言。MySQL是以一個客戶機/服務器結構的實現(xiàn),它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。SQL是一種標準化的語言,它使得存儲、更新和存取信息更容易。例
102、如,你能用SQL語言為一個網站檢索產品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。[17]</p><p> MySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。</p><p> 2.7.3 MySQL的主要特性&l
103、t;/p><p> ·使用核心線程的完全多線程。這意味著它能很容易地利用多CPU。</p><p> ·C、C++、Eiffel、Java、Perl、PHP、Python API</p><p> ·可運行在不同的平臺上。</p><p> ·多種列類型:1、2、3、4、和8字節(jié)長度的有符號/無符號
104、整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET和ENUM類型。</p><p> ·利用一個優(yōu)化的一遍掃描多重聯(lián)結(one-sweep multi-join)非常快速地進行聯(lián)結(join)。</p><p> ·通過一個高度優(yōu)化的類庫實現(xiàn)SQL函數(shù)庫并且像他們能
105、達到的一樣快速,通常在查詢初始化后不應該有任何內存分配。</p><p> ·一個非??焖俚幕诰€程的內存分配系統(tǒng)。</p><p> ·函數(shù)名不會與表或列名沖突。例如ABS是一個有效的列名字。對函數(shù)調用的唯一限制是函數(shù)名與隨后的“(”不能有空格</p><p> ·支持ANSI SQL的LEFT OUTER JOIN和ODBC語
106、法。</p><p> ·所有MySQL程序可以用選項--help或-?獲得聯(lián)機幫助。</p><p> ·服務器能為客戶提供多種語言的出錯消息</p><p> 第3章 系統(tǒng)需求分析</p><p><b> 3.1系統(tǒng)功能概述</b></p><p> 隨著網絡
107、的發(fā)展,越來越多的應用被移植到網絡上,有人預言網絡操作系統(tǒng)將會替代現(xiàn)在的桌面操作系統(tǒng)。采用B/S結構的WEB應用程序具有瘦客戶端的特點,它不需要像C/S結構的桌面應用程序那樣進行繁瑣和費時的安裝,你只需要一個瀏覽器便可以使用WEB應用程序。但是WEB應用程序也有一定的局限性,因為它將大量的操作由服務器完成,這將大大加重服務器的負擔,因此大型的WEB應用程序需要強大服務器支持。</p><p> 本系統(tǒng)采用B/S
108、結構設計開發(fā),旨在讓用戶通過網絡瀏覽器實現(xiàn)對系統(tǒng)的訪問。可以大大減少各個用戶在時間和空間上的限制。不同級別的用戶可以對系統(tǒng)進行不同的管理和操作。這個系統(tǒng)主要目的是可以讓考試變得更方便,讓改卷變得更輕松,讓管理變得更容易。有了這個系統(tǒng),學生可以拿到一臺計算機就可以考試,不必擔心這臺機器上是否裝有考試系統(tǒng)。</p><p><b> 3.2權限與控制</b></p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java的超市管理系統(tǒng)計算機畢業(yè)論文
- java的超市管理系統(tǒng)計算機畢業(yè)論文
- 計算機畢業(yè)論文--在線考試系統(tǒng)
- 計算機考試管理系統(tǒng)畢業(yè)設計論文
- 計算機java畢業(yè)論文---學校圖書管理系統(tǒng)
- 基于Agent的計算機考試系統(tǒng).pdf
- 計算機考試
- 計算機考試系統(tǒng)開發(fā) ——“改卷與分數(shù)統(tǒng)計”模塊-畢業(yè)論文
- 計算機本科畢業(yè)論文--在線考試系統(tǒng)
- 計算機畢業(yè)論文范文畢業(yè)論文計算機專業(yè)
- 計算機考試操作
- 計算機考試大綱
- 職稱計算機考試.
- 計算機考試7
- 計算機考試答案
- 計算機考試復習
- 計算機考試五
- 計算機畢業(yè)論文
- 計算機畢業(yè)論文
- 計算機信管畢業(yè)論文-計算機基礎網絡答疑系統(tǒng)
評論
0/150
提交評論