基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)Word版_第1頁
基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)Word版_第2頁
基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)Word版_第3頁
基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)Word版_第4頁
基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)Word版_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、傳播優(yōu)秀Word版文檔 ,希望對您有幫助,可雙擊去除! 畢業(yè)設(shè)計(jì)(論文)基于jsp(java)在線考試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) 姓 名系 別、 專 業(yè)導(dǎo) 師 姓 名、職 稱完 成 時(shí) 間【摘要】隨著當(dāng)今計(jì)算機(jī)技術(shù)的迅速發(fā)展,其應(yīng)用已滲入到人類社會的各個(gè)領(lǐng)域并發(fā)揮越來越重要的作用。本試卷自動生成系統(tǒng)使用Data數(shù)據(jù)控件連接數(shù)據(jù)庫,實(shí)現(xiàn)對數(shù)據(jù)庫的各種操作。本系統(tǒng)能夠自動創(chuàng)建試卷、修改原有試卷、瀏覽已生成的試卷。實(shí)現(xiàn)了考試出題的自動化。本試卷自動生成系統(tǒng)是采用當(dāng)今流行的JSP語言開發(fā)而成。作為一種基于對象,可視化的編程工具軟件,它提供了許多內(nèi)部及外部控件:ajax、structs等,不需要編寫大量代碼去描述

2、界面元素的外觀和位置,而只要把預(yù)先建立的對象加到屏幕上,一點(diǎn)即可。它不僅可以幫我們設(shè)計(jì)出漂亮的界面,同時(shí)它提供的數(shù)據(jù)控件和數(shù)據(jù)訪問對象可以輕松連接到各種格式的數(shù)據(jù)文件,從而實(shí)現(xiàn)對數(shù)據(jù)庫的各種操作。系統(tǒng)使用了sql作為數(shù)據(jù)庫平臺,它可以用最簡單的方式創(chuàng)建各種數(shù)據(jù)庫,并且可以穩(wěn)定高效的支持jsp對它的調(diào)用。關(guān)鍵字:數(shù)據(jù)庫;試卷生成系統(tǒng);JSP語言;控件 Today,alongwith the technical and quick development in calculator,application has seeped into the human social for each othe

3、r realm and has brought into play the more and more important function.This automatic creation for text paper systerm is important part of manage systerm for currency test questions.it is an importance way to realize teaching auto-mation.It can realize automation that examination make out questions,

4、to increase work efficiency,and realizes to seperation for each and test,it can rises important function for increasing the teaching quantity.The system was builded was designed by popular integrated development Visual Basic language.As an object-oriented visual programming software, it supports man

5、y control ,such as datbird and updown,richtextbox and so on. Doing not need the plait writes the code of large quantity to the external appearance that describe the interface chemical element with positions. But as long as click in advance of the object adds to hold the act top.It can not only desig

6、n the beautiful interface for us.The data that it provide controls a data for visitting with the data object can then the relaxed chain receives every kind of format document at the same time.From but realize to every kind of operation of the database.The system used the Access conduct and actions d

7、atabase terrace.It can creat to set up every kind of database with the most simpile way,and can the support VB stabilizing efficient adjust to use to it.Ask for help from this system. With this design teachers could updata the current database and complete most tasks in quicker actions.According to

8、all above,to achieve the automatic questions generator of test paper.Key word:database;test paper generate system;JSP;control第1章 緒論51.1項(xiàng)目背景和意義51.2 研究目標(biāo)61.3 國內(nèi)外考試系統(tǒng)解決方案61.4論文結(jié)構(gòu)7第2章 系統(tǒng)相關(guān)理論和技術(shù)82.1 J2EE體系82.1.1 J2EE概念82.1.2 J2EE四層模型92.1.3 J2EE的核心組件92.2 MVC設(shè)計(jì)模式102.2.1 MVC設(shè)計(jì)模式概念102.2.2 采用MVC設(shè)計(jì)模式優(yōu)勢112.2.3

9、MVC設(shè)計(jì)模式原理122.3 Struts框架122.3.1 Struts框架概述122.3.2 Struts框架優(yōu)點(diǎn)122.4 Hibernate框架.132.4.1Hibernate框架概述132.4.2Hibernate框架優(yōu)點(diǎn)142.5 AJAX技術(shù)142.5.1 AJAX技術(shù)概述142.5.2 AJAX技術(shù)優(yōu)點(diǎn)162.6數(shù)據(jù)庫理論基礎(chǔ)17第3章 網(wǎng)絡(luò)考試系統(tǒng)的分析與設(shè)計(jì)192.1系統(tǒng)總體目標(biāo)和需要解決的問題193.2系統(tǒng)總體結(jié)構(gòu)193.3系統(tǒng)總流程圖193.4系統(tǒng)主要數(shù)據(jù)庫表設(shè)計(jì)20第4章 基于J2EE的網(wǎng)絡(luò)考試系統(tǒng)的實(shí)現(xiàn)244.1系統(tǒng)的開發(fā)及測試環(huán)境244.2 系統(tǒng)的關(guān)鍵技術(shù)的實(shí)現(xiàn)

10、244.2.1 Struts框架應(yīng)用244.2.2 數(shù)據(jù)庫連接池應(yīng)用264.2.3 AJAX技術(shù)應(yīng)用274.3系統(tǒng)的主要功能模塊的實(shí)現(xiàn)284.3.1 登錄子模塊實(shí)現(xiàn)284.3.2 出卷子模塊實(shí)現(xiàn)304.3.3評卷子模塊實(shí)現(xiàn)364.4組卷算法研究設(shè)計(jì)454.4.1隨機(jī)選取算法454.4.2回溯試探算法.464.4.3遺傳算法474.5系統(tǒng)安全性的實(shí)現(xiàn)49第5章 總結(jié)與思考505.1 研究成果總結(jié)505.2 研究中存在的不足50結(jié)束語52參考資料53致 謝54第1章 緒論1.1項(xiàng)目背景和意義Internet是世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)。所謂計(jì)算機(jī)網(wǎng)絡(luò),就是把分步在不同地理區(qū)域的計(jì)算機(jī)與專門外部設(shè)備

