畢業(yè)設(shè)計(論文)-用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)-界面設(shè)計_第1頁
畢業(yè)設(shè)計(論文)-用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)-界面設(shè)計_第2頁
畢業(yè)設(shè)計(論文)-用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)-界面設(shè)計_第3頁
畢業(yè)設(shè)計(論文)-用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)-界面設(shè)計_第4頁
畢業(yè)設(shè)計(論文)-用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)-界面設(shè)計_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Abstract摘要PAGEIIPAGEIIPAGE1摘要隨著網(wǎng)絡(luò)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)站編程語言也發(fā)展了很多,JSP是最受歡迎的優(yōu)秀網(wǎng)頁程序設(shè)言。本次畢業(yè)設(shè)計的課題是“用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)——界面設(shè)計”。使用的軟件開發(fā)工具有ApacheTomcat6.0軟件,MicrosoftOfficeAccess2007軟件,Dreamweaver軟件。本文采用內(nèi)嵌HTML語言的JSP編程技術(shù)開發(fā)了網(wǎng)上聯(lián)機(jī)考試系統(tǒng)。文中首先論述了網(wǎng)上考試系統(tǒng)的發(fā)展及背景,簡要介紹了JSP和tomcat等相關(guān)的理論知識,接著詳細(xì)闡述了系統(tǒng)的設(shè)計過程以及系統(tǒng)功能的實(shí)現(xiàn)。經(jīng)過測試,作者設(shè)計開發(fā)的網(wǎng)上考試系統(tǒng)能夠突破時空的限制,讓考生在規(guī)定的任意時間、任意地點(diǎn)通過網(wǎng)絡(luò)參加考試。只要有網(wǎng)絡(luò)的地方就可以進(jìn)行考試,有利于節(jié)省紙資源和人力資源,并提高了效率。關(guān)鍵詞:JSP;Tomcat;網(wǎng)絡(luò)考試;數(shù)據(jù)庫AbstractAbstractWithdevelopmentofInternetandwebtechnology,programminglanguagesofwebhavemadearapidprogress.JSPisthemostpopularlanguageforprogrammingwebpages.Thesubjectformygraduationprojectis"Thedesignandrealizationfortheon-linetestsystemwiththetechnologyofWEBinterfacedesign".ThedevelopmenttoolareApacheTomcat6.0,MicrosoftOfficeAccess2007andDreamweaver.Inthisproject,JSPprogramminglanguageisusedtodeveloptheonlineexaminationsystem,Thispaperdescribesthedevelopmentandbackgroundofon-lineexamsystem,aswellastheTomcatsoftwaredevelopmenttool.Firstly,theJSP,tomcatandtheirrelatedtechniquesareintroducingbriefly.Thenthedesignprocessofthesystemisdescribedindetail,aswellastheimplementationofthesystem.Thetestonthesystemshowsthat,theon-lineexamsystemisabletobreakthroughthethelimittotimeandspace,allowingstudenttotaketheexamonnetworkatanytimeandanywhere.Thesystemisadvantageousinsaveingthepaperresourcesandthehumanresources,aswellasraisingtheefficiency.Keywords:JSP;Tomcat;networkexam;database目錄PAGEIV目錄目錄目錄摘要 IAbstract II第一章 概述 11.1 背景 11.2 意義 11.3 內(nèi)容 11.4 技術(shù)特點(diǎn) 1第二章 技術(shù)基礎(chǔ) 32.1 JSP技術(shù)介紹 32.1.1 JSP發(fā)展背景 32.1.2 JSP技術(shù)簡介 32.2 Servelet介紹 42.3 JavaBean介紹 52.4 Javasctip介紹 62.5 Tomcat 72.5.1 Tomcat簡介 72.5.2 Tomcat服務(wù)器接受客戶請求并做出響應(yīng) 72.5.3 各組件在Tomcat服務(wù)器中的作用 82.6 HTML介紹 9第三章 系統(tǒng)設(shè)計方案 103.1 系統(tǒng)結(jié)構(gòu) 103.2 聯(lián)機(jī)考試系統(tǒng)的界面功能設(shè)計 103.2.1 考生登錄界面 113.2.2 考生考試界面 113.2.3 管理員登錄界面 123.2.4 管理員功能選擇界面 123.3 數(shù)據(jù)庫內(nèi)容 13第四章 系統(tǒng)詳細(xì)設(shè)計 144.1 環(huán)境配置: 144.1.1 JAVA: 144.1.2 TOMCAT: 144.1.3 安裝OFFICE: 144.1.4 數(shù)據(jù)庫設(shè)計: 144.1.5 數(shù)據(jù)源 164.2 具體實(shí)現(xiàn) 164.2.1 常用語句 164.2.2 界面顯示設(shè)置: 184.2.3 考生模塊 194.2.4 管理員模塊 30第五章 調(diào)試運(yùn)行 365.1 考生功能測試 365.2 管理員功能測試 375.3 測試中的問題 39第六章 結(jié)論與評價 416.1 系統(tǒng)的優(yōu)缺點(diǎn) 416.2 評價 41結(jié)束語 42參考文獻(xiàn) 43論文名稱用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)——界面設(shè)計PAGE14PAGE1概述背景伴隨著科學(xué)及信息技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)憑借其強(qiáng)大的功能已經(jīng)越來越多地滲入到人們的日常生活中,并且在我國社會的各個領(lǐng)域占據(jù)越來越重要的地位。尤其是我國的各大院校也加快了信息化進(jìn)程,建立了自己的校園網(wǎng)。這為高校學(xué)生管理工作走向數(shù)字化、信息化、網(wǎng)絡(luò)化提供了必備的物質(zhì)基礎(chǔ)。同時,在技術(shù)和需求的推動下,各大院校都準(zhǔn)備或已經(jīng)采用了網(wǎng)上教學(xué)或者考試系統(tǒng)。傳統(tǒng)考試工序復(fù)雜,它需要老師進(jìn)行寫試卷、印試卷、安排考場、監(jiān)考、收集試卷、批改試卷、講評試卷和分析試卷等等的工作,不僅耗費(fèi)大量人力、物力,學(xué)生還不能及時獲得自己的成績。因此過去單一的卷面考試已被網(wǎng)絡(luò)聯(lián)機(jī)考試所取代。意義互聯(lián)網(wǎng)在各高校日常管理中的使用為師生間的信息及時交流、反饋建立了新的渠道。而且隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,教學(xué)考試進(jìn)一步計算機(jī)自動化、科學(xué)化,促進(jìn)教學(xué)改革、減少教師勞動強(qiáng)度的途徑,可進(jìn)一步提高學(xué)習(xí)質(zhì)量、提高評分速度及評分質(zhì)量。如今聯(lián)機(jī)考試系統(tǒng)已實(shí)現(xiàn)其功能,在高校教育教學(xué)中占居重要地位。內(nèi)容本文所研究的內(nèi)容是用網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)的界面設(shè)計。聯(lián)機(jī)考試系統(tǒng)綜合了題庫建設(shè)、試卷生成、上機(jī)考試、自動評分、等幾個部分,它是對傳統(tǒng)考試的發(fā)展和補(bǔ)充。本文主要研究系統(tǒng)前臺的界面設(shè)計,如登錄界面、試卷選擇界面、試卷界面、成績界面等等。系統(tǒng)基于web頁面,操作簡單、數(shù)據(jù)安全性高,這些優(yōu)點(diǎn)使系統(tǒng)能很好的勝任聯(lián)機(jī)在線考試。該系統(tǒng)主要有以下一些功能。對于界面設(shè)計,用戶首先登錄網(wǎng)站,所以需要設(shè)計登錄界面。在登錄界面考生輸入用戶名密碼點(diǎn)擊登錄進(jìn)入相連接的試卷選擇界面。試卷選擇界面選擇學(xué)生需要的考試試卷,點(diǎn)擊確定后進(jìn)入試卷界面進(jìn)行規(guī)定時間的考試。最后學(xué)生可進(jìn)入成績界面查看分?jǐn)?shù)。界面需要簡單直觀快捷。為了使網(wǎng)站使用快捷,在頁面上都會有界面導(dǎo)航設(shè)計,為了方便學(xué)生快速鏈接到需要的界面。除了界面,還需要有數(shù)據(jù)的驗(yàn)證與提交。本人需要完成的是界面設(shè)計,也就是系統(tǒng)的前臺,需要前臺接收到用戶所輸入的信息,并于界面所設(shè)置的內(nèi)容核對驗(yàn)證,將結(jié)果返回給用戶。另外,需要將保存或者數(shù)據(jù)庫處理內(nèi)容送往后臺處理。技術(shù)特點(diǎn)聯(lián)機(jī)考試突破了傳統(tǒng)考試的時空限制,不僅使考試方式更為靈活,同時充分利用計算機(jī)進(jìn)行題庫管理、智能出卷、機(jī)器評分等功能,大大減輕了管理人員和教師的工作量。聯(lián)機(jī)考試系統(tǒng)對硬件環(huán)境和軟件環(huán)境的要求也不很高,這為聯(lián)機(jī)考試系統(tǒng)的普及提供了堅實(shí)的基礎(chǔ)。網(wǎng)絡(luò)聯(lián)機(jī)考試系統(tǒng)是利用JSP、Servlet等技術(shù)自主開發(fā)的一種網(wǎng)上考試系統(tǒng),該系統(tǒng)具有操作簡單、功能強(qiáng)大、數(shù)據(jù)安全性高等優(yōu)點(diǎn)。本文主要研究考試系統(tǒng)的界面設(shè)計。網(wǎng)絡(luò)聯(lián)機(jī)考試是一種先進(jìn)的考試方式,經(jīng)過授權(quán)的考生可以通過web瀏覽器登錄到系統(tǒng)服務(wù)器端進(jìn)行在線考試,管理員可以通過web瀏覽器進(jìn)行考生及試卷管理。系統(tǒng)前端頁面展現(xiàn)使用了JSP技術(shù),服務(wù)器端使用Servlet等組件技術(shù),并采用了開源的Tomcat應(yīng)用服務(wù)器作為服務(wù)器端組件容器。同時這種結(jié)構(gòu)也簡化了系統(tǒng)的部署任務(wù),不用安裝任何客戶端軟件,本文在系統(tǒng)的設(shè)計和開發(fā)過程中考慮了系統(tǒng)的可靠性、高效性、完整性、易使用性。論文名稱技術(shù)基礎(chǔ)本章主要介紹用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)界面設(shè)計所需要了解的技術(shù)基礎(chǔ)。在這個系統(tǒng)中,JSP技術(shù)是基礎(chǔ),使用的WEB服務(wù)器是Tomcat6.0,利用JavaBean技術(shù),完成了系統(tǒng)的開發(fā)。JSP技術(shù)介紹JSP是JavaServerPages的簡稱,JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。JavaServlet是JSP技術(shù)的基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用、完全面向?qū)ο蟆⒕哂衅脚_無關(guān)性且安全可靠、主要面向Internet的所有特點(diǎn)。與其它網(wǎng)頁技術(shù)標(biāo)準(zhǔn)相比,JSP具有很多優(yōu)勢:一次編寫,到處運(yùn)行;系統(tǒng)的多平臺支持;強(qiáng)大的伸縮性;多樣化和功能強(qiáng)大的開發(fā)工具支持。鑒于這些優(yōu)勢,許多程序員在編寫網(wǎng)站程序時優(yōu)先選擇JSP技術(shù)。JSP發(fā)展背景在萬維網(wǎng)短暫的歷史中,萬維網(wǎng)已經(jīng)從一個大部分顯示靜態(tài)信息的網(wǎng)絡(luò)演化到對股票進(jìn)行交易和進(jìn)行購書操作的一個基礎(chǔ)設(shè)施。在各種各樣的應(yīng)用程序中,對于可能使用的基于Web的客戶端,看上去沒有任何限制?;跒g覽器客戶端的應(yīng)用程序比傳統(tǒng)的基于客戶機(jī)/服務(wù)器的應(yīng)用程序有幾個好處。這些好處包括幾乎沒有限制的客戶端訪問和極其簡化的應(yīng)用程序部署和管理(要更新一個應(yīng)用程序,管理人員只需要更改一個基于服務(wù)器的程序,而不是成千上萬的安裝在客戶端的應(yīng)用程序)。這樣,軟件工業(yè)正迅速地向建造基于瀏覽器客戶端的多層次應(yīng)用程序邁進(jìn)。這些快速增長的精巧的基于Web的應(yīng)用程序要求開發(fā)技術(shù)上的改進(jìn)。靜態(tài)HTML對于顯示相對靜態(tài)的內(nèi)容是不錯的選擇;新的挑戰(zhàn)在于創(chuàng)建交互的基于Web的應(yīng)用程序,在這些程序中,頁面的內(nèi)容是基于用戶的請求或者系統(tǒng)的狀態(tài),而不是預(yù)先定義的文字。對于這個問題的一個早期解決方案是使用CGI-BIN接口。開發(fā)人員編寫與接口相關(guān)的單獨(dú)的程序,以及基于Web的應(yīng)用程序,后者通過Web服務(wù)器來調(diào)用前者。這個方案有著嚴(yán)重的擴(kuò)展性問題——每個新的CGI要求在服務(wù)器上新增一個進(jìn)程。如果多個用戶并發(fā)地訪問該程序,這些進(jìn)程將消耗該Web服務(wù)器所有的可用資源,并且系統(tǒng)性能會降低到極其低下的地步。JSP技術(shù)簡介Java在推向開發(fā)人員時出現(xiàn)了重重困難,首先是Java缺少主流系統(tǒng)的廣泛支持,而在所有的平臺和技術(shù)上都缺少可以直接參照的應(yīng)用方式。這時java就走向了在各個應(yīng)用層上的積極進(jìn)取,在自己擅長的與不擅長的領(lǐng)域都走出了堅定的腳步。其中最讓W(xué)eb技術(shù)人員興奮的就是JavaServlet的出現(xiàn)和JSP的漸漸成熟,這一步步都讓Java正式的走向了Web開發(fā)技術(shù)的舞臺。Java利用了它的跨平臺技術(shù),使java的應(yīng)用能快速的部署在各個平臺上,而真的可以一處編寫隨處運(yùn)行。它有較的利用了這個優(yōu)勢,巧妙的將java的通用性、jsp的易用性、servlet的速度結(jié)合在一起,利用平臺部署上的技巧有效的屏蔽java的速度問題,所以Java迅速的在Web開發(fā)人員的團(tuán)員中推廣開來。攜著JavaBean、EJB、JavaApplicationServer、Java事務(wù)服務(wù)器等這樣的強(qiáng)大后臺走向了真正的成熟應(yīng)用。JSP到底是一個什么樣的語言呢?JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),其網(wǎng)址為/products/jsp。該技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的Web頁面提供了一個簡捷而快速的方法。JSP技術(shù)的設(shè)計目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。在傳統(tǒng)的網(wǎng)頁HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無Plugin,無ActiveX,無JavaApplet,甚至無Frame。Servelet介紹Servlet(Java服務(wù)器小程序)是用Java編寫的服務(wù)器端程序,是由服務(wù)器端調(diào)用和執(zhí)行的、按照Servlet自身規(guī)范編寫的Java類。Servlet可以看成是用Java編寫的CGI,但是它的功能和性能比CGI更加強(qiáng)大。Servlet是使用JavaServlet應(yīng)用程序設(shè)計接口(API)及相關(guān)類和方法的Java程序。除了JavaServletAPI,Servlet還可以使用用于擴(kuò)展和添加到API的Java類軟件包。Servlet的功能:(1)產(chǎn)生一個基于請求性質(zhì)的Web動態(tài)頁面,并返還給客戶端。(2)建立多個客戶機(jī)連接,接收多個客戶端請求,并將處理結(jié)果返還到客戶端瀏覽器上。(3)與不同數(shù)據(jù)庫和Java應(yīng)用程序進(jìn)行交互,通信。(4)建立可嵌入式的HTML代碼。(5)在單連接狀態(tài)下傳送數(shù)據(jù),能夠在瀏覽器上建立applet與服務(wù)器的連接。Servlet的特點(diǎn):Servlet基于Java語言創(chuàng)建,具有良好的可移植性、擴(kuò)展性、功能強(qiáng)大。它能夠與數(shù)據(jù)庫、Applet、Java應(yīng)用程序等進(jìn)行通信,并且應(yīng)用到分布式系統(tǒng)中。Servlet能夠處理基于HTTP協(xié)議之上的客戶端請求信息,同時將響應(yīng)結(jié)果返還給客戶端瀏覽器。一個Servlet能夠調(diào)用其它Servlet,同時也能夠在靜態(tài)HTML文件中被動態(tài)的調(diào)用。當(dāng)客戶端發(fā)出請求,一個Servlet被激活時,這個Servlet將持續(xù)運(yùn)行,等待其它客戶機(jī)發(fā)出請求。每一個客戶端的請求都將生成一個獨(dú)立的線程,并且在同一個進(jìn)程中能夠提供對多個客戶端請求處理的服務(wù)。由于Servlet是基于Java技術(shù)之上,所以Java語言能夠?qū)崿F(xiàn)的功能,Servlet幾乎都能夠?qū)崿F(xiàn)。除此之外,Servlet具有以下特點(diǎn):(1)可擴(kuò)展特性:Servle是基于特定語法規(guī)范編寫的java類,所以Servle基本上能夠?qū)崿F(xiàn)java技術(shù)能夠?qū)崿F(xiàn)的所有功能。它運(yùn)行在基于Java的Web服務(wù)器上,通過創(chuàng)建框架擴(kuò)展了服務(wù)器性能,借以在Web服務(wù)器上進(jìn)行請求和響應(yīng)服務(wù)。(2)可移植性:Servlet是基于java語言創(chuàng)建,并提供了一定的規(guī)范定義與應(yīng)用程序設(shè)計接口(API),所以它能夠在各種系統(tǒng)操作平臺或應(yīng)用程序服務(wù)器下運(yùn)行,具有良好的可移植特性。(3)功能強(qiáng)大:Servlet可以使用JavaAPI核心的所有功能,這些功能包括Web和URL訪問、圖像處理、數(shù)據(jù)壓縮、多線程、JDBC、RMI、序列化對象等。(4)高效耐久:在Servlet中,每個來自客戶端的請求,都是由一個java線程進(jìn)行處理,每個Servlet都可以執(zhí)行一個任務(wù),一旦被載入,就駐留內(nèi)存。(5)安全:Servlet是基于java語言編寫,理所當(dāng)然繼承了java的安全框架;同時在Servlet編輯過程中,容器會提供聲明性安全管理。JavaBean介紹JavaBean是一種JAVA語言寫成的可重用組件。JavaBean中的類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean通過提供符合一致性設(shè)計模式的公共方法將內(nèi)部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認(rèn)為JavaBean提供了一種隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。JavaBean是Sun微系統(tǒng)的一個面向?qū)ο蟮木幊探涌?,它可以讓你建可重用?yīng)用程序或能在網(wǎng)絡(luò)中任何主流操作系統(tǒng)平臺上配置的程序塊,稱作組件。從用戶的觀點(diǎn)來看,一個組件可以是一個與你交互的按鈕或是一個當(dāng)你按下按鈕它便開始的小計算程序。從一個開發(fā)者的觀點(diǎn)來看,那個按鈕組件和計算器組件是分別被創(chuàng)建的,并且他們可以一起使用或是在不同的應(yīng)用程序或情況下和不同的組件產(chǎn)生不同的組合來使用。JavaBean的任務(wù)就是:“Writeonce,runanywhere,reuseeverywhere”,即“一次性編寫,任何地方執(zhí)行,任何地方重用”。這個任何實(shí)際上就是要解決困擾軟件工業(yè)的日益增加的復(fù)雜性,提供一個簡單的、緊湊的和優(yōu)秀的問題解決方案。(1)一個開發(fā)良好的軟件組件應(yīng)該是一次性地編寫,而不需要再重新編寫代碼以增強(qiáng)或完善功能。因此,JavaBean應(yīng)該提供一個實(shí)際的方法來增強(qiáng)現(xiàn)有代碼的利用率,而不再需要在原有代碼上重新進(jìn)行編程。除了在節(jié)約開發(fā)資源方面的意義外,一次性地編寫JavaBean組件也可以在版本控制方面起到非常好的作用。開發(fā)者可以不斷地對組件進(jìn)行改進(jìn),而不必從頭開始編寫代碼。這樣就可以在原有基礎(chǔ)上不斷提高組件功能,而不會犯相同的錯誤。(2)JavaBean組件在任意地方運(yùn)行是指組件可以在任何環(huán)境和平臺上使用,這可以滿足各種交互式平臺的需求。由于JavaBean是基于Java的,所以它可以很容易地得到交互式平臺的支持。JavaBean組件在任意地方執(zhí)行不僅是指組件可以在不同的操作平臺上運(yùn)行,還包括在分布式網(wǎng)絡(luò)環(huán)境中運(yùn)行。(3)JavaBean組件在任意地方的重用說的是它能夠在包括應(yīng)用程序、其他組件、文檔、Web站點(diǎn)和應(yīng)用程序構(gòu)造器工具的多種方案中再利用。這也許是JavaBean組件的最為重要的任務(wù)了,因?yàn)樗荍avaBean組件區(qū)別于Java程序的特點(diǎn)之一。Java程序的任務(wù)就是JavaBean組件所具有的前兩個任務(wù),而這第3個任務(wù)卻是JavaBean組件獨(dú)有的。Javasctip介紹javascript是一種基于對象(Object)和事件驅(qū)動(EventDriven),并具有安全性能的腳本語言。使用它的目的是與HTML超文本標(biāo)記語言、Java腳本語言(Java小程序)一起實(shí)現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶交互的作用。從而可以開發(fā)客戶端的應(yīng)用程序等。它是通過嵌入或調(diào)入在標(biāo)準(zhǔn)的HTML語言中實(shí)現(xiàn)的。它的出現(xiàn)彌補(bǔ)了HTML語言的缺陷,它是Java與HTML折衷的選擇,具有以下幾個基本特點(diǎn):(1)腳本編寫語言javascript是一種腳本語言,它采用小程序段的方式實(shí)現(xiàn)編程。像其它腳本語言一樣,javascript同樣也是一種解釋性語言,它提供了一個簡易的開發(fā)過程。它的基本結(jié)構(gòu)形式與C、C++、VB、Delphi十分類似。但它不像這些語言一樣,需要先編譯,而是在程序運(yùn)行過程中被逐行地解釋。它與HTML標(biāo)識結(jié)合在一起,從而方便用戶的使用操作。(2)基于對象的語言javascript是一種基于對象的語言,同時也可以看作一種面向?qū)ο蟮摹_@意味著它能運(yùn)用自己已經(jīng)創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與腳本的相互作用。(3)簡單性javascript的簡單性主要體現(xiàn)在:首先它是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計,從而對于學(xué)習(xí)Java是一種非常好的過渡。其次它的變量類型是采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型。(4)安全性javascript是一種安全性語言,它不允許訪問本地的硬盤,并不能將數(shù)據(jù)存入到服務(wù)器上,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過瀏覽器實(shí)現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失。(5)動態(tài)性javascript是動態(tài)的,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的反映響應(yīng),是采用以事件驅(qū)動的方式進(jìn)行的。所謂事件驅(qū)動,就是指在主頁(HomePage)中執(zhí)行了某種操作所產(chǎn)生的動作,就稱為“事件”(Event)。比如按下鼠標(biāo)、移動窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,可能會引起相應(yīng)的事件響應(yīng)。(6)跨平臺性javascript是依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要能運(yùn)行瀏覽器的計算機(jī),并支持javascript的瀏覽器就可正確執(zhí)行。從而實(shí)現(xiàn)了“編寫一次,走遍天下”的夢想。實(shí)際上javascript最杰出之處在于可以用很小的程序做大量的事。無須有高性能的電腦,軟件僅需一個字處理軟件及一瀏覽器,無須WEB服務(wù)器通道,通過自己的電腦即可完成所有的事情。綜合所述javascript是一種新的描述語言,它可以被嵌入到HTML的文件之中。javascript語言可以做到回應(yīng)使用者的需求事件(如:form的輸入),而不用任何的網(wǎng)路來回傳輸資料,所以當(dāng)一位使用者輸入一項(xiàng)資料時,它不用經(jīng)過傳給伺服端(server)處理,再傳回來的過程,而直接可以被客戶端(client)的應(yīng)用程式所處理。TomcatTomcat簡介學(xué)習(xí)Servlet技術(shù),首先需要有一個Servlet運(yùn)行環(huán)境,也就是需要有一個Servlet容器,本文采用的是Tomcat。Tomcat是一個免費(fèi)的開放源代碼的Servlet容器,它是Apache軟件基金會(ApacheSoftwareFoundation)的一個頂級項(xiàng)目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat6.0支持最新的Servlet2.5和JSP2.1規(guī)范。因?yàn)門omcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛好者的喜愛,并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web服務(wù)器。提示:Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache,我們可以將Apache和Tomcat集成在一起使用,Apache作為HTTPWeb服務(wù)器,Tomcat作為Web容器。Tomcat服務(wù)器接受客戶請求并做出響應(yīng)圖2-1Tomcat服務(wù)器接受客戶請求并做出響應(yīng)的過程①客戶端(通常都是瀏覽器)訪問Web服務(wù)器,發(fā)送HTTP請求。②Web服務(wù)器接收到請求后,傳遞給Servlet容器。③Servlet容器加載Servlet,產(chǎn)生Servlet實(shí)例后,向其傳遞表示請求和響應(yīng)的對象。④Servlet實(shí)例使用請求對象得到客戶端的請求信息,然后進(jìn)行相應(yīng)的處理。⑤Servlet實(shí)例將處理結(jié)果通過響應(yīng)對象發(fā)送回客戶端,容器負(fù)責(zé)確保響應(yīng)正確送出,同時將控制返回給Web服務(wù)器。各組件在Tomcat服務(wù)器中的作用(1)ServerServer表示整個的CatalinaServlet容器。Tomcat提供了Server接口的一個默認(rèn)實(shí)現(xiàn),這通常不需要用戶自己去實(shí)現(xiàn)。在Server容器中,可以包含一個或多個Service組件。(2)ServiceService是存活在Server內(nèi)部的中間組件,它將一個或多個連接器(Connector)組件綁定到一個單獨(dú)的引擎(Engine)上。在Server中,可以包含一個或多個Service組件。Service也很少由用戶定制,Tomcat提供了Service接口的默認(rèn)實(shí)現(xiàn),而這種實(shí)現(xiàn)既簡單又能滿足應(yīng)用。(3)Connector連接器(Connector)處理與客戶端的通信,它負(fù)責(zé)接收客戶請求,以及向客戶返回響應(yīng)結(jié)果。在Tomcat中,有多個連接器可以使用。(4)Engine在Tomcat中,每個Service只能包含一個Servlet引擎(Engine)。引擎表示一個特定的Service的請求處理流水線。作為一個Service可以有多個連接器,引擎從連接器接收和處理所有的請求,將響應(yīng)返回給適合的連接器,通過連接器傳輸給用戶。用戶允許通過實(shí)現(xiàn)Engine接口提供自定義的引擎,但通常不需要這么做。(5)HostHost表示一個虛擬主機(jī),一個引擎可以包含多個Host。用戶通常不需要創(chuàng)建自定義的Host,因?yàn)門omcat給出的Host接口的實(shí)現(xiàn)(類StandardHost)提供了重要的附加功能。(6)Context一個Context表示了一個Web應(yīng)用程序,運(yùn)行在特定的虛擬主機(jī)中。什么是Web應(yīng)用程序呢?在Sun公司發(fā)布的JavaServlet規(guī)范中,對Web應(yīng)用程序做出了如下的定義:“一個Web應(yīng)用程序是由一組Servlet、HTML頁面、類,以及其他的資源組成的運(yùn)行在Web服務(wù)器上的完整的應(yīng)用程序。它可以在多個供應(yīng)商提供的實(shí)現(xiàn)了Servlet規(guī)范的Web容器中運(yùn)行”。一個Host可以包含多個Context(代表Web應(yīng)用程序),每一個Context都有一個唯一的路徑。用戶通常不需要創(chuàng)建自定義的Context,因?yàn)門omcat給出的Context接口的實(shí)現(xiàn)(類StandardContext)提供了重要的附加功能。HTML介紹HTML(HyperTextMark-upLanguage)即超文本標(biāo)記語言或超文本鏈接標(biāo)示語言,是目前網(wǎng)絡(luò)上應(yīng)用最為廣泛的語言,也是構(gòu)成網(wǎng)頁文檔的主要語言。設(shè)計HTML語言的目的是為了能把存放在一臺電腦中的文本或圖形與另一臺電腦中的文本或圖形方便地聯(lián)系在一起,形成有機(jī)的整體,人們不用考慮具體信息是在當(dāng)前電腦上還是在網(wǎng)絡(luò)的其它電腦上。我們只需使用鼠標(biāo)在某一文檔中點(diǎn)取一個圖標(biāo),Internet就會馬上轉(zhuǎn)到與此圖標(biāo)相關(guān)的內(nèi)容上去,而這些信息可能存放在網(wǎng)絡(luò)的另一臺電腦中。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML的結(jié)構(gòu)包括頭部(Head)、主體(Body)兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說明的具體內(nèi)容。另外,HTML是網(wǎng)絡(luò)的通用語言,一種簡單、通用的全置標(biāo)記語言。它允許網(wǎng)頁制作人建立文本與圖片相結(jié)合的復(fù)雜頁面,這些頁面可以被網(wǎng)上任何其他人瀏覽到,無論使用的是什么類型的電腦或?yàn)g覽器。HTML的特點(diǎn)和好處HTML文檔制作不是很復(fù)雜,且功能強(qiáng)大,支持不同數(shù)據(jù)格式的文件鑲?cè)?,這也是WWW盛行的原因之一,其主要特點(diǎn)如下:(1)簡易性,HTML版本升級采用超集方式,從而更加靈活方便。(2)可擴(kuò)展性,HTML語言的廣泛應(yīng)用帶來了加強(qiáng)功能,增加標(biāo)識符等要求,HTML采取子類元素的方式,為系統(tǒng)擴(kuò)展帶來保證。(3)平臺無關(guān)性。雖然PC機(jī)大行其道,但使用MAC等其他機(jī)器的大有人在,HTML可以使用在廣泛的平臺上,這也是WWW盛行的另一個原因。用什么可以編輯HTML?論文名稱系統(tǒng)設(shè)計方案本文設(shè)計的聯(lián)機(jī)考試系統(tǒng)是基于JSP技術(shù)的網(wǎng)上考試系統(tǒng),使用Tomcat服務(wù)器和MicrosoftOfficeAccess2007數(shù)據(jù)庫,完成了系統(tǒng)的開發(fā)。本章從系統(tǒng)的總體設(shè)計起步,講述網(wǎng)上考試系統(tǒng)界面設(shè)計的設(shè)計方案和數(shù)據(jù)庫設(shè)計。考慮到系統(tǒng)中的主要操作界面是考生的答題頁面,所以盡量力求它簡潔,明快。布局要合理、考生閱讀試題及答題操作要方便、清楚。系統(tǒng)結(jié)構(gòu)本考試系統(tǒng)主要用來進(jìn)行網(wǎng)上考試和網(wǎng)上評分。作為一個系統(tǒng),應(yīng)該由一些相對獨(dú)立的模塊耦合而成。本系統(tǒng)主要包括如下幾個大的模塊,每個大的模塊下又細(xì)分為幾個小的功能模塊。考試系統(tǒng)考試系統(tǒng)更改考試信息更新題庫修正題庫用戶違規(guī)確認(rèn)管理員考生選擇試卷考生參加考試成績顯示考生圖3-1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)采用JSP+Access+Tomcat實(shí)現(xiàn),有系統(tǒng)管理員和學(xué)生兩種用戶權(quán)限,不同的身份管理界面和使用權(quán)限完全不同。整個系統(tǒng)結(jié)構(gòu)見圖3-1。聯(lián)機(jī)考試系統(tǒng)的界面功能設(shè)計以下主要介紹用WEB技術(shù)設(shè)計實(shí)現(xiàn)聯(lián)機(jī)考試系統(tǒng)——界面設(shè)計的主要功能模塊,分別從管理員和學(xué)生兩大模塊簡單描述??荚嚱缑嬖O(shè)計圖如圖3-2。管理員功能界面管理員功能界面登錄界面考生選擇試卷界面答題界面成績界面更改考試信息界面增加試卷界面考生注冊界面更新題庫界面修改題庫界面用戶違規(guī)確定界面修改考試信息界面修改考題界面提交退出退出注冊考試管理員登錄進(jìn)入系統(tǒng)返回管理員界面返回管理員界面增加試卷增加試題修改試題違規(guī)用戶圖3-2考試界面設(shè)計圖考生登錄界面考慮到系統(tǒng)的安全性,設(shè)置了登錄模塊,系統(tǒng)的用戶必須通過登錄驗(yàn)證后才能轉(zhuǎn)入相應(yīng)的使用頁面。(1)登錄界面界面功能:當(dāng)用戶進(jìn)入登錄界面后,已經(jīng)注冊的可以直接登錄。考生在進(jìn)入系統(tǒng)時必須輸人考生的用戶名與密碼,系統(tǒng)會檢查該用戶的權(quán)限與合法性,如果合法,則賦予此考生一切學(xué)生權(quán)限。界面主要元素:在此界面上有姓名、密碼文本輸入框,注冊超鏈接,登錄、重置按鈕。(2)注冊界面界面功能:考生進(jìn)入考生登錄界面后已經(jīng)注冊的可以直接登錄,沒有注冊的單擊“注冊”進(jìn)入考生注冊界面。在該模塊中考生填寫基本信息,如真實(shí)姓名、密碼、身份證號等,然后提交給系統(tǒng)。如果系統(tǒng)內(nèi)沒有與該考生相同的學(xué)生記錄,系統(tǒng)則接受此考生為合法考生,賦予此考生一切考生權(quán)限。界面主要元素:姓名、密碼、確認(rèn)密碼、身份證號四個文本輸入框,注冊、重置按鈕,返回到登錄頁面的“返回”連接??忌荚嚱缑婵荚囀潜鞠到y(tǒng)的主要功能,用戶進(jìn)入頁面后選擇考試試卷。所以此模塊的功能是選擇試卷并在考試時間固定下考試,而且可以在考試之后現(xiàn)實(shí)考試成績。本系統(tǒng)只有選擇題型。(1)選擇試卷界面界面功能:考生進(jìn)入選擇試卷頁面,在該頁顯示出準(zhǔn)備考試的試卷目錄,點(diǎn)擊即可進(jìn)入考試界面。界面主要元素:表格中包括開始考試按鈕,考試名稱、考試時長文本。(2)考試界面界面功能:進(jìn)入考試界面后,系統(tǒng)會自動隨即生成試卷,試題顯示在同一頁上。當(dāng)考試試題時間結(jié)束時,系統(tǒng)自動交卷,考生也可提前交卷??碱}都是選擇題,考生點(diǎn)擊選項(xiàng)前的選項(xiàng)即可。本頁設(shè)置防作弊代碼,如果考生刷新頁面、后退或者更改頁面網(wǎng)址都被按照作弊處理。界面主要元素:考試題目、選項(xiàng),考試時間,提交試卷按鈕。(3)交卷界面界面功能:該部分程序基本上采用JSP程序直接訪問外部數(shù)據(jù)庫,完成對客戶的請求服務(wù)的模型??忌瓿纱鹁砗笠獔?zhí)行交卷功能,執(zhí)行時系統(tǒng)按各答題組件中的答題信息形成相應(yīng)的記錄,對答卷庫中各考生的答題信息進(jìn)行判分與匯總,界面顯示得分、考試用時、答錯或者沒有回答的題目的正確答案。界面主要元素:考試得分,考試用時,做錯或沒做試題的題目、選項(xiàng)及答案,退出到登錄頁面的“退出”超鏈接。管理員登錄界面界面功能:系統(tǒng)識別管理員權(quán)限,系統(tǒng)會檢查該用戶的權(quán)限與合法性,如果合法,則賦予管理員一切管理員權(quán)限。管理員在數(shù)據(jù)庫中由系統(tǒng)工作人員添加。界面主要元素:在此界面上有姓名、密碼文本輸入框,注冊超鏈接,登錄、重置按鈕。管理員功能選擇界面管理員的作用是管理考試系統(tǒng),可以增減或者修改考試題目,可以選擇考試題數(shù)與時間,可以管理作弊考生。(1)增改考試界面功能:管理員成功登錄之后,可進(jìn)入功能選擇界面,第一項(xiàng)既為更改考試信息。此功能可以增加刪除試卷或者修改考試信息,如可以設(shè)置或修改考試時長或者考試題數(shù)。界面主要元素:表格其中包括更正本次考試超鏈接、考試名稱、考試時長、題目數(shù)量,增加新的考試超鏈接。在修改考試界面包括,考試名稱、考試時長、題目題量,考試狀態(tài)選項(xiàng),確定、重置按鈕,可以返回到功能界面的“返回”超鏈接。在增加新新考試界面包括,考試名稱、考試時長、題目題量,確定、重置按鈕,可以返回到功能界面的“返回”超鏈接。(2)更新修正題庫界面功能:在更新題庫界面,管理員可以增加新題,題目、選項(xiàng)、正確答案。在修正題庫界面,管理員可以刪除不要的題目,或者修改題目及選項(xiàng)答案。界面主要元素:更新題庫包括,題號、題目內(nèi)容、ABCD選項(xiàng)、正確選項(xiàng)的本文框,確定、重置按鈕,可以返回到功能界面的“返回”超鏈接。修正題庫包括刪除超鏈接,題號、題目、ABCD選項(xiàng)、答案,返回到功能界面的“返回”超鏈接。(3)管理被封帳戶界面功能:在此界面顯示出作弊考生的用戶名身份證及相關(guān)原因,管理員可以恢復(fù)被封賬號。界面主要元素:恢復(fù)賬號超鏈接,序號、用戶名、身份證號、錯誤類別,返回到功能界面的“返回”超鏈接。數(shù)據(jù)庫內(nèi)容在考試時,答卷數(shù)據(jù)必須滿足在短短的時間里會頻繁的更改和保存,本系統(tǒng)使用的數(shù)據(jù)庫是MicrosoftOfficeAccess2007。本系統(tǒng)共涉及四類數(shù)據(jù)庫表,有用戶注冊信息表、試卷類型表、考生分?jǐn)?shù)表和題庫表。設(shè)計思路如下:表3-1用戶注冊信息表—login考生序號姓名密碼是否參加過考試考生分?jǐn)?shù)考生身份證號作弊序號用戶權(quán)限自動編號文本文本文本數(shù)字文本文本文本表3-2試卷類型—exam_type試卷序號考試時間試題數(shù)量試卷名稱考試狀態(tài)自動編號文本文本文本數(shù)字表3-3考生分?jǐn)?shù)表—score自動編號考生序號考生得分試卷序號自動編號數(shù)字?jǐn)?shù)字?jǐn)?shù)字表3-4題庫表--question題號題目ABCD答案自動編號文本文本文本文本文本文本系統(tǒng)詳細(xì)設(shè)計本章主要介紹所用到軟件的環(huán)境配置、包含的專業(yè)技術(shù)說明、考試系統(tǒng)的詳細(xì)設(shè)計過程及實(shí)現(xiàn)方法。其中,實(shí)現(xiàn)方法主要從考生模塊和管理員模塊詳細(xì)介紹。環(huán)境配置:本次畢業(yè)設(shè)計我涉及到WINDOWSXP,JDK6.0.03,JRE6.0.03,TOMCAT虛擬服務(wù)器端和OFFICEACCESS小型數(shù)據(jù)庫等工具,下面說明環(huán)境配置過程:JAVA:上網(wǎng)下載JDK6.0.03,之后進(jìn)行默認(rèn)安裝。TOMCAT:上網(wǎng)下載TOMCAT6.0進(jìn)行默認(rèn)安裝,端口使用80端口,使得調(diào)試過程中較容易輸入地址。安裝好后,需要對環(huán)境變量進(jìn)行配置,基于我使用的WINDOWSXP系統(tǒng),在“我的電腦上”單擊鼠標(biāo)右鍵“屬性→高級→環(huán)境變量”進(jìn)行配置:CLASSPATH=.;C:\ProgramFiles\Java\jdk1.6.0_03\lib\dt.jar;C:\ProgramFiles\Java\jdk1.6.0_03\lib\tools.jar;C:\ProgramFiles\Java\jre6\lib\ext\QTJava.zip;C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\lib\servlet-api.jar;PATH=;C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\lib **以上變量如果存在,則直接在該變量值的后面增加上述內(nèi)容安裝OFFICE:為了更方便的使用/設(shè)計數(shù)據(jù)庫ACCESS文件,還需要安裝OFFICE。因?yàn)?003版和2007版的數(shù)據(jù)庫格式不同設(shè)計數(shù)據(jù)源的步驟也不同,所以需要特殊聲明的是,我在這次畢業(yè)設(shè)計中使用的是OFFICE2007版的數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計:圖4-1數(shù)據(jù)庫四個表之間的關(guān)系示意圖本系統(tǒng)數(shù)據(jù)庫共有以上四個表組成,(1)Login表:記錄所有人員的信息,包括管理員和考生,其中:log_id主鍵,該列是人物對應(yīng)的ID,每個人注冊后都會按順序產(chǎn)生一個唯一標(biāo)識的ID,與score表中的log_id_score關(guān)聯(lián),用于確定考生的成績;log_name,記錄注冊用戶的用戶名,有兩個作用:確認(rèn)考生人名;和密碼、身份證組成唯一確認(rèn)考生身份的信息;log_psw,注冊用戶的密碼;can_join,標(biāo)記注冊用戶是否可以參加考試,新注冊的用戶此列為0,如果有違規(guī)操作,比如作弊:刷新考試頁面,在考試中途返回選考界面,或者隨意更改頁面地址標(biāo)志位,都會將此列設(shè)置為0。防作弊程序和方法在后面有詳細(xì)介紹。body_id,記錄考生身份證號,程序規(guī)定所有人員只能擁有一個用戶,也就是說,本列通過使用程序,規(guī)定其唯一性;error_no,記錄被禁止考試的考生的違規(guī)代碼;log_right,記錄本注冊用戶的權(quán)限,其中通過頁面注冊的用戶,其權(quán)限為考生權(quán)限。(2)exam_type表:記錄本次考試的基本信息。exam_id主鍵,自動順序編號的考試標(biāo)識。確定每場考試的代號唯一;exam_timeout,確定本考試的考試時長,以分鐘為單位;exam_q_num,確定本考試的考試題目總數(shù);exam_name,本次考試的名稱,方便考生選擇考試;exam_status,考試狀態(tài),為了更方便的保留有意義的考試信息,故設(shè)置此列,規(guī)定為0,則本次考試暫時作廢,規(guī)定為1則允許參加本次考試。使管理員不必每次都錄入相同的考試,當(dāng)然,如果確認(rèn)本考試信息無用,則可刪除本條考試數(shù)據(jù)。(3)score表:記錄考生參加考試的結(jié)果ID:順序編號,為本表的所有行確定唯一的標(biāo)志。;log_id_score:確定獲得本成績的考生ID;its_score:本考生的考試成績;exam_id:本考生所參加的考試對應(yīng)的ID。(4)question表:本次考試系統(tǒng)設(shè)計中只涉及到選擇題,所有題目內(nèi)容保存在本表中。數(shù)據(jù)源數(shù)據(jù)庫設(shè)計完畢后需要配置數(shù)據(jù)源,步驟如下:(1)控制面板→管理工具→數(shù)據(jù)源(ODBC)→系統(tǒng)DSN(2)選擇添加,選中其中的MicrosoftAccessDriver(*.mdb,*.accdb)(3)找到對應(yīng)的文件,完成配置數(shù)據(jù)源并且給它起名為myexam_access到此,平臺搭建完畢。具體實(shí)現(xiàn)環(huán)境配置成功后,就可以開始設(shè)計考試系統(tǒng)了,上章已經(jīng)說明本系統(tǒng)分為考生、管理員兩大模塊,所以根據(jù)本人所制作的網(wǎng)頁,按流程分成兩大部分幾小部分介紹主要用到的技術(shù)。常用語句(1)頁面頭部<%@pagecontentType="text/html;charset=gb2312"language="java"%>這定義了一個頁面的頭部,pagelanguage="Java"說明這個頁面的scriptlet是java語言;contentType="text/html;charset=gb2312"中,text/html說明這個頁面作為html解釋,charset=gb2312說明頁面的編碼為gb2312。(2)輸入語言標(biāo)簽<%@pageimport="java.sql.*"%>;<%@pageimport="java.util.*"%>等等是將頁面中需要的JAVA包,包含,有效范圍為本頁面,似的JAVA語言的強(qiáng)大功能得以使用。(3)轉(zhuǎn)換編碼<%! publicStringcodeString(Strings){ Stringstr=s;try{ byteb[]=str.getBytes("ISO-8859-1"); str=newString(b); returnstr; }catch(Exceptione) {returnstr;} }%> 數(shù)據(jù)庫(iso-8859-1)-->Java獲得已iso-8859-1形式理解的GBK編碼(即:1個字符2個字節(jié)一個漢字,理解成了2個字符,2個字節(jié)的2個iso8859-1字符),而后,已iso8859-1形式存儲的gbk編碼轉(zhuǎn)為Java內(nèi)部的unicode編碼,(也就是,把N個iso8859-1的字符轉(zhuǎn)為N個unicode字符)然后,再通過str.getBytes("ISO-8859-1");獲得原始字節(jié)碼(iso-8859-1二進(jìn)制碼,邏輯上的GBK編碼)(4)CSS<linkhref="main-of.css"rel="stylesheet"/>linkhref="main-of.css”意思就是調(diào)用css這個文件夾下的css文檔,也就是main-of.css這個文件。rel="stylesheet"指鏈接的元素是一個樣式表,一般不需要修改(5)背景<body bgproperties="fixed" TOPMARGIN=5LEFTMARGIN=0MARGINWIDTH=0MARGINHEIGHT=0 background="pic/bg2.gif">參數(shù)topmargin=5表示與瀏覽器頂部距離為5;參數(shù)leftmargin=0表示與瀏覽器左部距離為0;參數(shù)marginwidth=0表示與左右邊邊界為0;參數(shù)marginheight=0表示與上下邊邊界為0;Background屬性設(shè)置本頁面的背景圖片;Bgproperties屬性設(shè)置本頁面的背景圖片不跟隨頁面的滾動而滾動。(6)設(shè)置數(shù)據(jù)源,鏈接數(shù)據(jù)庫,并且返回結(jié)果集的語句Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//鏈接數(shù)據(jù)源的驅(qū)動程序Connectioncon=DriverManager.getConnection("jdbc:odbc:myexam_access","","");//配置數(shù)據(jù)源的基礎(chǔ)信息Statementsql=con.createStatement();//創(chuàng)建一個連接ResultSetrs=sql.executeQuery(mysql);//執(zhí)行SQL語句,用RS返回結(jié)果集界面顯示設(shè)置:所有界面采用如下圖4-2風(fēng)格。圖4-2登錄界面實(shí)現(xiàn)方法為:使用嵌套的TABLE,用外層TABLE規(guī)定米黃色的背景,突出頁面主體,主體內(nèi)容再細(xì)分為多個TABLE,用來顯示不同的內(nèi)容。諸如<tableheight="300"bgcolor="#fff7e6"width="90%"> <trheight="67"><tdbackground="pic/biti.jpg"align="left"> <imgsrc="pic/biti2.jpg"height="67"></td></tr> <tr> <td> <table align="center" border="0" width="90%" bgcolor="#fef9ef" cellspacing="0"cellpadding="0" height="132"> <tr> <tdalign="left"colspan="2"><b>歡迎來到本考試系統(tǒng)</b> </td></tr>其中table的屬性功能如下:Height規(guī)定TABLE的最小高度;Bgcolor規(guī)定TBALE的背景顏色;Width規(guī)定TABLE的寬度,可是是占屏幕的百分比,也可以是具體像素,考慮到本系統(tǒng)的使用方面,這里我選擇了百分比,目的是使其在各個顯示器上能正常的顯示,增加本系統(tǒng)的可移植性;Border規(guī)定TABLE表格的邊框?qū)挾龋?為無邊框;cellSpacing可設(shè)置或返回在表格中的單元格之間的空白量(以像素為單位);cellpadding在原有小格的基礎(chǔ)上沿四邊各加上設(shè)定數(shù)值的像素數(shù)寬度,也就是把原來的小格變大,但原來寫的內(nèi)容占的大小范圍不變;Td的屬性colspan和rowspan比較常用,他們分別是橫向合并表格,和豎向合并表格??忌K登錄注冊(1)index.jsp登錄頁面考慮到系統(tǒng)的安全性,設(shè)置了登錄模塊,系統(tǒng)的用戶必須通過登錄驗(yàn)證后才能轉(zhuǎn)入相應(yīng)的使用頁面。實(shí)現(xiàn)方法:本頁面設(shè)置了一個form用于將來訪用戶的姓名和密碼傳遞給下一個頁面進(jìn)行相應(yīng)的處理。使用到了TEXT格式的input控件來對應(yīng)用戶輸入的用戶名,password格式的input控件來處理用戶輸入的密碼,使之呈現(xiàn)不顯示內(nèi)容的狀態(tài)。在用戶提交FORM表單的同時使用Javascript判定用戶的輸入是否合法functioncheck(){ if(document.login.id.value==""){ alert("沒有輸入用戶名"); returnfalse; } elseif(document.login.psw.value==""){ alert("沒有輸入密碼"); returnfalse; } else returntrue;}如果合法,則check()函數(shù)返回true將用戶輸入的信息傳遞到登錄處理的頁面,如圖4-3。否則給予用戶相應(yīng)的提示,并且返回false給表單,使得頁面提交失敗。如圖4-4。圖4-3沒有出入用戶名圖4-4沒有輸入密碼(2)AdminLogin.jsp登錄處理頁面本頁面對剛才在index.jsp頁面中輸入內(nèi)容的用戶信息進(jìn)行處理和判定。實(shí)現(xiàn)方法:首先,通過諸如Stringmypsw=request.getParameter("psw");的語句,得到上一個頁面?zhèn)鬟f過來的參數(shù),然后設(shè)置&執(zhí)行SQL語句:Stringmysql="select*fromloginwherelog_name='"+myname+"'andlog_psw='"+mypsw+"'";其結(jié)果是:如果數(shù)據(jù)庫中有符合該用戶名密碼的用戶則執(zhí)行的結(jié)果集RS不會為空,則mycount變量的值為1,否則mycount的值為0,這樣就標(biāo)志了用戶是否已經(jīng)注冊。如果存在結(jié)果集,則通過myid=rs.getString("log_id");myright=rs.getString("log_right");語句,獲得該用戶的順序編號和權(quán)限,并且對權(quán)限進(jìn)行處理。權(quán)限為考生的,則通過<metahttp-equiv=refreshcontent=3;url=AdminJoinExam.jsp>語句導(dǎo)向考生界面,否則導(dǎo)向管理員界面。前面在數(shù)據(jù)庫設(shè)計中介紹過login表中的log_right列,其值為1是在用戶直接從頁面上注冊的結(jié)果產(chǎn)生的,也就是說,正常使用本系統(tǒng)的用戶皆為考生。如果想更改用戶權(quán)限為管理員,則需要將該值設(shè)置為非1的情況。如果登錄成功,則通過session.setAttribute("myname",myname);session.setAttribute("myid",myid);session.setAttribute("myright","");系列語句將登錄用戶的對應(yīng)ID,用戶名和權(quán)限,記錄入SESSION,使之后的程序能更方便的進(jìn)行下去,不用再次執(zhí)行SQL語句來讀取出這些內(nèi)容。若登錄成功如圖4-5,不成功如圖4-6。圖4-5成功登錄后自動跳轉(zhuǎn)圖4-6沒有注冊或者密碼不對(3)AdminNewUser.jsp;AdminNewUserInsert.jsp注冊處理頁面考生進(jìn)入考生登錄界面后已經(jīng)注冊的可以直接登錄,沒有注冊的單擊“注冊”進(jìn)入考生注冊界面。在該模塊中考生填寫基本信息,如真實(shí)姓名、密碼、身份證號等,然后提交給系統(tǒng)。如果系統(tǒng)內(nèi)沒有與該考生相同的學(xué)生記錄,系統(tǒng)則接受此考生為合法考生,賦予此考生一切考生權(quán)限。注冊頁面如圖4-7。圖4-7注冊信息填寫具體設(shè)計如下:AdminNewUser.jsp頁面:使用index.jsp頁面中的設(shè)計方法,對用戶輸入的合法性進(jìn)行判斷。程序如下:functioncheck(){ if(document.login.id.value==""){ alert("用戶名必須填寫"); returnfalse; } elseif(document.login.psw.value==""){ alert("第一次的密碼沒有輸入"); returnfalse; } elseif(document.login.psw2.value==""){ alert("第二次的密碼沒有輸入"); returnfalse; } elseif(document.login.psw2.value!=document.login.psw.value){ alert("兩次密碼不同"); returnfalse; } elseif(document.login.body_id.value==""){ alert("請輸入身份證"); returnfalse; } elseif(document.login.body_id.value.length!=15&&document.login.body_id.value.length!=18){ alert("身份證號輸入有誤"); returnfalse; } else returntrue;}其區(qū)別在于兩個密碼的比對和身份證號的特殊處理,如果兩次輸入的密碼不相同,那么容易造成用戶的困擾,所以這里要講兩次輸入的密碼進(jìn)行比對。而我國現(xiàn)有的身份證號位數(shù)皆為15/18所以這里對身份證號的限制為15/18位。兩次密碼是否相同如圖4-8。圖4-8兩次密碼要相等AdminNewUserInsert.jsp頁面:獲取前一個頁面的錄入內(nèi)容,并且判斷其合法性,將之存儲入數(shù)據(jù)庫。這里,我們規(guī)定,用戶名可以相同,但是密碼不能相同。原因在于同名的人太多,盡管他們的身份證號一定不同,但是登錄系統(tǒng)的時候只判斷用戶名和密碼,如果需要用戶再次輸入身份證號的話,會給使用者造成一定的困擾。所以這里我們要先判斷其用戶名和密碼是否在表中唯一。于是,我們定義SQL語句如下:Stringmysql="select*fromloginwherelog_name='"+myname+"'andlog_psw='"+mypsw+"'";如果結(jié)果集RS不為空,那么說明該賬號已經(jīng)存在,故不能完成用戶注冊的請求,否則,進(jìn)行身份證號的判斷:mysql="select*fromloginwherebody_id='"+mybody_id+"'";如果該身份證號已經(jīng)注冊過,那么執(zhí)行上面SQL語句的結(jié)果集就不會為空,那么就需要告訴用戶,他已經(jīng)注冊過了。這樣操作,比起從數(shù)據(jù)庫中讀出所有數(shù)據(jù)內(nèi)容再進(jìn)行比對而對服務(wù)器產(chǎn)生的壓力來說,要小很多。用戶已注冊如圖4-9,注冊失敗如圖4-10。圖4-9注冊成功圖4-10注冊失敗考生考試考試是本系統(tǒng)的主要功能,用戶進(jìn)入頁面后選擇考試試卷。所以此模塊的功能是選擇試卷并在考試時間固定下考試,而且可以在考試之后現(xiàn)實(shí)考試成績。本系統(tǒng)只有選擇題型。(1)AdminJoinExam.jsp選擇試卷界面考生進(jìn)入選擇試卷頁面,在該頁顯示出準(zhǔn)備考試的試卷目錄,點(diǎn)擊即可進(jìn)入考試界面。如圖4-11。圖4-11選擇試卷界面本頁面中通過執(zhí)行Stringmysql="select*fromexam_typewhereexam_status=1";將所有可以參加的考試列給考生看,以供考生選擇,考生只要點(diǎn)擊相應(yīng)的參加考試按鈕就能進(jìn)入該考試。在這個頁面上,我們也做了一些防作弊處理,設(shè)計思路是:每個考生每次登錄只能參加一個考試,如果要連續(xù)參加兩次考試,那么需要登錄兩次才能完成。盡管這樣做會略顯麻煩,但是能更加嚴(yán)格的限制考生,防止出現(xiàn)刷題、刷時間等作弊問題。具體的設(shè)計方案如下if(session.getAttribute("myname")!=null) { myname=session.getAttribute("myname").toString();//如果登錄,顯示出來用戶名 } else { out.println("<metahttp-equiv=refreshcontent=0;url=error.jsp?id=00911009>"); }這段代碼是判斷用戶是否非法訪問本頁面。比如,在沒有登錄的情況下就直接訪問本頁面,如果不記錄參加考試的考生信息,系統(tǒng)是無法進(jìn)行下去的,所以在這里我們要得知參加考試的考生姓名,如果得不到,則返回給系統(tǒng)一個00911009的錯誤代碼。 Stringmychoose_once="x"; if(session.getAttribute("mychoose_once")!=null) { mychoose_once=session.getAttribute("mychoose_once").toString(); } if(mychoose_once.equals("0")) { mychoose_once=String.valueOf(Integer.parseInt(mychoose_once)+1); …… } else { out.println("<metahttp-equiv=refreshcontent=0;url=error.jsp?id=82890394>"); }這段代碼的含義是本頁面只允許訪問一次,如果刷新本頁面的話則進(jìn)行作弊處理。因?yàn)榭忌淮蔚卿浿荒軈⒓右淮慰荚?,所以如果發(fā)現(xiàn)第二次訪問則處理。這樣做有兩點(diǎn)好處:①防止考生刷新考試。②防止考生進(jìn)入考試后再點(diǎn)擊后退按鈕從新進(jìn)入該考試達(dá)到刷題刷時間的目的。(具體的防作弊程序在下面有介紹)。在本頁面中,它的作用只有防止考生刷新頁面,所以如果刷新,則提交錯誤代碼82890394.如圖4-12。圖4-12刷新頁面考生選擇參加哪場考試之后,導(dǎo)向AdminSet.jsp頁面,session.setAttribute("myrefresh","0");session.setAttribute("mytype",mytype);通過執(zhí)行上面語句,將考生新的次數(shù)歸零,將考生參加的考試順序號存入session在參加考試的途中進(jìn)行比對。(2)AdminExamStart.jsp考試界面進(jìn)入考試界面后,系統(tǒng)會自動隨即生成試卷,試題顯示在同一頁上。當(dāng)考試試題時間結(jié)束時,系統(tǒng)自動交卷,考生也可提前交卷??碱}都是選擇題,考生點(diǎn)擊選項(xiàng)前的選項(xiàng)即可。本頁設(shè)置防作弊代碼,如果考生刷新頁面、后退或者更改頁面網(wǎng)址都被按照作弊處理。如圖4-13。圖4-13考試界面本頁面是這個系統(tǒng)的核心頁面,首先介紹下刷新和更改網(wǎng)址的防作弊處理:防刷新 if(session.getAttribute("myrefresh")==null) { session.setAttribute("myrefresh","0"); } else { Stringmytempid="-1";//-10正常,其他作弊 mytempid=session.getAttribute("myrefresh").toString(); if(mytempid.equals("-1")||mytempid.equals("0")) { session.setAttribute("myrefresh","1"); } else out.println("<metahttp-equiv=refreshcontent=0;url=error.jsp?id=70000912>"); }這里,讀取AdminSet.jsp設(shè)置在session中的值,如果是第一次訪問此頁面,那么我們myrefresh的值應(yīng)該是0,判斷之后,將myrefresh的值變?yōu)?,也就是說,再次刷新的時候,myrefresh的值已經(jīng)是1了,那么我們就可以得到“用戶已經(jīng)刷新了此頁面”的結(jié)論,那么就會產(chǎn)生一個錯誤代碼70000912,也就是說“考生作弊了”。不僅如此,我們還是用了javascript限制了按鍵f5和back的使用,代碼如下:document.onkeydown=function(){ if(event.keyCode==116)//F5沒反應(yīng) { event.keyCode=0; event.returnValue=false; }}document.oncontextmenu=function(){event.returnValue=false;}//backspace沒反應(yīng)其原理就是,當(dāng)用戶按下F5和BACK鍵的時候,javascript返回一個錯誤的值,以達(dá)到系統(tǒng)不響應(yīng)的效果。防止更改網(wǎng)址作弊 :if(session.getAttribute("mytype")!=null) { mytype=session.getAttribute("mytype").toString(); } else {out.println("<metahttp-equiv=refreshcontent=0;url=error.jsp?id=81090092>"); mytimeout=9999; } //如果類型不同則返回錯誤代碼 if(mytype.equals(myexam_type)) {} else { out.println("<metahttp-equiv=refreshcontent=0;url=error.jsp?id=90810092>"); mytimeout=9999; }這里也是讀取上一個頁面設(shè)置的mytype的值,和通過網(wǎng)址傳遞過來的type值進(jìn)行比對,如果相同,則證明考生沒有試圖去更改網(wǎng)址,否則以作弊論處,傳遞錯誤代碼90810092。防作弊處理通過之后,則進(jìn)入考試階段??荚囯A段是通過以下方式實(shí)現(xiàn)的:首先執(zhí)行SQL語句,mysql="select*fromexam_typewhereexam_id="+myexam_type;得到考試的基本信息(時長、題量等等)。然后通過執(zhí)行,question_id[i]=(int)(Math.random()*myq_id)+1;語句,從題庫中隨機(jī)選出題目對應(yīng)的題號。最后讀取題庫中題號內(nèi)容為question_id[i]的題目內(nèi)容,通過radio類型的input控件顯示給考生。題目顯示出來了,為了方便考生我們還需要一個計時系統(tǒng)。于是,通過下面的程序,我們得到了當(dāng)前時間和考試結(jié)束的時間:java.util.Datethisday=newjava.util.Date();intmyyear=thisday.getYear()+1900;intmymonth=thisday.getMonth()+1;intmydate

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論