




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于java實(shí)現(xiàn)的計(jì)算機(jī)考試系統(tǒng)畢業(yè)設(shè)計(jì)(論文)網(wǎng):PAGE76浙江理工大學(xué)信息電子學(xué)院本科畢業(yè)論文(設(shè)計(jì))基于java實(shí)現(xiàn)的計(jì)算機(jī)考試系統(tǒng)摘要 無(wú)紙化考試系統(tǒng)是現(xiàn)代教育的重要標(biāo)志,讓考試的結(jié)果更加的合理、公正、公平,也可以節(jié)約人力成本。高校在線考試系統(tǒng),常用客戶機(jī)/服務(wù)器(C/S)型的MIS型架構(gòu),或基于Web使用瀏覽器/服務(wù)器(B/S)的架構(gòu)。C/S架構(gòu)的在線考試系統(tǒng),試題存放在遠(yuǎn)程服務(wù)器上,客戶端安裝考試應(yīng)用程序和數(shù)據(jù)庫(kù)客戶機(jī)配置,每次考試時(shí)需對(duì)客戶端進(jìn)行安裝、配置。而采用B/S架構(gòu)的考試系統(tǒng),通過(guò)與B/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)管理系統(tǒng)結(jié)合可實(shí)現(xiàn)瘦客戶機(jī),系統(tǒng)維護(hù)僅需在服務(wù)器端進(jìn)行。故開發(fā)了基于B/S的在線考試系統(tǒng)。網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有兩類:C/S和B/S模式。前者主要的缺點(diǎn)是維護(hù)、升級(jí)相對(duì)比較麻煩,費(fèi)用也比較高;B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn)。這樣大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本。 本論文的內(nèi)容就是設(shè)計(jì)一個(gè)基于java的B/S結(jié)構(gòu)的計(jì)算機(jī)考試系統(tǒng),可以基本實(shí)現(xiàn)學(xué)生、教師以及管理員所需要的功能。在這個(gè)B/S結(jié)構(gòu)的設(shè)計(jì)中,學(xué)生通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)登入系統(tǒng),實(shí)時(shí)提交解答。系統(tǒng)能保存結(jié)果,供教師披閱,并能自動(dòng)根據(jù)條件對(duì)客觀題進(jìn)行判分,還能對(duì)分?jǐn)?shù)進(jìn)行統(tǒng)計(jì)、管理,協(xié)助教師找出教學(xué)中存在的問(wèn)題,滿足任何授權(quán)的考生隨時(shí)隨地考試并迅速獲得成績(jī)的需求,同時(shí)也大大減輕了教師出題、監(jiān)考和判卷等繁重的工作量。關(guān)鍵字:J2EE;java;MVC;在線;考試系統(tǒng)
Abstract Paperlessexamisanimportantsymbolofmoderneducationforthiskindofexammaketheresultmorereasonable,morejust,andreleasehumanresource.Theonlineexamsystemofuniversity,usuallyusestheC/SMISarchitecture,orbasedwebuseB/Sarchitecture.IntheexamsystemofC/Sarchitecture,wherethepapersarestoredintheremoteServerandtheClientmustsetuptheexamapplicationandconfigurethedatabase,wemustsetupandconfiguretheClienteverytimewhendoexam.However,theexamsystemusingtheB/SarchitecturecanimplementthinClientbycombiningtheManagementInformationSystem.Assystemmaintenanceisonlynecessaryattheseverend,ourdevelopedexamsystemisbasedonB/Sarchitecture.WEBapplicationsoftwareiseitherofC/SorB/Smodes.Themaindisadvantageofthepreviousmodeisthetroubleofmaintenanceandupdate,andthusthechargeishigher;theB/SarchitectureiscomposedofBrowserandServer.Inthisarchitecture,theuserinterfaceisjustimplementedonWWWBrowser,alittlepartofthetransactionsisimplementedinBrowser,andthemainpartoftransactionsisimplementedinServer.SotheloadofClientisreduced,andthusreducethecostofmaintenanceandupdate,soasthewholecost. ThisgraduateprojectisabouttheexamsystembasedonjavaandB/Sarchitecture.Ithasimplementedthebasicfunctionneededbythestudent,teacherandadministrator.InthisB/Sarchitectureproject,studentsloginthesystemthroughweb,andcommittheanswersinreal-time.Thesystemcanjudgethepaperandsavetheresult,statistic,managethepoints;helptheteachertofindtheprobleminteaching.Itallowsanystudentwhichisauthorizedtosubscribetoexamandgaintheresultatanytimeoranywhere,andreducetheworkloadoftheteacherforgivingquestion,invigilationandjudgingpaper.keywords:J2EE;java;MVC;web;examsystem
目錄第1章緒論 91.1項(xiàng)目背景 91.2計(jì)算機(jī)考試系統(tǒng)發(fā)展及現(xiàn)狀 91.3國(guó)內(nèi)外發(fā)展現(xiàn)狀 91.4研究開發(fā)的目標(biāo)和基本內(nèi)容 101.4.1系統(tǒng)開發(fā)的主要任務(wù)和目標(biāo) 101.4.2系統(tǒng)開發(fā)的基本內(nèi)容 111.5技術(shù)研究背景 11第2章系統(tǒng)技術(shù)介紹及應(yīng)用 132.1JSP技術(shù)概述及工作原理 132.1.1JSP技術(shù)概要 132.1.2JSP的工作原理 142.1.3JSP與ASP的比較 142.2JDBC介紹 162.3MVC模式介紹 182.4Struts技術(shù)概述及工作原理 192.4.1Struts技術(shù)概述 192.4.2Struts的工作原理 202.5Hibernate技術(shù)概述及工作原理 212.5.1Hibernate技術(shù)概述 212.5.2Hibernate工作原理 222.6Tomcat應(yīng)用服務(wù)器介紹 232.7MySQL數(shù)據(jù)庫(kù)介紹 252.7.1數(shù)據(jù)庫(kù)的歷史和發(fā)展 252.7.2MySQL介紹 252.7.3MySQL的主要特性 26第3章系統(tǒng)需求分析 283.1系統(tǒng)功能概述 283.2權(quán)限與控制 283.3系統(tǒng)業(yè)務(wù)流程分析 293.3.1業(yè)務(wù)術(shù)語(yǔ) 293.3.2業(yè)務(wù)流程 293.4系統(tǒng)模塊簡(jiǎn)介 333.4.1登錄模塊 333.4.2系統(tǒng)管理模塊 333.4.3科目管理模塊 343.4.4題庫(kù)管理模塊 353.4.5試卷管理模塊 353.4.6帳戶管理模塊 353.4.7考試管理模塊 363.4.8信息查詢模塊 363.5系統(tǒng)開發(fā)環(huán)境 36第4章系統(tǒng)設(shè)計(jì) 374.1系統(tǒng)整體架構(gòu)設(shè)計(jì) 374.2系統(tǒng)管理設(shè)計(jì) 374.3題庫(kù)管理設(shè)計(jì) 434.4科目管理設(shè)計(jì) 444.5試卷管理設(shè)計(jì) 454.6帳戶管理設(shè)計(jì) 454.7考試管理設(shè)計(jì) 464.8信息查詢?cè)O(shè)計(jì) 474.9數(shù)據(jù)庫(kù)設(shè)計(jì) 48第5章系統(tǒng)實(shí)現(xiàn) 515.1系統(tǒng)Model層實(shí)現(xiàn) 515.1.1類AdminBean: 515.1.2類SchoolBean: 515.1.3類CollegeBean: 525.1.4類ClassBean: 525.1.5類TeacherBean: 535.1.6類StudentBean: 535.1.7類ExamBean: 545.1.8類PaperBean: 555.1.9類SubjectBean: 565.1.10類TiankongBean: 565.1.11類XuanzeBean: 575.2系統(tǒng)數(shù)據(jù)訪問(wèn)對(duì)象DAO層實(shí)現(xiàn) 585.2.1類AdminBeanDAO: 585.2.2類SchoolBeanDAO: 585.2.3類CollegeBeanDAO: 595.2.4類ClassBeanDAO: 595.2.5類TeacherBeanDAO: 595.2.6類StudentBeanDAO: 605.2.7類ExamBeanDAO: 605.2.8類PaperBeanDAO: 605.2.9類SubjectBeanDAO: 605.2.10類TiankongBeanDAO: 615.2.11類XuanzeBeanDAO: 615.3系統(tǒng)中的ACTION類 615.3.1類AccountAction: 615.3.2類AccountManageAction: 625.3.3類SchoolAction: 625.3.4類CollegeAction: 635.3.5類ClassAction: 645.3.6類TeacherAction: 645.3.7類StudentAction: 655.3.8類ExamAction: 655.3.9類PaperAction: 665.3.10類SubjectAction: 675.3.11類QuestionAction: 685.4系統(tǒng)中的視圖層 69第6章總結(jié) 77
第1章緒論1.1項(xiàng)目背景 無(wú)紙化考試系統(tǒng)是現(xiàn)代教育的重要標(biāo)志,這樣的考試讓考試的結(jié)果更加的合理,更加的公正、公平。也讓不必要的人力從中解脫出來(lái),去完成其它的一些事情。學(xué)生通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)登入系統(tǒng),實(shí)時(shí)提交解答。系統(tǒng)能保存結(jié)果,供教師披閱,并能自動(dòng)根據(jù)條件對(duì)客觀題進(jìn)行判分,還能對(duì)分?jǐn)?shù)進(jìn)行統(tǒng)計(jì)、管理,協(xié)助教師找出教學(xué)中存在的問(wèn)題,滿足任何授權(quán)的考生隨時(shí)隨地考試并迅速獲得成績(jī)的需求,同時(shí)也大大減輕了教師出題、監(jiān)考和判卷等繁重的工作量。 鑒于現(xiàn)在大多數(shù)學(xué)校的計(jì)算機(jī)考試系統(tǒng)基本上都是C/S結(jié)構(gòu),對(duì)時(shí)間、地點(diǎn)以及考試規(guī)模都有很大的限制,而現(xiàn)在的大學(xué)里基本上的學(xué)生都人手一臺(tái)電腦。如果將考試系統(tǒng)做成B/S結(jié)構(gòu)的話就可以將沒(méi)有這些方面的限制,可以進(jìn)行大規(guī)模同時(shí)的考試,而且計(jì)算機(jī)可以方便的進(jìn)行考試,不需要進(jìn)行任何的客戶端安裝,只需要有一個(gè)瀏覽器。1.2計(jì)算機(jī)考試系統(tǒng)發(fā)展及現(xiàn)狀 20世紀(jì)50年代,電子計(jì)算機(jī)和光電閱讀機(jī)在大規(guī)??荚囍械膹V泛運(yùn)用促進(jìn)了標(biāo)準(zhǔn)化考試的推廣和普及。然而應(yīng)當(dāng)指出,這時(shí)的考試方法仍是傳統(tǒng)的紙筆考試形式。到了2O世紀(jì)末,隨著測(cè)試?yán)碚摰耐晟?、?jì)算機(jī)的普及、多媒體技術(shù)的運(yùn)用和經(jīng)濟(jì)的增長(zhǎng),測(cè)試界已清楚地看到單一的紙筆考試弊大于利。那么紙筆考試所暴露出來(lái)的問(wèn)題該如何解決?標(biāo)準(zhǔn)化考試還要不要推行?于是專家們開始在測(cè)試的方法和手段上下工夫,國(guó)外的TOEFL如此,國(guó)內(nèi)的CET亦然。這一變化競(jìng)來(lái)得如此之快,可以說(shuō)是在向一個(gè)時(shí)代告別,即:計(jì)算機(jī)化考試時(shí)代的到來(lái)[1]。1.3國(guó)內(nèi)外發(fā)展現(xiàn)狀現(xiàn)在國(guó)內(nèi)外都有許多的計(jì)算機(jī)考試系統(tǒng),而CAT(computerizedAdaptiveTesting,計(jì)算機(jī)自適應(yīng)考試系統(tǒng))是近年來(lái)測(cè)驗(yàn)研究中引人注目并取得了重大發(fā)展的領(lǐng)域。計(jì)算機(jī)化白適應(yīng)測(cè)驗(yàn)(簡(jiǎn)稱CAT)是在項(xiàng)目反應(yīng)理論的基礎(chǔ)上,建立題庫(kù),然后計(jì)算機(jī)根據(jù)被試的能力水平自動(dòng)地選擇測(cè)試題目,并對(duì)被試的所達(dá)到的能力的水平做出判斷的一種全新的測(cè)驗(yàn)形式[2]。所謂自適應(yīng)測(cè)驗(yàn)它的基本思想是“因人施測(cè)”,使不同水平被試者都能接受一組跟自己特質(zhì)水平相適應(yīng)的試題。所謂“自適應(yīng)”就是測(cè)驗(yàn)本身要自動(dòng)地適應(yīng)被試的具體情況,在被試作答過(guò)程中及時(shí)根據(jù)作答資料估出被試的可能水平,并針對(duì)這一水平迅速?zèng)Q策,從大型題庫(kù)中調(diào)取難度恰當(dāng)、性能優(yōu)良的題目繼續(xù)施測(cè)。直到施測(cè)的題目足夠多,測(cè)驗(yàn)信息量累計(jì)和達(dá)到指定值為止。如今在美國(guó),CAT已經(jīng)在教育測(cè)驗(yàn)、職業(yè)測(cè)量、人事測(cè)評(píng)等領(lǐng)域中大顯身手,如美國(guó)研究生入學(xué)考試(GraduateRecordExamination)、工商管理類研究生入學(xué)考試(GraduateforManagementandAdministrationTest)以及全美護(hù)士國(guó)家委員會(huì)資格考試(NurseNationalCommitteeLicenseTest)等都已采取了CAT的方式。在信息產(chǎn)業(yè)中,美國(guó)Novell公司于1991年成功的應(yīng)用了CAT進(jìn)行認(rèn)證考試,使參加Novell自適應(yīng)考試的人數(shù)超過(guò)1,000,000人次。在我國(guó),已經(jīng)出現(xiàn)一些應(yīng)用型的研究,自行編制了一些CAT測(cè)驗(yàn),并取得了實(shí)際的運(yùn)用效果,上海電大在上海市計(jì)算機(jī)應(yīng)用能力的考試項(xiàng)目“VB6.0程序設(shè)計(jì)”中已采用了CAT的考試設(shè)計(jì)方法。江西師大小學(xué)數(shù)學(xué)CAT研究、華南理工大的“數(shù)據(jù)結(jié)構(gòu)”自適應(yīng)測(cè)試系統(tǒng)的研究也取得了一定的成果。自上世紀(jì)九十年代初期開始,全國(guó)大學(xué)英語(yǔ)四、六級(jí)考試委員會(huì)一直致力于項(xiàng)目反應(yīng)理論和“計(jì)算機(jī)自適應(yīng)測(cè)驗(yàn)”的研究和開發(fā)。1.4研究開發(fā)的目標(biāo)和基本內(nèi)容1.4.1系統(tǒng)開發(fā)的主要任務(wù)和目標(biāo) 1、實(shí)現(xiàn)保存試題的數(shù)據(jù)庫(kù)系統(tǒng)2、實(shí)現(xiàn)在線考試系統(tǒng)的服務(wù)器端及客戶端3、了解試卷批改規(guī)則,實(shí)現(xiàn)客觀題的自動(dòng)判分4、實(shí)現(xiàn)系統(tǒng)成績(jī)查詢功能1.4.2系統(tǒng)開發(fā)的基本內(nèi)容1、提供數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限給不同人員進(jìn)行試題庫(kù)添加、管理,試卷批改,答案輸入;2、從試題庫(kù)中生成難度的合理試卷;3、通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)與考生的互動(dòng),隨時(shí)增減試題難度,以便最大限度地考察學(xué)生水平;4、結(jié)合試題難度系數(shù)協(xié)助教師判分。1.5技術(shù)研究背景 J2EE是適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺(tái)企業(yè)版Java2PlatformEnterpriseEdition,J2EE),該技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫一次、隨處運(yùn)行”的特性,方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBA技術(shù)以及能夠在Intemet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持[3]。J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層面分布在不同的機(jī)器上,解決了兩層模式(client/server)的弊端.在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過(guò)多的角色,可能第一次部署時(shí)比較容易,但難于升級(jí),可伸展性也不理想,經(jīng)常是基于某種專有的協(xié)議(通常是某種數(shù)據(jù)庫(kù)協(xié)議),重用業(yè)務(wù)邏輯和界面邏輯非常困難.現(xiàn)在J2EE的多層企業(yè)級(jí)應(yīng)用模型將兩層化模型中的不同層面切分成許多層,每個(gè)多層化應(yīng)用能夠?yàn)椴煌姆?wù)提供一個(gè)獨(dú)立的層面[4]。本系統(tǒng)采用J2EE進(jìn)行開發(fā),J2EE特別適用于WEB開發(fā),現(xiàn)在最流行的WEB開發(fā)模式是SSH(Struts+Spring+Hibernate)模式,Struts作為視圖層,Spring作為控制層,Hibernate為模型層。這樣寫的程序有很清晰的分層,耦合度低,有利于開發(fā)和維護(hù)。 這些框架可以為開發(fā)者提供一個(gè)簡(jiǎn)單易用的模型,采用一個(gè)經(jīng)過(guò)良好設(shè)計(jì)的開源框架有很多好處:開發(fā)者只需要寫一些必須的代碼。他們不需要直接接觸底層的API。經(jīng)過(guò)良好設(shè)計(jì)的框架可以為程序提供清晰的結(jié)構(gòu)并且提高程序的內(nèi)聚性。清晰的結(jié)構(gòu)使得其他人很容易加入項(xiàng)目。一個(gè)容易適用的框架可以通過(guò)一些例子和文檔為用戶提供最佳實(shí)踐。使用成功的框架的代碼比自己的代碼容易測(cè)試??蚣軕?yīng)該在需要的時(shí)候才使用,不要為了使用框架而使用框架。所為我的這個(gè)系統(tǒng)使用的是Struts+Hibernate,這兩個(gè)都是比較成熟的開源框架,通過(guò)Hibernate做OR映射和對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。Struts做視圖層,Struts的ActionServlet做控制層。
第2章系統(tǒng)技術(shù)介紹及應(yīng)用2.1JSP技術(shù)概述及工作原理2.1.1JSP技術(shù)概要在開始介紹JSP之前,我先要介紹兩個(gè)名詞:組件和容器還有servlet。 組件: 組件是你的應(yīng)用程序的的組體構(gòu)件。它包括servlets、JavaBeans、JSP、HTML頁(yè)面、EJBs以及其它類似的東西。 容器: 容器是那些執(zhí)行組件的應(yīng)用程序。如果你的應(yīng)用程序由JSP和servlet組件構(gòu)成的,那么你就需要一個(gè)具有JSP支持的servlet容器(正式名稱是servlet引擎);如果你的應(yīng)用程序是有EJBs構(gòu)成的,那就需要一個(gè)EJB容器。 servlet: servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以動(dòng)態(tài)的生成WEB頁(yè)面。servlet由WEB服務(wù)器進(jìn)行加載,該WEB服務(wù)器必須包含支持servlet的java虛擬機(jī)。 JSP: JSP(javaserverpages)是由SUN公司在servlet基礎(chǔ)上開發(fā)出來(lái)的一種動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù),其可使您可以將網(wǎng)頁(yè)中的動(dòng)態(tài)部分和靜態(tài)的HTML相分離。您可以使用平常得心應(yīng)手的工具并按照平常的方式來(lái)書寫HTML語(yǔ)句。然后,將動(dòng)態(tài)部分用特殊的標(biāo)記嵌入即可,這些標(biāo)記常常以“<%”開始并以“%>”結(jié)束。通常,您要將文件以“.jsp”為擴(kuò)展名,并將它放置到任何您可以放置普通WEB頁(yè)面的路徑下。盡管JSP文件看起來(lái)更象是HTML文件而不是Servlet文件,但,事實(shí)上,它恰恰將轉(zhuǎn)換為Servlet文件,其中的靜態(tài)HTML僅僅用來(lái)輸出Servlet服務(wù)方法返回的信息。如果JSPpages已經(jīng)被轉(zhuǎn)換為Servlet且Servlet被編譯進(jìn)而被裝載(在第一次被Request時(shí)),當(dāng)您再次Request此JSP頁(yè)面時(shí),將察覺(jué)不到一瞬的延遲。 JSP有4個(gè)關(guān)鍵成分:指令(directive)、動(dòng)作(action)、scriptlet和標(biāo)記庫(kù)(taglibrary)。指令是指那些發(fā)送給JSP容器的消息,它使程序能夠指定頁(yè)面的設(shè)置、包含其它資源中的內(nèi)容和指定JSP中使用的定制標(biāo)記庫(kù)。動(dòng)作將功能封裝在預(yù)定義的標(biāo)記中,然后程序員可以將它們(預(yù)定義標(biāo)記)嵌入JSP中。通常根據(jù)發(fā)送給服務(wù)器的特定客戶請(qǐng)求中的信息來(lái)執(zhí)行動(dòng)作。它們還可以創(chuàng)建在JSPscriptlet中使用Java對(duì)象。Scriptlet,即腳本元素(scriptingelement),使程序員能夠插入與JSP中的組件(和其它Web應(yīng)用程序組件)進(jìn)行交互的Java代碼,以處理請(qǐng)求。標(biāo)記庫(kù)是標(biāo)記擴(kuò)展機(jī)制的一部分,它使程序員能夠創(chuàng)建定制的標(biāo)記,這種標(biāo)記使得程序員能夠操作JSP內(nèi)容。[5]畢業(yè)設(shè)計(jì)(論文)網(wǎng)QQ:306826066優(yōu)秀畢業(yè)設(shè)計(jì)網(wǎng)計(jì)算機(jī)畢業(yè)設(shè)計(jì)網(wǎng)畢業(yè)設(shè)計(jì)資料網(wǎng)畢業(yè)設(shè)計(jì)論文網(wǎng)2.1.2JSP的工作原理 當(dāng)用戶第一次請(qǐng)求或者刷新一個(gè)JSP頁(yè)面時(shí),JSP容器首先是要找到這個(gè)JSP頁(yè)面的源代碼文件,然后開始處理,把這個(gè)JSP源文件翻譯成java代碼文件。當(dāng)用戶請(qǐng)求這個(gè)文件時(shí),需要JSP容器來(lái)處理這個(gè)文件。[6]2.1.3JSP與ASP的比較 一般說(shuō)來(lái),Sun公司的JavaServerPages(JSP)和Microsoft的ActiveServerPages(ASP)在技術(shù)方面有許多相似之處。兩者都為動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù),并且雙方都能夠替代CGI技術(shù),使網(wǎng)站的開發(fā)時(shí)程能夠大大縮短,在性能上也有較高的表現(xiàn),更重要的一點(diǎn)是,兩者都能夠?yàn)槌绦騿T提供組件設(shè)計(jì)的功能,通過(guò)組件設(shè)計(jì),將網(wǎng)頁(yè)中邏輯處理部分交由組件負(fù)責(zé)處理(ASP使用COM組件、JSP則有JavaBean組件),而和網(wǎng)頁(yè)上的排版、美工分離。盡管JavaServerPages技術(shù)和ActiveServerPages(ASP)在許多方面都很相似,但仍然存在很多不同之處,其中本質(zhì)上的區(qū)別在于:兩者是來(lái)源于不同的技術(shù)規(guī)范組織。以下就來(lái)比較兩大技術(shù)有哪些不同點(diǎn),而又為各自帶來(lái)哪些優(yōu)勢(shì)。 平臺(tái)和服務(wù)器的彈性 ASP(ActiveServerPages)技術(shù)主要在微軟(Microsoft)公司的Windows平臺(tái)上運(yùn)行,其中包括Windows2000、WindowsXP和Windows2003,并且搭配其WEB服務(wù)器IIS(InternetInformationServices)。但是,在其他的平臺(tái)運(yùn)行時(shí),不是性能低落,就是根本不支持,因此,當(dāng)在開發(fā)網(wǎng)站系統(tǒng)時(shí),選擇NT+IIS+ASP的體系結(jié)構(gòu)時(shí),未來(lái)當(dāng)系統(tǒng)無(wú)法負(fù)荷時(shí),也只能繼續(xù)選擇Windows平臺(tái)的服務(wù)器,無(wú)法改寫在性能表現(xiàn)相當(dāng)優(yōu)異的UNIX平臺(tái)上。 JSP(JavaServerPages)技術(shù)主要運(yùn)行在操作系統(tǒng)上的一個(gè)JavaVirtualMachine(JVM)虛擬機(jī)器上,因此,它能夠跨越所有的平臺(tái),例如:NT、Windows2000、Solaris、Linux、OS/390、AIX、HP-UX,等等,除了能在各式各樣的操作系統(tǒng)上執(zhí)行,并且能搭配現(xiàn)有的WEB服務(wù)器:Apache、IIS、NetscapeEnterpriseServer,等等,將靜態(tài)的HTML網(wǎng)頁(yè)交由執(zhí)行速度較快的WebServer處理,而動(dòng)態(tài)產(chǎn)生網(wǎng)頁(yè)的部分,就交由JSPContainer來(lái)執(zhí)行。由上述可知,JSP(JavaServerPages)技術(shù)在跨平臺(tái)的表現(xiàn)比ASP來(lái)得更有彈性。 WEB網(wǎng)頁(yè)程序員未來(lái)在開發(fā)電子商務(wù)平臺(tái)時(shí),就不需要再考慮客戶廠商的操作系統(tǒng)平臺(tái),可更專心于系統(tǒng)功能的開發(fā)。相應(yīng)地,廠商在使用JavaServerPages技術(shù)開發(fā)的系統(tǒng)平臺(tái)時(shí),不再需要擔(dān)心未來(lái)在擴(kuò)充軟、硬件時(shí),是否產(chǎn)生不兼容的問(wèn)題。光這一點(diǎn),就能為企業(yè)省下一大筆的費(fèi)用,這是JSP的主要優(yōu)點(diǎn)。 開放的開發(fā)環(huán)境 自從1995年,Sun公司已經(jīng)開放技術(shù)與國(guó)際Java組織合作開發(fā)和修改Java技術(shù)與規(guī)范。JSP應(yīng)用程序接口(API)毫無(wú)疑問(wèn)已經(jīng)取得成功,并隨著Java組織不斷擴(kuò)大其應(yīng)用的范圍,目前全力發(fā)展Java技術(shù)的廠商不勝枚舉,例如:最近IBM公司強(qiáng)力推廣的WebSphere家族,正是完全支持J2EE標(biāo)準(zhǔn)而開發(fā)。數(shù)據(jù)庫(kù)廠商Oracle也發(fā)展自己的ApplicationServer來(lái)和自己公司本身數(shù)據(jù)庫(kù)產(chǎn)品Oracle9i做一緊密的結(jié)合。那也更不用提Amazon系統(tǒng)的供貨商BEA公司,它的產(chǎn)品WebLogic也是完全支持JavaServerPages技術(shù)和J2EE規(guī)范的。 相反,ASP技術(shù)僅依靠微軟本身的推動(dòng),其發(fā)展建立在獨(dú)占、封閉的基礎(chǔ)之上,并且微軟本身的技術(shù)又只允許在微軟相關(guān)平臺(tái)的服務(wù)器上執(zhí)行,因此,在標(biāo)準(zhǔn)方面顯得有點(diǎn)力不從心。 執(zhí)行性能表現(xiàn) ASP和JSP在執(zhí)行性能的表現(xiàn)上,有一段顯著的差距,JSP除了在一開始加載的時(shí)間會(huì)比較久外,之后的表現(xiàn)就遠(yuǎn)遠(yuǎn)比ASP的表現(xiàn)來(lái)得好。原因在于:JSP在一開始接受到請(qǐng)求時(shí),會(huì)產(chǎn)生一份Servlet實(shí)體(instance),它會(huì)先被暫存在內(nèi)存中,我們稱之為持續(xù)(Persistence),當(dāng)再有相同請(qǐng)求時(shí),這實(shí)體會(huì)產(chǎn)生一個(gè)線程(thread)來(lái)服務(wù)它。如果過(guò)了一段時(shí)間都不再用到此實(shí)體時(shí),Container會(huì)自動(dòng)將其釋放,至于時(shí)間的長(zhǎng)短,通常都是可以在Container上自行設(shè)定的。 而ASP在每次接收到請(qǐng)求時(shí),都必須要重新編譯,因此,JSP的執(zhí)行比每次都要編譯執(zhí)行的ASP要快,尤其是程序中存在循環(huán)操作時(shí),JSP的速度要快上1到2倍。不過(guò),ASP在這部分的缺陷,將隨ASP+的出現(xiàn)有所改觀,在新版的ASP+技術(shù)中,性能表現(xiàn)上有很大的突破。[7]2.2JDBC介紹 JDBC(JavaDataBaseConnectivity),是用于執(zhí)行SQL語(yǔ)句的Java應(yīng)用程序接口,是一套API集合,在這個(gè)集合中設(shè)置了許多允許Java程序連接數(shù)據(jù)庫(kù)的框架。JDBC由一組用Java語(yǔ)言寫成的類和接口組成,是一種連接不同數(shù)據(jù)庫(kù)的規(guī)范,其宗旨是讓各數(shù)據(jù)庫(kù)開發(fā)商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問(wèn)類和接口。JDBC與Java結(jié)合,使用戶可以很容易的把SQL語(yǔ)句傳送到任何關(guān)系型數(shù)據(jù)庫(kù)中,程序員用它編寫的數(shù)據(jù)庫(kù)應(yīng)用程序,可以在各種數(shù)據(jù)庫(kù)系統(tǒng)上運(yùn)行。[8]這是真正的可移植性的軟件所必須具備的一個(gè)特點(diǎn)。JDBC已經(jīng)被業(yè)界普遍采用,而且是在Java在服務(wù)器端成功的主要貢獻(xiàn)因素。JDBC驅(qū)動(dòng)程序是依靠獨(dú)立的軟件公司開發(fā)的。JDBC驅(qū)動(dòng)程序適合特定的數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)訪問(wèn)模型,主要的那些數(shù)據(jù)庫(kù)系統(tǒng)都有對(duì)應(yīng)的的驅(qū)動(dòng)程序,例如Microsoft、oracle、Informix、Sybase、Postgress、MySQL等等。JDBC與java應(yīng)用程序和數(shù)據(jù)庫(kù)的關(guān)系如圖2.2所示. 圖2.2JDBC與java應(yīng)用程序和數(shù)據(jù)庫(kù)的關(guān)系JDBC中的主要對(duì)象包括: class:-DriverManager-驅(qū)動(dòng)管理,獲得連接 interface: -Connection–連接對(duì)象 -Statement–執(zhí)行SQL語(yǔ)句 -PrepareStatement–執(zhí)行SQL語(yǔ)句,預(yù)編譯,可帶參數(shù) -CallableStatement–執(zhí)行存儲(chǔ)過(guò)程 ResultSet–查詢結(jié)果記錄集 ResultSetMetaData–記錄集的元信息 2.3MVC模式介紹 MVC是一種體系結(jié)構(gòu)模式,代表Model—View—Controller,是應(yīng)用于交互式系統(tǒng)的一種體系結(jié)構(gòu)模式。MVC產(chǎn)生于20世紀(jì)70年代Palo—Alto實(shí)驗(yàn)室的Smalltalk編程環(huán)境。MVC模式指導(dǎo)模塊的職責(zé)分配和模塊之間的通信協(xié)議。職責(zé)分配是面向?qū)ο蠓治龊驮O(shè)計(jì)中最重要的工作,協(xié)議設(shè)計(jì)則是相當(dāng)困難的工作。MVC為這兩項(xiàng)工作提供了指導(dǎo),所以意義重大。 Model是應(yīng)用程序?qū)ο?,也就是包含?yīng)用程序數(shù)據(jù)和業(yè)務(wù)邏輯的對(duì)象。Model對(duì)外表現(xiàn)為一個(gè)對(duì)象,實(shí)際上可以也應(yīng)該是一組子對(duì)象的集合。 傳統(tǒng)意義上的View是屏幕對(duì)象,負(fù)責(zé)向用戶顯示交互界面。這個(gè)意義可以進(jìn)行擴(kuò)展,將View視為向外界展現(xiàn)應(yīng)用程序狀態(tài)的接口和界面。 所有的用戶輸入都由Controller負(fù)責(zé)處理。在交互式系統(tǒng)中,Controller是導(dǎo)致Model發(fā)生變化的唯一原因,是導(dǎo)致View發(fā)生變化的兩個(gè)原因之一,因此是控制中心。 Controller將用戶事件翻譯成為請(qǐng)求,而不是命令。如果機(jī)械地遵循MVC的規(guī)則,Controller的邏輯將十分復(fù)雜。Controller通常需要查詢View和Model才知道如何處理用戶輸入。不要把所有邏輯寫在Controller里。View和Model都是有智能的對(duì)象。可以通知它們,由它們自己決定應(yīng)對(duì)的方式。一個(gè)應(yīng)用程序或者組件只能有一個(gè)Model,但是這個(gè)Model可以對(duì)應(yīng)多個(gè)View。View向Model注冊(cè),要求在Model的數(shù)據(jù)發(fā)生變化時(shí)獲得通知消息。View得到通知消息之后,獲取Model的相應(yīng)數(shù)據(jù),更新自己的顯示。View不向Model發(fā)送消息。一個(gè)View對(duì)應(yīng)一個(gè)Controller。View負(fù)責(zé)創(chuàng)建和初始化Controller,這也是View和Controller關(guān)系密切的原因之一。Controller接收用戶輸入,如果有與應(yīng)用程序數(shù)據(jù)無(wú)關(guān),而只涉及顯示變化的用戶輸入,Controller直接通知View。 Controller和View關(guān)系密切的另一個(gè)原因是現(xiàn)代應(yīng)用程序界面復(fù)雜,靈活多變。因此Controller需要大量了解View的情況,大量查詢View的信息,距離太遠(yuǎn)不利于效率和靈活性,協(xié)議也很難設(shè)計(jì),所以經(jīng)常捆綁在一起。例如,目前基于控件的圖形界面,很多控件實(shí)際上是一個(gè)封裝好的MVC實(shí)體,通過(guò)屬性、事件和方法與外界協(xié)同工作,強(qiáng)行拆分反而適得其反。 因?yàn)橐粋€(gè)Model對(duì)應(yīng)多個(gè)View,一個(gè)View對(duì)應(yīng)一個(gè)Controller,所以一個(gè)Model對(duì)應(yīng)多個(gè)Controllers。Controller接收外部輸入,是導(dǎo)致Model發(fā)生變化的唯一原因。同時(shí),Model的變化可能導(dǎo)致Controller行為的變化。[9] MVC模式如圖2.3所示。圖2.3MVC模式圖2.4Struts技術(shù)概述及工作原理2.4.1Struts技術(shù)概述Struts最初是由CraigR.McClanahan創(chuàng)建的,然后在2000年用于ApacheSoftwareFoundation(ASF)的Jakarta項(xiàng)目。2001年6月,Struts1.0發(fā)布。那以后,很多人在源代碼和文檔方面對(duì)該項(xiàng)目做出過(guò)貢獻(xiàn),Struts得到迅速的發(fā)展。在CraigR.McClanahan將Struts用于ApacheJakarta項(xiàng)目的時(shí)候,Struts就成為了開放源代碼軟件,任何人都可以通過(guò)/struts下載到源代碼。Struts是構(gòu)建基于java的Web應(yīng)用程序的首選框架。通過(guò)采用模型-視圖-控制器(MVC)設(shè)計(jì)模式,使用Struts可以開發(fā)使用JavaServlets和JavaServerPages的高性能、面向事務(wù)的Web應(yīng)用程序,并可以解決諸多相關(guān)問(wèn)題。首先,需要認(rèn)識(shí)到Struts帶來(lái)的不僅僅是編程的便利性,Struts還從根本上為Web編程人員構(gòu)思和構(gòu)建Web應(yīng)用程序提供了一種新的方式。在MVC體系結(jié)構(gòu)中,中心Servlet(被稱為控制器)接收所有應(yīng)用程序的請(qǐng)求。然后控制器將對(duì)請(qǐng)求進(jìn)行處理,同時(shí)準(zhǔn)備視圖(通常是JSP)所需要的任何數(shù)據(jù),并將此數(shù)據(jù)發(fā)給JSP。接著JSP使用由控制器準(zhǔn)備的數(shù)據(jù)生成瀏覽器響應(yīng)。本體系結(jié)構(gòu)中,事務(wù)邏輯和顯示邏輯彼此相互獨(dú)立。[10]在struts框架中,模型分為兩個(gè)部分:·系統(tǒng)的內(nèi)部狀態(tài)·可以改變狀態(tài)的操作(事務(wù)邏輯)內(nèi)部狀態(tài)通常由一組ActinFormJavaBean表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù)雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫(kù))。大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調(diào)用。比如購(gòu)物車bean,它擁有用戶購(gòu)買商品的信息,可能還有checkOut()方法用來(lái)檢查用戶的信用卡,并向倉(cāng)庫(kù)發(fā)定貨信息。小型程序中,操作可能會(huì)被內(nèi)嵌在Action類,它是struts框架中控制器角色的一部分。當(dāng)邏輯簡(jiǎn)單時(shí)這個(gè)方法很適合。建議用戶將事務(wù)邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。[11]2.4.2Struts的工作原理 Struts應(yīng)用程序的執(zhí)行流如圖2.4圖2.41.瀏覽器向Struts應(yīng)用程序發(fā)出請(qǐng)求,ActionServlet(控制器)對(duì)該請(qǐng)求進(jìn)行處理。2.ActionServlet(控制器)用HTML表單填充ActionForm(視圖)對(duì)象,并調(diào)用其validate()方法。3.ActionServlet(控制器)執(zhí)行Action對(duì)象(控制器)。4.Action(控制器)與模型組件一起為視圖準(zhǔn)備數(shù)據(jù)。5.Action(控制器)將控制權(quán)交給JSP(視圖)。6.JSP(視圖)使用模型數(shù)據(jù)生成對(duì)瀏覽器的響應(yīng)。2.5Hibernate技術(shù)概述及工作原理2.5.1Hibernate技術(shù)概述 現(xiàn)今的應(yīng)用系統(tǒng)設(shè)計(jì)中,MVC作為主流系統(tǒng)架構(gòu)模式之一,貫穿了整個(gè)設(shè)計(jì)流程。MVC中的M,也就是所謂的Model,則可以說(shuō)是與業(yè)務(wù)邏輯和數(shù)據(jù)邏輯關(guān)聯(lián)最為緊密的部分。而持久層作為Model層中的主要組成,其設(shè)計(jì)的優(yōu)劣勢(shì)必對(duì)系統(tǒng)的整體表現(xiàn)產(chǎn)生至關(guān)重要的影響。 說(shuō)到持久層設(shè)計(jì)就必須說(shuō)到持久層框架,現(xiàn)在有很多優(yōu)秀的實(shí)現(xiàn)版本,其中ORM持久層框架,則是未來(lái)的主流。 所謂ORM—Object/RelationalMapper,從字面上理解是:對(duì)象—關(guān)系型數(shù)據(jù)映射組件。 在java發(fā)展的初級(jí)階段,直接調(diào)用JDBC幾乎是數(shù)據(jù)庫(kù)訪問(wèn)的唯一手段。隨著近年來(lái)設(shè)計(jì)思想和Java技術(shù)本身的演化,出現(xiàn)了許多JDBC的封裝技術(shù),這些技術(shù)為我們的數(shù)據(jù)庫(kù)訪問(wèn)層實(shí)現(xiàn)提供了更多的選擇,目前主流的JDBC封裝框架包括:Hibernate、ApacheOJB、iBatis,JDO以及J2EE框架中的CMP等。這些框架以優(yōu)良的設(shè)計(jì)大大提高了數(shù)據(jù)庫(kù)訪問(wèn)層的開發(fā)效率,并且通過(guò)對(duì)數(shù)據(jù)訪問(wèn)中各種資源和數(shù)據(jù)的緩存調(diào)度,實(shí)現(xiàn)了更佳的性能。 Hibernate提供了強(qiáng)大、高性能的對(duì)象到關(guān)系型數(shù)據(jù)庫(kù)的持久化服務(wù)。利用Hibernate,開發(fā)人員可以按照J(rèn)ava的基礎(chǔ)語(yǔ)義(包括關(guān)聯(lián)、繼承、多態(tài)、組合以及Java的集合架構(gòu))進(jìn)行持久化開發(fā)。Hibernate提供的HQL(HibernateQueryLanguage)是面向?qū)ο蟮牟樵冋Z(yǔ)言,它在對(duì)象型數(shù)據(jù)和關(guān)系型數(shù)據(jù)庫(kù)之間構(gòu)建了一條快速、高效、便捷的溝通渠道。 2001年末,Hibernate第一個(gè)正式版本對(duì)外發(fā)布,之后兩年作者GavinKing以靈活快速的迭代發(fā)布,使得Hibernate快速發(fā)展起來(lái)。 2003年6月8日,Hibernate2發(fā)布,提供了對(duì)大多數(shù)主流數(shù)據(jù)庫(kù)的良好支持,提供了完善的數(shù)據(jù)關(guān)聯(lián)、事務(wù)處理、緩存管理、延遲加載機(jī)制實(shí)現(xiàn),同時(shí)堪稱典范的開發(fā)文檔(HibernateReference)也為廣大用戶提供了一份清晰易懂的參考手冊(cè)。2003年末,Hibernate獲得了Jolt2004大獎(jiǎng)并且Hibernate被業(yè)內(nèi)知名的開源組織JBoss收納,成為從屬于JBoss組織的子項(xiàng)目之一。這兩個(gè)時(shí)間確立了Hibernate在JavaORM架構(gòu)中的主導(dǎo)地位。[12]2.5.2Hibernate工作原理 Hibernate的基礎(chǔ)代碼包括POJO和Hibernate映射文件。 POJO在Hibernate語(yǔ)義中理解為數(shù)據(jù)庫(kù)表所對(duì)應(yīng)的DomainObject。這里的POJO是所謂的“PlainOrdinaryJavaObject”,指無(wú)格式普通Java對(duì)象,可以簡(jiǎn)單地理解為一個(gè)不包含邏輯代碼的值對(duì)象,這樣的類只包含字段的get和set方法。 Hibernate是一種“對(duì)象—關(guān)系型數(shù)據(jù)映射組件”,它使用映射文件將對(duì)象和關(guān)系型數(shù)據(jù)相關(guān)聯(lián)。在Hibernate中,映射文件通常以“.hbm.xml”作為后綴。 Hibernate配置文件主要用于配置數(shù)據(jù)庫(kù)連接和運(yùn)行時(shí)所需要的各種屬性。主要配置內(nèi)容為:SessionFactory中的數(shù)據(jù)庫(kù)URL配置、數(shù)據(jù)庫(kù)JDBC驅(qū)動(dòng)配置、數(shù)據(jù)庫(kù)用戶名配置、數(shù)據(jù)庫(kù)用戶密碼配置、數(shù)據(jù)庫(kù)適配器配置,映射文件配置等等。 由于Hibernate對(duì)JDBC進(jìn)行的很好的封裝,所以我們并不需要直接通過(guò)JDBC操作數(shù)據(jù)庫(kù)表,而是通過(guò)Hibernate間接使用。首先通過(guò)Configurationconfig=newConfiguration().configure();得到Configuration類,Configuration類負(fù)責(zé)管理Hibernate的配置信息。再通過(guò)SessionFactorysessionFactory=config.buildSessionFactory();得到sessionFactory,SessionFactory中保存了對(duì)應(yīng)當(dāng)前數(shù)據(jù)庫(kù)配置的所有映射關(guān)系,同時(shí)負(fù)責(zé)維護(hù)當(dāng)前二級(jí)數(shù)據(jù)緩存和StatementPool。Session是Hibernate持久化操作的基礎(chǔ)。這里的Session與傳統(tǒng)意義上的Web層HttpSession沒(méi)有什么關(guān)系。HibernateSession之與Hibernate,相當(dāng)于JDBCConnection之與JDBC。Session通過(guò)Sessionsession=sessionFactory.openSession();得到,Session作為貫穿Hibernate的持久化管理器核心,提供了眾多持久化方法,如save、update、delete,find等。通過(guò)這些方法我們就可以操作數(shù)據(jù)庫(kù)了。Session是一個(gè)輕量級(jí)對(duì)象。通常每一個(gè)Session實(shí)例和一個(gè)數(shù)據(jù)庫(kù)事務(wù)綁定,也就是說(shuō),每執(zhí)行一個(gè)數(shù)據(jù)庫(kù)事務(wù),都應(yīng)該先創(chuàng)建一個(gè)新的Session實(shí)例。如果事務(wù)執(zhí)行中出現(xiàn)異常,應(yīng)該撤銷事務(wù)。不論事務(wù)執(zhí)行成功與否,最后都應(yīng)該調(diào)用Session的close()方法,從而釋放Session實(shí)例占用的資源。[13]2.6Tomcat應(yīng)用服務(wù)器介紹 學(xué)習(xí)Servlet技術(shù),首先需要有一個(gè)Servlet運(yùn)行環(huán)境,也就是需要有一個(gè)Servlet容器,這里介紹Tomcat。Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,它是Apache軟件基金會(huì)(ApacheSoftwareFoundation)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn)。因?yàn)門omcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛(ài)好者的喜愛(ài)并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器 Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。[14] 圖2.6是Tomcat服務(wù)器接受客戶請(qǐng)求并做出響應(yīng)的過(guò)程。 圖2.6Tomcat服務(wù)器接受客戶請(qǐng)求并做出響應(yīng)的過(guò)程1客戶端(通常都是瀏覽器)訪問(wèn)Web服務(wù)器,發(fā)送HTPP請(qǐng)求。2Web服務(wù)器接收到請(qǐng)求后,傳遞給Servlet容器。3Servlet容器加載Servlet,產(chǎn)生Servlet實(shí)例后,向其傳遞表示請(qǐng)求和響應(yīng)的對(duì)象。4Servlet實(shí)例使用請(qǐng)求對(duì)象得到客戶端的請(qǐng)求信息,然后進(jìn)行相應(yīng)的處理。5Servlet實(shí)例將處理結(jié)果通過(guò)響應(yīng)對(duì)象發(fā)送回客戶端,容器負(fù)責(zé)確保響應(yīng)正確送出,同時(shí)將控制返回給Web服務(wù)器。[15]2.7MySQL數(shù)據(jù)庫(kù)介紹2.7.1數(shù)據(jù)庫(kù)的歷史和發(fā)展 在當(dāng)前信息時(shí)代,作為信息管理的主要工具——數(shù)據(jù)庫(kù)技術(shù)得到了廣泛的應(yīng)用。數(shù)據(jù)庫(kù)一詞起源于20世紀(jì)50年代,當(dāng)時(shí)美國(guó)的研究人員為了戰(zhàn)爭(zhēng)的需要,把各種情報(bào)集中在一起存儲(chǔ)在計(jì)算機(jī)中,稱為InformationBase或DataBase。半個(gè)世紀(jì)以來(lái),數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為計(jì)算機(jī)領(lǐng)域中最重要的技術(shù)之一,它是軟件學(xué)科中一個(gè)獨(dú)立的分支。數(shù)據(jù)庫(kù)技術(shù)的出現(xiàn)使得計(jì)算機(jī)應(yīng)用滲透到工業(yè)、農(nóng)業(yè)、商業(yè)、行政、科研、工程、國(guó)防、軍事、文化教育等各個(gè)部門,滲透到社會(huì)的每個(gè)角落,并且正改變著人們的工作和生活方式。管理信息系統(tǒng)、辦公自動(dòng)化系統(tǒng)、決策支持系統(tǒng)等都是使用的數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為了信息高速公路的核心組件技術(shù)[16]。當(dāng)前主要的數(shù)據(jù)庫(kù)產(chǎn)品有IBM的DB2當(dāng)前版本為9,Microsoft的SQLServer當(dāng)前版本為2005,Oracle數(shù)據(jù)庫(kù)當(dāng)前版本為11g,和開源社區(qū)的MySQL當(dāng)前版本為5.1。2.7.2MySQL介紹 MySQL: MySQL是最受歡迎的開源SQL數(shù)據(jù)庫(kù)管理系統(tǒng),它由MySQLAB開發(fā)、發(fā)布和支持。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來(lái)結(jié)合開源價(jià)值和方法論的第二代開源公司。MySQL是MySQLAB的注冊(cè)商標(biāo)。MySQL網(wǎng)站()提供了關(guān)于MySQL和MySQLAB的最新的消息。MySQL是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個(gè)大倉(cāng)庫(kù)中要好得多,這樣做將增加你的速度和靈活性?!癕ySQL”中的SQL代表“StructuredQueryLanguage”(結(jié)構(gòu)化查詢語(yǔ)言)。SQL是用于訪問(wèn)數(shù)據(jù)庫(kù)的最通用的標(biāo)準(zhǔn)語(yǔ)言,它是由ANSI/ISO定義的SQL標(biāo)準(zhǔn)。SQL標(biāo)準(zhǔn)發(fā)展自1986年以來(lái),已經(jīng)存在多個(gè)版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是該標(biāo)準(zhǔn)的當(dāng)前版本。MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。SQL(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用SQL語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。[17]MySQL主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫(kù)的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,MySQL就開發(fā)出來(lái)。2.7.3MySQL的主要特性·使用核心線程的完全多線程。這意味著它能很容易地利用多CPU?!、C++、Eiffel、Java、Perl、PHP、PythonAPI·可運(yùn)行在不同的平臺(tái)上?!ざ喾N列類型:1、2、3、4、和8字節(jié)長(zhǎng)度的有符號(hào)/無(wú)符號(hào)整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET和ENUM類型?!だ靡粋€(gè)優(yōu)化的一遍掃描多重聯(lián)結(jié)(one-sweepmulti-join)非??焖俚剡M(jìn)行聯(lián)結(jié)(join)?!ねㄟ^(guò)一個(gè)高度優(yōu)化的類庫(kù)實(shí)現(xiàn)SQL函數(shù)庫(kù)并且像他們能達(dá)到的一樣快速,通常在查詢初始化后不應(yīng)該有任何內(nèi)存分配?!ひ粋€(gè)非常快速的基于線程的內(nèi)存分配系統(tǒng)?!ず瘮?shù)名不會(huì)與表或列名沖突。例如ABS是一個(gè)有效的列名字。對(duì)函數(shù)調(diào)用的唯一限制是函數(shù)名與隨后的“(”不能有空格·支持ANSISQL的LEFTOUTERJOIN和ODBC語(yǔ)法?!に蠱ySQL程序可以用選項(xiàng)--help或-?獲得聯(lián)機(jī)幫助。·服務(wù)器能為客戶提供多種語(yǔ)言的出錯(cuò)消息
第3章系統(tǒng)需求分析3.1系統(tǒng)功能概述 隨著網(wǎng)絡(luò)的發(fā)展,越來(lái)越多的應(yīng)用被移植到網(wǎng)絡(luò)上,有人預(yù)言網(wǎng)絡(luò)操作系統(tǒng)將會(huì)替代現(xiàn)在的桌面操作系統(tǒng)。采用B/S結(jié)構(gòu)的WEB應(yīng)用程序具有瘦客戶端的特點(diǎn),它不需要像C/S結(jié)構(gòu)的桌面應(yīng)用程序那樣進(jìn)行繁瑣和費(fèi)時(shí)的安裝,你只需要一個(gè)瀏覽器便可以使用WEB應(yīng)用程序。但是WEB應(yīng)用程序也有一定的局限性,因?yàn)樗鼘⒋罅康牟僮饔煞?wù)器完成,這將大大加重服務(wù)器的負(fù)擔(dān),因此大型的WEB應(yīng)用程序需要強(qiáng)大服務(wù)器支持。 本系統(tǒng)采用B/S結(jié)構(gòu)設(shè)計(jì)開發(fā),旨在讓用戶通過(guò)網(wǎng)絡(luò)瀏覽器實(shí)現(xiàn)對(duì)系統(tǒng)的訪問(wèn)??梢源蟠鬁p少各個(gè)用戶在時(shí)間和空間上的限制。不同級(jí)別的用戶可以對(duì)系統(tǒng)進(jìn)行不同的管理和操作。這個(gè)系統(tǒng)主要目的是可以讓考試變得更方便,讓改卷變得更輕松,讓管理變得更容易。有了這個(gè)系統(tǒng),學(xué)生可以拿到一臺(tái)計(jì)算機(jī)就可以考試,不必?fù)?dān)心這臺(tái)機(jī)器上是否裝有考試系統(tǒng)。3.2權(quán)限與控制 用戶按照不同的角色進(jìn)行分類,分為管理員(admin)、學(xué)生(student)和教師(teacher)三類,每個(gè)角色對(duì)應(yīng)不同的權(quán)限。admin帳號(hào)為系統(tǒng)產(chǎn)生是存在。student和teacher帳號(hào)不能注冊(cè),必須由管理員進(jìn)行錄入,產(chǎn)生相應(yīng)的帳號(hào)和密碼在告訴學(xué)生和教師,學(xué)生和教師可登錄系統(tǒng)進(jìn)行密碼的修改。admin主要職責(zé)是維護(hù)、管理和添加各種數(shù)據(jù)。teacher主要職責(zé)是管理題庫(kù)、試卷庫(kù)、查看學(xué)生的考試信息。student主要職責(zé)是考試和查看自己的考試信息。3.3系統(tǒng)業(yè)務(wù)流程分析3.3.1業(yè)務(wù)術(shù)語(yǔ)名稱說(shuō)明角色系統(tǒng)中包括管理員(admin)學(xué)生(student)教師(teacher)三種角色帳號(hào)登錄時(shí)需要,唯一區(qū)別每個(gè)用戶的。密碼登錄時(shí)必須輸入。3.3.2業(yè)務(wù)流程登錄:圖登錄流程圖
管理員登錄:圖管理員登錄流程圖
教師登錄:圖教師登錄流程圖
學(xué)生登錄:圖學(xué)生登錄流程圖
3.4系統(tǒng)模塊簡(jiǎn)介 根據(jù)對(duì)計(jì)算機(jī)考試系統(tǒng)的分析和理解,本系統(tǒng)應(yīng)該包含以下幾個(gè)功能:3.4.1登錄模塊 登錄頁(yè)面上有一個(gè)角色下拉框,兩個(gè)文本框分別是輸入帳號(hào)和密碼。登錄前選擇登錄的角色,輸入帳號(hào)和密碼,如果相應(yīng)的數(shù)據(jù)庫(kù)表中與輸入的帳號(hào)密碼相同則登錄成功,否則頁(yè)面上顯示錯(cuò)誤信息。3.4.2系統(tǒng)管理模塊 系統(tǒng)管理模塊是只有管理員可見的模塊,它包括5個(gè)小模塊,分別是:學(xué)校數(shù)據(jù)模塊、學(xué)院數(shù)據(jù)模塊、班級(jí)數(shù)據(jù)模塊、教師數(shù)據(jù)模塊、學(xué)生數(shù)據(jù)模塊。 (1)學(xué)校數(shù)據(jù)模塊學(xué)校數(shù)據(jù)模塊首先在頁(yè)面中列出相關(guān)的學(xué)校數(shù)據(jù),它的功能包括對(duì)學(xué)校數(shù)據(jù)的增加、刪除和修改,增加操作將跳轉(zhuǎn)到一個(gè)增加頁(yè)面填入相應(yīng)的字段驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。(2)學(xué)院數(shù)據(jù)模塊 學(xué)院數(shù)據(jù)模塊首先在頁(yè)面中列出相關(guān)的學(xué)院數(shù)據(jù),它的功能包括對(duì)學(xué)院數(shù)據(jù)的增加、刪除和修改,增加操作將跳轉(zhuǎn)到增加頁(yè)面,頁(yè)面中有一個(gè)所在學(xué)校的字段時(shí)一個(gè)下拉框,內(nèi)容為學(xué)校數(shù)據(jù)中增加進(jìn)去的學(xué)校,選擇一個(gè)學(xué)校填入其他數(shù)據(jù)驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。 (3)班級(jí)數(shù)據(jù)模塊 班級(jí)數(shù)據(jù)模塊首先在頁(yè)面中列出相關(guān)的班級(jí)數(shù)據(jù),它的功能包括對(duì)班級(jí)數(shù)據(jù)的增加、刪除和修改,增加操作將跳轉(zhuǎn)到增加頁(yè)面,頁(yè)面中有兩個(gè)下拉框一個(gè)是所在學(xué)校,一個(gè)是所在學(xué)院,這兩個(gè)為二級(jí)聯(lián)動(dòng)的下拉框,選中所在學(xué)校后,學(xué)院下拉框中顯示相應(yīng)學(xué)校的學(xué)院,填入其他數(shù)據(jù)驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。(4)教師數(shù)據(jù)模塊 教師數(shù)據(jù)模塊首先在頁(yè)面總列出相關(guān)的教師數(shù)據(jù),它的功能包括對(duì)教師數(shù)據(jù)的增加、刪除和修改,增加操作將跳轉(zhuǎn)到增加頁(yè)面,頁(yè)面中有兩個(gè)下拉框一個(gè)是所在學(xué)校,一個(gè)是所在學(xué)院,這兩個(gè)為二級(jí)聯(lián)動(dòng)的下拉框,選中所在學(xué)校后,學(xué)院下拉框中顯示相應(yīng)學(xué)校的學(xué)院,填入其他數(shù)據(jù)驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。 (5)學(xué)生數(shù)據(jù)模塊 學(xué)生數(shù)據(jù)模塊首先在頁(yè)面中列出相關(guān)的學(xué)生數(shù)據(jù),它的功能包括對(duì)學(xué)生數(shù)據(jù)的增加、刪除和修改,增加操作將跳轉(zhuǎn)到增加頁(yè)面,頁(yè)面中有三個(gè)下拉框一個(gè)為所在學(xué)校,一個(gè)為所在學(xué)院,一個(gè)為所在班級(jí),這三個(gè)為三級(jí)聯(lián)動(dòng)的下拉框,選擇相應(yīng)的學(xué)校、學(xué)院、班級(jí)后,填入其他數(shù)據(jù)驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。3.4.3科目管理模塊 科目管理模塊頁(yè)面首先顯示大學(xué)一年級(jí)的科目列表,頁(yè)面上有大學(xué)一年級(jí)、大學(xué)二年級(jí)、大學(xué)三年級(jí)、大學(xué)四年級(jí)鏈接,點(diǎn)擊分別顯示不同年級(jí)的科目列表。模塊功能包括對(duì)科目數(shù)據(jù)的增加、刪除和修改,增加操作是只要選擇一個(gè)年級(jí)然后填入科目名稱驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。3.4.4題庫(kù)管理模塊題庫(kù)管理模塊頁(yè)面上包括列出各年級(jí)科目,列出題型,列出題目列表,默認(rèn)為選擇題。題庫(kù)管理模塊功能包括對(duì)題庫(kù)數(shù)據(jù)的增加、刪除、修改和產(chǎn)生試卷、試卷重置。增加操作是進(jìn)入某個(gè)科目和某種題型的頁(yè)面后點(diǎn)擊增加到題目鏈接后進(jìn)入增加題目的頁(yè)面,填入相應(yīng)的數(shù)據(jù)驗(yàn)證通過(guò)后保存到數(shù)據(jù)庫(kù)。刪除一條記錄時(shí)則需要考慮這條記錄是否被后面的數(shù)據(jù)所使用,要是被使用則提示無(wú)法刪除。修改一條記錄時(shí)跳轉(zhuǎn)到修改頁(yè)面,對(duì)一些可修改的字段進(jìn)行修改,驗(yàn)證通過(guò)后保存。手動(dòng)產(chǎn)生試卷首先要選擇(將記錄前面的checkBox打勾)需要加入到試卷的題目,點(diǎn)擊將題目加入到試卷的鏈接后題目信息被保存到cookie中,等到各種題型的題目都選擇好并加入到試卷后,可以進(jìn)行試卷預(yù)覽、試卷重置或者直接生成試卷,試卷預(yù)覽是以考試試卷的形式跳出一個(gè)新頁(yè)面,試卷重置是將保存到cookie中的題目信息清除,生成試卷時(shí)首先要進(jìn)入預(yù)覽,填入試卷名和考試時(shí)間后按確定將試卷保存到數(shù)據(jù)庫(kù)。用戶可到試卷管理模塊查看生成的試卷信息。3.4.5試卷管理模塊試卷管理頁(yè)面上列出了各年級(jí)的科目,和科目的試卷列表。點(diǎn)擊試卷名稱可以查看試卷的信息,點(diǎn)擊刪除可以將此試卷從數(shù)據(jù)庫(kù)中刪除。3.4.6帳戶管理模塊 帳戶管理模塊主要分為帳戶信息、帳戶信息修改和帳戶密碼修改3個(gè)子模塊。帳戶管理頁(yè)面首先顯示帳戶信息,點(diǎn)擊帳戶信息修改鏈接進(jìn)入帳戶信息修改頁(yè)面,顯示帳戶信息的各個(gè)字段,修改可修改的字段(角色和帳號(hào)為不可修改)按確定進(jìn)行修改。點(diǎn)擊帳戶密碼修改進(jìn)入密碼修改頁(yè)面帳號(hào)為不可修改,需要輸入舊密碼和輸入兩次新密碼,舊密碼必須正確且兩次新密碼必須相同,滿足則點(diǎn)擊確定修改成功。3.4.7考試管理模塊 考試管理模塊分為考試新聞、進(jìn)入考試和信息查詢,考試管理模塊首先顯示考試新聞,這個(gè)頁(yè)面顯示一些新聞或者公告。點(diǎn)擊進(jìn)入考試鏈接進(jìn)入另一個(gè)頁(yè)面,頁(yè)面顯示有年級(jí)、科目和試卷三個(gè)級(jí)聯(lián)下拉框供選擇,點(diǎn)擊下一步進(jìn)入考試頁(yè)面,顯示試卷,開始計(jì)時(shí),答題完成后點(diǎn)擊提交,后臺(tái)進(jìn)行改卷并保存。點(diǎn)擊信息查詢可以查詢考試記錄,點(diǎn)擊相關(guān)記錄可以查看詳細(xì)信息。3.4.8信息查詢模塊 信息查詢模塊不同與考試管理中的信息查詢子模塊,考試管理中的信息查詢是讓考試學(xué)生查詢自己的考試信息用的。而這個(gè)信息查詢則是為了讓教師用戶查詢某個(gè)班級(jí)、某個(gè)名字或者某個(gè)學(xué)號(hào)的學(xué)生的考試信息。頁(yè)面上有一個(gè)下拉框顯示教師所在學(xué)院的班級(jí),兩個(gè)文本框,一個(gè)輸入學(xué)生姓名,一個(gè)輸入學(xué)號(hào),輸入查詢條件后點(diǎn)擊查詢按鈕在頁(yè)面中列出相應(yīng)的查詢結(jié)果。點(diǎn)擊某個(gè)學(xué)生可以進(jìn)入此學(xué)生的考試信息。3.5系統(tǒng)開發(fā)環(huán)境 操作系統(tǒng):MicrosoftWindowsXPprofessional 程序開發(fā)環(huán)境:MyEclipse6.0 應(yīng)用服務(wù)器:Tomcat6 數(shù)據(jù)庫(kù):MySql5.1
第4章系統(tǒng)設(shè)計(jì)4.1系統(tǒng)整體架構(gòu)設(shè)計(jì) 計(jì)算機(jī)考試系統(tǒng)的功能總體結(jié)構(gòu)圖如圖4.1所示:圖4.1系統(tǒng)整體架構(gòu)設(shè)計(jì)4.2系統(tǒng)管理設(shè)計(jì) 系統(tǒng)管理分為5個(gè)子模塊,分別是學(xué)校數(shù)據(jù)管理,學(xué)院數(shù)據(jù)管理,班級(jí)數(shù)據(jù)管理,教師數(shù)據(jù)管理,學(xué)生數(shù)據(jù)管理。學(xué)校數(shù)據(jù)管理流程如圖4.2.1所示:圖4.2.1學(xué)校數(shù)據(jù)管理流程圖
學(xué)院數(shù)據(jù)管理流程圖如圖4.2.2所示:圖4.2.2學(xué)院管理數(shù)據(jù)流程圖
班級(jí)數(shù)據(jù)管理流程圖如圖4.圖4.2.3班級(jí)數(shù)據(jù)管理流程圖
教師數(shù)據(jù)管理流程圖如圖4.2.4所示:圖4.2.4教師數(shù)據(jù)管理流程圖
學(xué)生數(shù)據(jù)流程圖如圖4.2.5所示:圖4.2.5學(xué)生數(shù)據(jù)管理流程圖
4.3題庫(kù)管理設(shè)計(jì) 題庫(kù)管理可以讓管理員或者教師管理題目,完成對(duì)題目的增加、刪除和修改操作,對(duì)于生成的題目可以選擇需要的生成試卷。題庫(kù)管理流程圖如圖4.3所示:圖4.3題庫(kù)管理流程圖
4.4科目管理設(shè)計(jì) 科目管理可以讓管理員或者是
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林交通職業(yè)技術(shù)學(xué)院《機(jī)械設(shè)計(jì)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安乃近項(xiàng)目風(fēng)險(xiǎn)分析和評(píng)估報(bào)告
- 四川文化藝術(shù)學(xué)院《繪本創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南株洲市景炎校2025屆初三第三次教學(xué)質(zhì)量檢測(cè)試題考試英語(yǔ)試題含答案
- 朔州陶瓷職業(yè)技術(shù)學(xué)院《泰國(guó)報(bào)刊閱讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 佛山科學(xué)技術(shù)學(xué)院《攝影基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 華南理工大學(xué)《主任工作》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安外事學(xué)院《園藝療法》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年初三一輪復(fù)習(xí)診斷調(diào)研聯(lián)考初三下學(xué)期聯(lián)考英語(yǔ)試題含答案
- 上饒衛(wèi)生健康職業(yè)學(xué)院《建筑裝飾構(gòu)造》2023-2024學(xué)年第二學(xué)期期末試卷
- 萊蕪市人民醫(yī)院院區(qū)擴(kuò)建工程項(xiàng)目可行性研究報(bào)告
- 2025初中物理課程標(biāo)準(zhǔn)(2022版)考試模擬試卷及答案
- 物理-華大新高考聯(lián)盟2025屆高三3月教學(xué)質(zhì)量測(cè)評(píng)試題+答案
- 3.2 頻率的穩(wěn)定性(第2課時(shí)) 課件 2024-2025學(xué)年北師大版七年級(jí)數(shù)學(xué)下冊(cè)
- 2025年貴州省遵義市中考一模英語(yǔ)試題(含筆試答案無(wú)聽力原文及音頻)
- 綜合應(yīng)急預(yù)案專項(xiàng)應(yīng)急預(yù)案與現(xiàn)場(chǎng)處置方案
- 客服營(yíng)銷面試試題及答案
- 計(jì)劃管理培訓(xùn)課件
- 口腔材料學(xué)-課程教學(xué)大綱
- 《騎鵝旅行記》名著閱讀讀課件
- 滬教版(五四學(xué)制)(2024)六年級(jí)下冊(cè)單詞表+默寫單
評(píng)論
0/150
提交評(píng)論