11、用通信線路互連成一個(gè)規(guī)模大、功能強(qiáng)的網(wǎng)絡(luò)系統(tǒng),從而使計(jì)算機(jī)之間相傳遞信息,共享硬件、軟件,數(shù)據(jù)信息等資源。它是現(xiàn)代通信技術(shù)與計(jì)算機(jī)技術(shù)相結(jié)合的產(chǎn)物。而Internet連接著世界各地?cái)?shù)以千萬計(jì)大大小小的電腦網(wǎng)絡(luò)和主機(jī),是世界上最開放的計(jì)算機(jī)網(wǎng)絡(luò)。萬維網(wǎng)的英文全稱是World Wide Web,也可以寫為WWW、Web或3W。它是使用超文本探索Internet的系統(tǒng),最早由位于日內(nèi)瓦的歐洲粒子物理實(shí)驗(yàn)室CERN所創(chuàng)建。創(chuàng)建者的目的是建立一種網(wǎng)絡(luò)系統(tǒng),將分布在世界各地的 物理學(xué)家組織在一起,互相交流設(shè)計(jì)思想和研究成果。在使用WWW進(jìn)行文件閱讀時(shí),屏幕上會出現(xiàn)許多不同于基色的詞或詞組,這就是“超級鏈接

12、”,超級鏈接是指向Web頁面的統(tǒng)一資源定位器(URL)的對象。當(dāng)用戶單擊一個(gè)超級鏈接時(shí),該用戶界面就會跳轉(zhuǎn)到超級鏈接所指向的Web頁面。URL可以看作是 Web頁面的地址。每個(gè)Web頁面都有一個(gè)或多個(gè)URL與之相關(guān)。WWW采用與“網(wǎng)”狀結(jié)構(gòu)組織有關(guān)的資源。長久以來,國家都很重視教育,無論是在政策還是財(cái)政上都給與很大程序的傾斜。而隨著社會的不斷高速發(fā)展,就業(yè)的壓力越來越大,所以在學(xué)校方面,如何更有效地進(jìn)行考試管理,以便騰出手來進(jìn)行更重要的教育工作,是一個(gè)很大的課題。而現(xiàn)行的考試系統(tǒng),仍然是很傳統(tǒng)的手工操作的“筆紙操作系統(tǒng)”,全部信息由負(fù)責(zé)的老師進(jìn)行紙頁記錄,然后進(jìn)行傳達(dá)保存工作,但這其中會涉及到

13、各部門間的信息傳達(dá)、信息查找等,由于每個(gè)人的字跡習(xí)慣都不一樣,所以,在信息傳達(dá)過程中會造成一定的失誤,而這失誤對于學(xué)校管理方面是很不好的。由此,重組一個(gè)新的考試管理系統(tǒng),是迫在眉睫。計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步和提升,使人類的信息分析方式和生活方式都得到了很大的改變,而各個(gè)產(chǎn)業(yè)都在自己的領(lǐng)域中不同深度的融入了計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù),對本行業(yè)的發(fā)展起了很大的推動作用?;贐/S模式的考試系統(tǒng)克服了傳統(tǒng)交流方式時(shí)所帶來的人力、物力以及時(shí)間上的浪費(fèi),同時(shí)也保證了交流過程的科學(xué)化、高效化,使管理過程方便、準(zhǔn)確、快捷、深入人心。網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,使得人類社會突飛猛進(jìn),數(shù)據(jù)分析共享是其中一個(gè)重要的增進(jìn)渠道。采用

14、這種管理方式,一是無紙化管理,節(jié)約的造紙印刷資源不可計(jì)數(shù);二是在管理方式及方法上有了多種選擇,增加了信息的可讀性和可管理性。總之,伴隨著個(gè)人電腦的普及和使用電腦人口的增加,網(wǎng)絡(luò)管理在眾多的管理渠道中脫穎而出,其地位及占有量一定會逐漸增加。技術(shù)革命引發(fā)教學(xué)結(jié)構(gòu)變革,網(wǎng)絡(luò)教育的產(chǎn)生是教育領(lǐng)域中的一場革命。1.2 研究目標(biāo)本系統(tǒng)是為某某學(xué)校設(shè)計(jì)開發(fā)的一個(gè)在線考試系統(tǒng),來研究基于B/S模式的在線教務(wù)管理的實(shí)現(xiàn),采用的是JSP+SQL模式的電子管理平臺。該管理系統(tǒng)有機(jī)的結(jié)合在線考試的現(xiàn)實(shí)情況,采取各種直觀的手段,顯示學(xué)生的實(shí)際情況,方便教師和管理者有針對性的制定培養(yǎng)計(jì)劃,以便查漏補(bǔ)缺。此系統(tǒng)設(shè)計(jì)上采用三

15、層結(jié)構(gòu)、Web Service技術(shù),使之在選用平臺、采用技術(shù)上具有先進(jìn)性、前瞻性、擴(kuò)充性,從而保證建成的系統(tǒng)具有良好的穩(wěn)定性、可擴(kuò)充性。系統(tǒng)設(shè)計(jì)按標(biāo)準(zhǔn)化、規(guī)范化,分層設(shè)計(jì),構(gòu)件化實(shí)現(xiàn)。采用軟件構(gòu)件化的開發(fā)方式,使系統(tǒng)結(jié)構(gòu)分層,業(yè)務(wù)與實(shí)現(xiàn)分離,邏輯與數(shù)據(jù)分離;以統(tǒng)一的服務(wù)接口規(guī)范為核心,使用開放標(biāo)準(zhǔn)。從功能上來說,系統(tǒng)是比較完備的,系統(tǒng)以Web界面與用戶交互,為用戶提供信息并接受其操作,同時(shí)通過數(shù)據(jù)庫管理系統(tǒng)來存儲信息數(shù)據(jù)。系統(tǒng)實(shí)現(xiàn)了對信息數(shù)據(jù)的瀏覽、查詢、編輯和管理等基本數(shù)據(jù)庫操作,采用了模塊化設(shè)計(jì)方法,根據(jù)用戶的需求及程序的應(yīng)用與維護(hù)的易用性,將各個(gè)部分置于不同的模塊當(dāng)中,方便了程序的擴(kuò)展與

16、維護(hù),同時(shí)建立了程序功能復(fù)用的基礎(chǔ)。1.3 國內(nèi)外考試系統(tǒng)解決方案我國互聯(lián)網(wǎng)行業(yè)較國外起步晚,1994年中國獲準(zhǔn)進(jìn)入互聯(lián)網(wǎng),并于同年完成所有中國互聯(lián)網(wǎng)工作,次年5月,張樹新創(chuàng)立瀛海威,這是中國第一家互聯(lián)網(wǎng)服務(wù)供應(yīng)商,自此之后,在一代代IT人才的推動下,中國互聯(lián)網(wǎng)事業(yè)獲得蓬勃發(fā)展。由此,中國課程網(wǎng)站的起步也較晚,但現(xiàn)在卻無從得知誰是第一家課程網(wǎng)站了,只知道現(xiàn)在中國課程網(wǎng)站的發(fā)展十分迅速,幾乎涵蓋了所有包括中小學(xué)、大學(xué)及各種技能證書培訓(xùn)的所有課程,內(nèi)容豐富而冗余,分類龐雜而紊亂,大多功能相似,內(nèi)容相仿。1.4論文結(jié)構(gòu)第1章引言部分,引言主要敘述課題的研究背景和意義,以及課題的研究目標(biāo)。第2章主要內(nèi)

17、容是:介紹J2EE體系、MUC設(shè)計(jì)模式、Struts框架、AJAX技術(shù)及數(shù)據(jù)庫方面的基礎(chǔ)知識。第3章主要內(nèi)容是:系統(tǒng)設(shè)計(jì)包括,系統(tǒng)總體設(shè)計(jì);系統(tǒng)主要數(shù)據(jù)庫表設(shè)計(jì)。第4章主要內(nèi)容是:系統(tǒng)詳細(xì)設(shè)計(jì)包括,系統(tǒng)開發(fā)關(guān)鍵技術(shù),系統(tǒng)主要功能實(shí)現(xiàn),系統(tǒng)安全測試。第5章主要內(nèi)容是研究課題存在的問題及經(jīng)驗(yàn)總結(jié)。最后還有結(jié)論、致謝、參考文獻(xiàn)等等內(nèi)容的介紹。第2章 系統(tǒng)相關(guān)理論和技術(shù)2.1 J2EE體系J2EE容器以兩種方式支持基于構(gòu)件的應(yīng)用編程模型。第一,它們使許多需要一定編程技能的標(biāo)準(zhǔn)功能自動化,如事務(wù)管理和安全。第二,它們提供了對構(gòu)件有用的API,如消息傳遞(Java Message Service)和數(shù)據(jù)庫

18、訪問(JDBC)。容器的這些特征統(tǒng)一了J2EE編程模型,簡化了應(yīng)用開發(fā),支持構(gòu)件和應(yīng)用級的可移植性。2.1.1 J2EE概念目前,Java 2平臺有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的

19、開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如編寫一次、隨處運(yùn)行的特性、方便存取數(shù)據(jù)庫的JDBC API、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場時(shí)間的體系結(jié)構(gòu)。J2體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性

20、以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。2.1.2 J2EE四層模型JSP頁面包含四種類型元素,每一種元素在動態(tài)內(nèi)容的表示中都扮演一個(gè)特殊的角色。(1)Text 元素是通過標(biāo)準(zhǔn)HTML或XML格式化的內(nèi)容,表示頁面的靜態(tài)部分。(2)Directives是JSP處理器的指令。當(dāng)把JSP頁面編譯成可執(zhí)行形式時(shí),JSP容器處理這些指令。(3)Tags調(diào)用JavaBeans以產(chǎn)生動態(tài)內(nèi)容或執(zhí)

21、行其它計(jì)算。(4)Scripting 元素可以是declaration, scriptlet或expression. 象Tags元素一樣,腳本元素可以用來執(zhí)行計(jì)算以產(chǎn)生動態(tài)內(nèi)容。當(dāng)標(biāo)準(zhǔn)的Tags元素沒有被定義或不適用的時(shí)候,可以使用Scripting 元素。2.1.3 J2EE的核心組件Servlet提供了產(chǎn)生動態(tài)頁面內(nèi)容的機(jī)制??梢园阉鼈兿胂蟪煞?wù)器的Java applets. Servlet是用來替代和改善CGI腳本的。CGI通常是平臺相關(guān)的,支持交互的能力有限。從性能上來講,服務(wù)器每接受到一個(gè)用戶請求都要裝載一次CGI,消耗內(nèi)存和處理周期。而Servlet是基于Java編程語言的,因此具

22、有可移植性,靈活性,且編程較簡單。Servlet在第一次初始化的時(shí)候被裝載到內(nèi)存中,此后就可以服務(wù)于任何用戶請求,所以,Servlet比CGI具有更好的性能。和所有的J2EE構(gòu)件一樣,Servlet運(yùn)行在由J2EE平臺提供者所實(shí)現(xiàn)的容器中。容器管理Servlet與客戶的交互,并為Servlet訪問各種基于Java技術(shù)的服務(wù)提供了豐富的環(huán)境。Servlet容器實(shí)現(xiàn)了J2SE的所有API. 因此,Servlet可以采用Java編程語言的各種技術(shù),包括JDBC, JNDI(Java Naming and Directory Interface), RMI, Java Beans等。容器也允許Serv

23、let通過session獲取特定客戶的信息,解決了由于HTTP協(xié)議的無狀態(tài)性而引起的客戶信息的不透明性問題。圖1是一個(gè)典型的Servlet與Client的交互。一個(gè)客戶通過HTTP向一個(gè)Web服務(wù)器發(fā)出一個(gè)請求。在Web服務(wù)器處理該請求時(shí),將它傳遞給Servlet容器,由Servlet容器將請求傳遞給合適的Servlet. Servlet有一個(gè)請求對象,它提供給Servlet關(guān)于請求的信息,包括誰調(diào)用了該Servlet, 傳送了什么樣的表單參數(shù),以及關(guān)于HTTP請求的其它信息。Servlet通過一個(gè)響應(yīng)對象向客戶反饋數(shù)據(jù)。在請求處理期間的任何時(shí)候,Servlet能夠利用一個(gè)上下文對象將發(fā)生的事

24、件記入日志,獲得資源的URL引用,設(shè)置和存儲在同一上下文的其它Servlet能夠使用的屬性。同樣,Servlet也能訪問向它提供客戶狀態(tài)信息的一個(gè)session對象。2.2 MVC設(shè)計(jì)模式2.2.1 MVC設(shè)計(jì)模式概念MVC是一種目前廣泛流行的軟件設(shè)計(jì)模式,早在70年代,IBM就推出了Sanfronscisico項(xiàng)目計(jì)劃,其實(shí)就是MVC設(shè)計(jì)模式的研究。近來,隨著J2EE的成熟,它正在成為在J2EE平臺上推薦的一種設(shè)計(jì)模型,也是廣大Java開發(fā)者非常感興趣的設(shè)計(jì)模型。MVC模式也逐漸在PHP和ColdFusion開發(fā)者中運(yùn)用,并有增長趨勢。隨著網(wǎng)絡(luò)應(yīng)用的快速增加,MVC模式對于Web應(yīng)用的開發(fā)無

25、疑是一種非常先進(jìn)的設(shè)計(jì)思想,無論你選擇哪種語言,無論應(yīng)用多復(fù)雜,它都能為你理解分析應(yīng)用模型時(shí)提供最基本的分析方法,為你構(gòu)造產(chǎn)品提供清晰的設(shè)計(jì)框架,為你的軟件工程提供規(guī)范的依據(jù)。MVC設(shè)計(jì)思想 MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層模型層、視圖層、控制層。2.2.2 采用MVC設(shè)計(jì)模式優(yōu)勢MVC的優(yōu)點(diǎn):大部分用過程語言比如ASP、PHP開發(fā)出來的Web應(yīng)用,初始的開發(fā)模板就是混合層的數(shù)據(jù)編程。例如,直接向數(shù)據(jù)庫發(fā)送請求并用HTML顯示,開發(fā)速度往往比較快,但由

26、于數(shù)據(jù)頁面的分離不是很直接,因而很難體現(xiàn)出業(yè)務(wù)模型的樣子或者模型的重用性。產(chǎn)品設(shè)計(jì)彈性力度很小,很難滿足用戶的變化性需求。MVC要求對應(yīng)用分層,雖然要花費(fèi)額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,產(chǎn)品的應(yīng)用通過模型可以得到更好地體現(xiàn)。 首先,最重要的是應(yīng)該有多個(gè)視圖對應(yīng)一個(gè)模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問應(yīng)用的要求。例如,訂單模型可能有本系統(tǒng)的訂單,也有網(wǎng)上訂單,或者其他系統(tǒng)的訂單,但對于訂單的處理都是一樣,也就是說訂單的處理是一致的。按MVC設(shè)計(jì)模式,一個(gè)訂單模型以及多個(gè)視圖即可解決問題。這樣減少了代碼的復(fù)制,即減少了代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。 其次,由于模型

27、返回的數(shù)據(jù)不帶任何顯示格式,因而這些模型也可直接應(yīng)用于接口的使用。 再次,由于一個(gè)應(yīng)用被分離為三層,因此有時(shí)改變其中的一層就能滿足應(yīng)用的改變。一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需改動MVC的模型層??刂茖拥母拍钜埠苡行В捎谒巡煌哪P秃筒煌囊晥D組合在一起完成不同的請求,因此,控制層可以說是包含了用戶請求權(quán)限的概念。 最后,它還有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化產(chǎn)生管理程序代碼。 綜合上述,MVC是構(gòu)筑軟件非常好的基本模式,至少將業(yè)務(wù)處理與顯示分離,強(qiáng)迫將應(yīng)用分為模型、視圖以及控制層, 使得你會認(rèn)真考慮應(yīng)用的額外復(fù)雜

28、性,把這些想法融進(jìn)到架構(gòu)中,增加了應(yīng)用的可拓展性。如果能把握到這一點(diǎn),MVC模式會使得你的應(yīng)用更加強(qiáng)壯,更加有彈性,更加個(gè)性化。2.2.3 MVC設(shè)計(jì)模式原理圖2-3 MVC設(shè)計(jì)模式2.3 Struts框架2.3.1 Struts框架概述Struts是目前使用最廣的MVC架構(gòu),它可以在Web應(yīng)用程序中使用JSP和Servlet。Struts解決了用JSP或Servlet開發(fā)Web應(yīng)用程序時(shí)遇到的問題。大多數(shù)情況下,可以使用Servlet生成HTML頁面,并傳送到客戶端,但這樣所有的代碼都需用Servlet編寫,代碼比較麻煩,而且維護(hù)起來很困難;另外,使用JSP來生成HTML頁面時(shí),業(yè)務(wù)邏輯和顯

29、示邏輯混雜在一起,很多Java代碼和HTML混在一起,代碼維護(hù)量大,開發(fā)效率低。Struts在Java服務(wù)器端實(shí)現(xiàn)了MVC設(shè)計(jì)模式,在創(chuàng)建Web應(yīng)用程序時(shí)能容易的分離表示層和業(yè)務(wù)數(shù)據(jù)層,這樣就解決了JSP所帶來的問題。2.3.2 Struts框架優(yōu)點(diǎn)Struts框架是目前最成熟、應(yīng)用最廣泛的開放源代碼Java Web MVC框架,該框架為Java Web應(yīng)用系統(tǒng)的開發(fā)者提供了一個(gè)結(jié)構(gòu)清晰、功能強(qiáng)大、成本低廉、容易擴(kuò)展及方便維護(hù)的平臺。Struts基于MVC設(shè)計(jì)模式,使用servlet和JSP API建立,可以用來構(gòu)建復(fù)雜的Web應(yīng)用。它允許我們分解一個(gè)應(yīng)用程序的業(yè)務(wù)邏輯、控制邏輯和表現(xiàn)邏輯的代

30、碼,使它的重用性和維護(hù)性更好。2.4 Hibernate框架.2.4.1Hibernate框架概述Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transa

31、ction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五個(gè)核心接口分別加以介紹。Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session,而以后會將HttpSesion對象稱為用戶session

32、。SessionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。Configuration接口:Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實(shí)例首先定位映射文檔位

33、置、讀取配置,然后創(chuàng)建SessionFactory對象。Transaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。2.4.2Hibernate框架優(yōu)點(diǎn)一、Hibernate是JDBC 的輕量級的對象封裝,它是一個(gè)獨(dú)立的對象持久層框架,和App Server,和EJB沒有什么必然的聯(lián)系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應(yīng)用程序的數(shù)據(jù)庫訪問代碼,DAO接口的

34、實(shí)現(xiàn)類,甚至可以是BMP里面的訪問數(shù)據(jù)庫的代碼。從這個(gè)意義上來說,Hibernate和EB不是一個(gè)范疇的東西,也不存在非此即彼的關(guān)系。 二、Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,所以Hibernate的兼容性和JDBC驅(qū)動,和數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的Java程序,和App Server沒有任何關(guān)系,也不存在兼容性問題。 三、 Hibernate不能用來直接和Entity Bean做對比,只有放在整個(gè)J2EE項(xiàng)目的框架中才能比較。并且即使是放在軟件整體框架中來看,Hibernate也是做為JDBC的替代者出現(xiàn)的,而不是Entity Bean的替代者出現(xiàn)的。2.5 AJAX

35、技術(shù)2.5.1 AJAX技術(shù)概述AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 國內(nèi)通常的讀音為“阿賈克斯”和阿賈克斯足球隊(duì)讀音一樣。Web應(yīng)用的交互如Flickr, Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個(gè)術(shù)語源自描述從基于網(wǎng)頁的Web應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁的服務(wù)端取得并且可以被動態(tài)地寫入網(wǎng)頁中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。 雖然大部分開發(fā)人員在過去使用過XMLHttp或

36、者使用Iframe來加載數(shù)據(jù),但僅到現(xiàn)在我們才看到傳統(tǒng)的開發(fā)人員和公司開始采用這些技術(shù)。就像新的編程語言或模型伴隨著更多的痛苦,開發(fā)人員需要學(xué)習(xí)新的技巧及如何最好利用這些新技術(shù)。AJAX模式許多重要的技術(shù)和AJAX開發(fā)模式可以從現(xiàn)有的知識中獲取。例如,在一個(gè)發(fā)送請求到服務(wù)端的應(yīng)用中,必須包含請求順序、優(yōu)先級、超時(shí)響應(yīng)、錯誤處理及回調(diào),其中許多元素已經(jīng)在Web服務(wù)中包含了,就像現(xiàn)在的SOA。AJAX開發(fā)人員擁有一個(gè)完整的系統(tǒng)架構(gòu)知識。同時(shí),隨著技術(shù)的成熟還會有許多地方需要改進(jìn),特別是UI部分的易用性。AJAX開發(fā)與傳統(tǒng)的CS開發(fā)有很大的不同。這些不同引入了新的編程問題,最大的問題在于易用性。由于

37、AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標(biāo)準(zhǔn)也變得和JavaScript的運(yùn)行時(shí)性能一樣重要了。這些問題中的大部分來源于瀏覽器、服務(wù)器和技術(shù)的組合,因此必須理解如何才能最好的使用這些技術(shù)。綜合各種變化的技術(shù)和強(qiáng)耦合的客戶服務(wù)端環(huán)境,AJAX提出了一種新的開發(fā)方式。AJAX開發(fā)人員必須理解傳統(tǒng)的MVC架構(gòu),這限制了應(yīng)用層次之間的邊界。同時(shí),開發(fā)人員還需要考慮CS環(huán)境的外部和使用AJAX技術(shù)來重定型MVC邊界。最重要的是,AJAX開發(fā)人員必須禁止以頁面集合的方式來考慮Web應(yīng)用而需要將其認(rèn)為是單個(gè)頁面。一旦UI設(shè)計(jì)與服務(wù)架構(gòu)之間的范圍被嚴(yán)格區(qū)分開來后,開發(fā)人員就需要

38、更新和變化的技術(shù)集合了。AJAX的最大機(jī)遇在于用戶體驗(yàn)。在使應(yīng)用更快響應(yīng)和創(chuàng)新的過程中,定義Web應(yīng)用的規(guī)則正在被重寫;因此開發(fā)人員必須更注重用戶?,F(xiàn)在用戶已經(jīng)逐漸習(xí)慣如何使用Web應(yīng)用了。例如用戶通常希望每一次按鈕點(diǎn)擊會導(dǎo)致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長時(shí)間的狀況。因此用戶需要重新體驗(yàn)按鈕點(diǎn)擊的響應(yīng)了??捎眯允茿JAX令人激動的地方而且已經(jīng)產(chǎn)生了幾種新穎的技術(shù)。其中最引人注目的是一種稱為“黃色隱出”的技術(shù),他在數(shù)據(jù)更新之前時(shí)將用戶界面變?yōu)辄S色,更新完成后立刻恢復(fù)原來的顏色。AJAX開發(fā)人員將用戶從Web應(yīng)用的負(fù)載中解放出來;小心地利用AJAX提供的豐富接口,不久桌面開發(fā)人員會

39、發(fā)現(xiàn)AJAX是他們的方向。2.5.2 AJAX技術(shù)優(yōu)點(diǎn)傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請求。服務(wù)器接收并處理傳來的表單,然後返回一個(gè)新的網(wǎng)頁。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇搬醿蓚€(gè)頁面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的web service接口,并在客戶端采用JavaScript處理來自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的

40、數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。使用Ajax的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。就像DHTML應(yīng)用程序那樣,Ajax應(yīng)用程序必須在眾多不同的瀏覽器和平臺上經(jīng)過嚴(yán)格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶提供

41、替代功能。對應(yīng)用Ajax最主要的批評就是,它可能破壞瀏覽器后退按鈕的正常行為。在動態(tài)更新頁面的情況下,用戶無法回到前一個(gè)頁面狀態(tài),這是因?yàn)闉g覽器僅能記下歷史記錄中的靜態(tài)頁面。一個(gè)被完整讀入的頁面與一個(gè)已經(jīng)被動態(tài)修改過的頁面之間的差別非常微妙;用戶通常都希望單擊后退按鈕,就能夠取消他們的前一次操作,但是在Ajax應(yīng)用程序中,卻無法這樣做。不過開發(fā)者已想出了種種辦法來解決這個(gè)問題,當(dāng)中大多數(shù)都是在用戶單擊后退按鈕訪問歷史記錄時(shí),通過建立或使用一個(gè)隱藏的IFRAME來重現(xiàn)頁面上的變更。(例如,當(dāng)用戶在Google Maps中單擊后退時(shí),它在一個(gè)隱藏的IFRAME中進(jìn)行搜索,然后將搜索結(jié)果反映到Aja

42、x元素上,以便將應(yīng)用程序狀態(tài)恢復(fù)到當(dāng)時(shí)的狀態(tài)。)一個(gè)相關(guān)的觀點(diǎn)認(rèn)為,使用動態(tài)頁面更新使得用戶難于將某個(gè)特定的狀態(tài)保存到收藏夾中。該問題的解決方案也已出現(xiàn),大部分都使用URL片斷標(biāo)識符(通常被稱為錨點(diǎn),即URL中#后面的部分)來保持跟蹤,允許用戶回到指定的某個(gè)應(yīng)用程序狀態(tài)。(許多瀏覽器允許JavaScript動態(tài)更新錨點(diǎn),這使得Ajax應(yīng)用程序能夠在更新顯示內(nèi)容的同時(shí)更新錨點(diǎn)。)這些解決方案也同時(shí)解決了許多關(guān)于不支持后退按鈕的爭論。進(jìn)行Ajax開發(fā)時(shí),網(wǎng)絡(luò)延遲即用戶發(fā)出請求到服務(wù)器發(fā)出響應(yīng)之間的間隔需要慎重考慮。不給予用戶明確的回應(yīng) ,沒有恰當(dāng)?shù)念A(yù)讀數(shù)據(jù) ,或者對XMLHttpRequest的不

43、恰當(dāng)處理,都會使用戶感到延遲,這是用戶不欲看到的,也是他們無法理解的。通常的解決方案是,使用一個(gè)可視化的組件來告訴用戶系統(tǒng)正在進(jìn)行后臺操作并且正在讀取數(shù)據(jù)和內(nèi)容。2.6數(shù)據(jù)庫理論基礎(chǔ)數(shù)據(jù)庫的定義:定義1當(dāng)人們從不同的角度來描述這一概念時(shí)就有不同的定義(當(dāng)然是描述性的)。例如,稱數(shù)據(jù)庫是一個(gè)“記錄保存系統(tǒng)”(該定義強(qiáng)調(diào)了數(shù)據(jù)庫是若干記錄的集合)。又如稱數(shù)據(jù)庫是“人們?yōu)榻鉀Q特定的任務(wù),以一定的組織方式存儲在一起的相關(guān)的數(shù)據(jù)的集合”(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫是“一個(gè)數(shù)據(jù)倉庫”。當(dāng)然,這種說法雖然形象,但并不嚴(yán)謹(jǐn)。 嚴(yán)格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。在經(jīng)

44、濟(jì)管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣的“倉庫”,并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個(gè)數(shù)據(jù)庫。有了這個(gè)數(shù)據(jù)倉庫我們就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計(jì)算機(jī)上自動進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。此外,在財(cái)務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種數(shù)據(jù)庫,使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉庫、生產(chǎn)的自動化管理。 J.Martin給數(shù)據(jù)庫下了一個(gè)比較完整的定義:數(shù)據(jù)庫是存儲

45、在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲獨(dú)立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)行。當(dāng)某個(gè)系統(tǒng)中存在結(jié)構(gòu)上完全分開的若干個(gè)數(shù)據(jù)庫時(shí),則該系統(tǒng)包含一個(gè)“數(shù)據(jù)庫集合”。定義2數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點(diǎn):盡可能不重復(fù),以最優(yōu)方式為某個(gè)特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使用它的應(yīng)用程序,對數(shù)據(jù)的增、刪、改和檢索由統(tǒng)一軟件進(jìn)行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。 定義3 (伯爾尼公約議

46、定書專家委員會的觀點(diǎn))所有的信息(數(shù)據(jù)事實(shí)等)的編纂物,不論其是以印刷形式,計(jì)算機(jī)存儲單元形式,還是其它形式存在,都應(yīng)視為“數(shù)據(jù)庫”。數(shù)字化內(nèi)容選擇的原因有很多,概括起來主要有:(1)存儲空間的原因。數(shù)字化的產(chǎn)品是通過網(wǎng)絡(luò)被廣大用戶存取利用,而大家都知道數(shù)字化產(chǎn)品是存放在磁盤陣列上的,磁盤陣列由服務(wù)器來管理,磁盤空間是有限的,服務(wù)器的能力也是有限的,不可能無限量地存入數(shù)字資源,這就需要我們對文獻(xiàn)資源數(shù)字化內(nèi)容進(jìn)行選擇。(2)解決數(shù)字化生產(chǎn)高成本和圖書館經(jīng)費(fèi)有限性之間矛盾的需要。幾乎沒有圖書館有充足的資源來對整個(gè)館藏進(jìn)行數(shù)字化,內(nèi)容選擇不可避免。(3)數(shù)字資源管理的需要。技術(shù)的快速發(fā)展使數(shù)字化項(xiàng)

47、目所生成的數(shù)字資源的生命周期越來越短,投入巨資進(jìn)行數(shù)字遷移是延長數(shù)字資源生命的1個(gè)重要途徑,昂貴的維護(hù)成本就必須考慮數(shù)字化的內(nèi)容選擇。數(shù)據(jù)庫發(fā)展史數(shù)據(jù)庫技術(shù)從誕生到現(xiàn)在,在不到半個(gè)世紀(jì)的時(shí)間里,形成了堅(jiān)實(shí)的理論基礎(chǔ)、成熟的商業(yè)產(chǎn)品和廣泛的應(yīng)用領(lǐng)域,吸引越來越多的研究者加入。數(shù)據(jù)庫的誕生和發(fā)展給計(jì)算機(jī)信息管理帶來了一場巨大的革命。第3章 網(wǎng)絡(luò)考試系統(tǒng)的分析與設(shè)計(jì)2.1系統(tǒng)總體目標(biāo)和需要解決的問題本在線考試系統(tǒng)的總體目標(biāo),是應(yīng)用以上技術(shù)開發(fā)一個(gè)能夠讓教師、學(xué)生及系統(tǒng)管理員三種身份的人同時(shí)在一個(gè)系統(tǒng)中進(jìn)行在線考試功能的系統(tǒng),以最簡便的方式盡量真實(shí)地模擬現(xiàn)實(shí)教學(xué)過程中的考試過程,同時(shí)又要做到操作簡便信

48、息冗余度小等要求。本系統(tǒng)在開發(fā)過程中存在的問題有如下幾個(gè):、如何利用上一章中介紹的技術(shù)進(jìn)行系統(tǒng)的開發(fā),并保證系統(tǒng)能正常穩(wěn)定地運(yùn)行; 2、如何在一個(gè)系統(tǒng)中使得系統(tǒng)管理員、教師及學(xué)生三種完全不同的用戶能夠互不干擾地進(jìn)行操作,而后臺數(shù)據(jù)庫不受其影響;3、如何保證系統(tǒng)的安全。3.2系統(tǒng)總體結(jié)構(gòu)根據(jù)系統(tǒng)需求分析,可得出本系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)圖:在線考試系統(tǒng)管理員子系統(tǒng)教師子系統(tǒng)學(xué)生子系統(tǒng)系統(tǒng)用戶管理教師用戶管理學(xué)生用戶管理章節(jié)管理試題管理出卷管理個(gè)人資料管理參與考試個(gè)人資料管理查看成績圖.在線考試系統(tǒng)總體結(jié)構(gòu)圖3.3系統(tǒng)總流程圖根據(jù)系統(tǒng)總體結(jié)構(gòu)圖,不難分析出其系統(tǒng)總體流程圖:開始登錄窗口判斷身份管理員教師

49、學(xué)生添加新管理員管理管理員刪除管理員修改密碼添加教師刪除教師添加學(xué)生刪除學(xué)生添加新章節(jié)管理章節(jié)添加試題管理試題手動/自動出卷查看是否出卷查看個(gè)人信息修改密碼參與答題查看分?jǐn)?shù)修改密碼結(jié)束圖.在線考試系統(tǒng)總體流程圖3.4系統(tǒng)主要數(shù)據(jù)庫表設(shè)計(jì)數(shù)據(jù)庫總設(shè)計(jì)的ER圖如圖3-2所示。在線考試系統(tǒng)采用MS SQL Server作為后臺的數(shù)據(jù)庫。我們建立了一個(gè)名為jspzxks的數(shù)據(jù)庫用于存放放系統(tǒng)中的表,各表的名稱和功能如表3-1所示。管理員用戶名密碼權(quán)限注冊時(shí)間教師用戶名密碼姓名工號任教科目課程名稱教師班級試卷科目題型班級考試時(shí)間學(xué)生學(xué)號姓名班級聯(lián)系成績課程學(xué)生教師管理教授產(chǎn)生管理考試擁有圖.在線考試系統(tǒng)

50、整體-圖表3-1 BookShopDB數(shù)據(jù)庫中的表及其功能說明表 名功 能 說 明allusers管理員信息表jiaoshi教師信息表xuesheng學(xué)生信息表kecheng課程信息表Shijuan試卷信息表chengji成績信息表Zhangjie章節(jié)信息表下面將詳細(xì)介紹我所設(shè)計(jì)模塊表的數(shù)據(jù)結(jié)構(gòu)。表3-2 allusers表的結(jié)構(gòu)表3-3 chengji表的結(jié)構(gòu)表3-4 shijuan表的結(jié)構(gòu)表3-5 xuanzeti表的結(jié)構(gòu)表3-6 xuesheng表的結(jié)構(gòu)表3-7 jiaoshi表的結(jié)構(gòu)表3-8 kecheng表的結(jié)構(gòu)第4章 基于J2EE的網(wǎng)絡(luò)考試系統(tǒng)的實(shí)現(xiàn)4.1系統(tǒng)的開發(fā)及測試環(huán)境本在線

51、考試系統(tǒng)采用的技術(shù)為基于J2EE平臺,使用AJAX技術(shù)搭建系統(tǒng),數(shù)據(jù)庫應(yīng)用SQL2008系統(tǒng)。4.2 系統(tǒng)的關(guān)鍵技術(shù)的實(shí)現(xiàn)4.2.1 Struts框架應(yīng)用隨著JSP 與Servlet 技術(shù)大量應(yīng)用于以Web 為基礎(chǔ)之應(yīng)用程序,Java 開發(fā)人員群體認(rèn)為應(yīng)以較佳之模式以提升Web 應(yīng)用程序之可維護(hù)性與重復(fù)使用性。早期JSP 規(guī)格書中曾列舉兩種可行之JSP 應(yīng)用架構(gòu),分別為Model1 與Model 2。struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡化了基于MVC的web應(yīng)用程序的開發(fā)。 1 Struts壓縮包內(nèi)容文件夾jakarta-struts-1.0.2包含兩個(gè)目錄,lib和

52、webapps。在lib目錄中有使用struts創(chuàng)建應(yīng)用程序是所需的文件: 文件 描述 jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API類。如果我們要使用struts提供的數(shù)據(jù)資源,就需要將這個(gè)文件拷貝到WEB-INFlib下 Struts.jar 包含struts中所有的java類。同樣也需要拷貝到WEB-INFlib下 *.tld 標(biāo)記庫描述器文件,描述了多個(gè)struts標(biāo)記庫中的自定義標(biāo)記。同樣要拷貝到WEB-INFlib下 在webapps目錄下有如下文件: Web應(yīng)用程序 描述 Struts-blank.war 一個(gè)簡單的web應(yīng)用程

53、序 Struts-documentation.war 包含struts站點(diǎn)上所有struts文檔 Struts-example.war Struts很多特性的示范 Struts-exercisetaglib.war 主要用于對自定義標(biāo)簽庫進(jìn)行增加而使用的測試頁,但也可以示范如何使用struts標(biāo)記 Struts-template.war 包含struts模板標(biāo)記的介紹和范例 Struts-upload.war 一個(gè)簡單的例子,示范如何使用struts框架上傳文件。2.Struts體系結(jié)構(gòu)讓我們從MVC角度觀察struts框架中的組件 框架中三個(gè)部分:模型,視窗和控制器。 模型 在struts框

54、架中,模型分為兩個(gè)部分: 系統(tǒng)的內(nèi)部狀態(tài);可以改變狀態(tài)的操作(事務(wù)邏輯)。內(nèi)部狀態(tài)通常由一組ActinForm JavaBean表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù)雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫)。 大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調(diào)用。比如購物車bean,它擁有用戶購買商品的信息,可能還有checkOut()方法用來檢查用戶的信用卡,并向倉庫發(fā)定貨信息。 小型程序中,操作可能會被內(nèi)嵌在Action類,它是struts框架中控制器角色的一部分。當(dāng)邏輯簡單時(shí)這個(gè)方法很適合。 建議用戶將事務(wù)邏輯

55、(要做什么)與Action類所扮演的角色(決定做什么)分開。 視窗 由JSP建立,struts包含擴(kuò)展自定義標(biāo)簽庫,可以簡化創(chuàng)建完全國際化用戶界面的過程。 控制器 struts中,基本的控制器組件是ActionServlet類中的實(shí)例servelt,實(shí)際使用的servlet在配置文件中由一組映射(由ActionMapping類進(jìn)行描述)進(jìn)行定義。 3.Struts框架中的組件(由于ROSE工具還未能下載,只能找來這幅圖,它說明了一定問題,特別是ActionErrors,但它并沒有將ActionMapping,JSP和Tag Library包含進(jìn)來,有時(shí)間作完替換) 框架中所使用的組件: Act

56、ionServlet 控制器 ActionClass 包含事務(wù)邏輯 ActionForm 顯示模塊數(shù)據(jù) ActionMapping 幫助控制器將請求映射到操作 ActionForward 用來指示操作轉(zhuǎn)移的對象 ActionError 用來存儲和回收錯誤 Struts標(biāo)記庫 可以減輕開發(fā)顯示層次的工作4.2.2 數(shù)據(jù)庫連接池應(yīng)用數(shù)據(jù)庫連接是一種關(guān)鍵的有限的昂貴的資源,這一點(diǎn)在多用戶的網(wǎng)頁應(yīng)用程序中體現(xiàn)得尤為突出。對數(shù)據(jù)庫連接的管理能顯著影響到整個(gè)應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。數(shù)據(jù)庫連接池正是針對這個(gè)問題提出來的。數(shù)據(jù)庫連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而再不是重新建立一個(gè);釋放空閑時(shí)間超過最大空閑時(shí)間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏。這項(xiàng)技術(shù)能明顯提高對數(shù)據(jù)庫操作的性能。數(shù)據(jù)庫連接池在初始化時(shí)將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接放到連接池中,這些數(shù)據(jù)庫連接的數(shù)量是由最小數(shù)據(jù)庫連接數(shù)來設(shè)定的。無論這些數(shù)據(jù)庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數(shù)量。連接池的最大數(shù)據(jù)庫連接數(shù)量限定了這個(gè)連接池能占有的最大連接數(shù),當(dāng)應(yīng)用程序向連接池請求的連接數(shù)超過最大連接數(shù)量時(shí),這些請求將被加入到等待隊(duì)列中

溫馨提示

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

最新文檔

評論

0/150

提交評論