【正文】
ology. Then, introducing the main functions of the system. From a practical application of the needs, the system design environment is mainly based on B / S mode, using JSP language, use of domestic popular development platform J2SE, SQL 2005 databases, JavaBean class packages to achieve JDBC data pool connections, thereby greatly to reduce the frequency of data scheduling. For the user submits a program testing, have adopted a strict test. In addition, in the development process,We have also excavated a large number of JSPspecific forms of development, so that online examination system has its own distinct characteristics.Keywords:JSP,JavaBean,JDBC,Examination System目 錄摘 要 IABSTRACT II1 緒論 1 引言 1 1 2 22 需求分析 3 3 3 B/S模式的優(yōu)點 3 4 4 4 5 5 5 JSP的特點 6 JSP與其他語言的區(qū)別 6 JavaBean 7 SQL 2005與JDBC技術(shù) 8 Tomcat 8 8 93 概要設計 10 10 10 11 12 ER圖設計 12 13 14 164 詳細設計 17 17 18 18 20 23 25 275 系統(tǒng)測試 28 28 Java類測試 28 JSP代碼片測試 28 29 29 31 32 33 336 工作總結(jié)和心得體會 34 34 34致 謝 35參考文獻 36附錄1:參考英文文獻 37附錄2:英文文獻翻譯 42VI重慶郵電大學計算機網(wǎng)絡專業(yè)自學考試本科畢業(yè)設計(論文)1 緒論 引言WWW是目前Internet上最主要的信息服務類型,它的影響逐漸深入到我們生活的方方面面,Internet技術(shù)的發(fā)展使得考試的技術(shù)手段和載體發(fā)生了革命性的變化,Internet的開放性、分布性的特點和基于Internet的巨大的計算能力使得考試突破了時間和空間的限制?,F(xiàn)在網(wǎng)絡技術(shù)逐漸滲入社會生活各個層面,傳統(tǒng)的考試方式必將面臨著變革,而Web網(wǎng)絡考試則是一個很重要的方向。試卷可以根據(jù)題庫中的內(nèi)容即時生成,可避免考試前的壓題;而且可以采用大量標準化試題,從而使用計算機判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進行統(tǒng)計、排序等操作。因此,采用Web網(wǎng)絡考試方式將是以后考試發(fā)展的趨勢。Web技術(shù)超越了傳統(tǒng)的“客戶機/服務器”兩層結(jié)構(gòu),采用了三層體系結(jié)構(gòu):用戶界面層/服務層/數(shù)據(jù)庫層,因此Web結(jié)構(gòu)有著更好的安全性,在用戶機上不需要安裝任何應用程序,應用程序可以安裝在事務層所在的計算機上,試題存放在數(shù)據(jù)庫服務器上,當然,事務層和數(shù)據(jù)庫可以是同一臺機器(如果條件允許,還是應該把這兩層分開在不同的計算機上),本文所討論的在線考試系統(tǒng)是基于JSP技術(shù)實現(xiàn)。數(shù)據(jù)庫安全、共享、數(shù)據(jù)傳輸過程的安全性、訪問控制技術(shù)、身份識別技術(shù)都是構(gòu)建考試系統(tǒng)要考慮的問題。通過Server端的后臺試題庫動態(tài)生成考卷和對于標準化的試題即時評定成績。 搜集考試系統(tǒng)用戶需求 進行需求分析 進行系統(tǒng)功能規(guī)劃和模塊設計 編寫代碼實現(xiàn)考試系統(tǒng)并實施測試 進行系統(tǒng)綜合調(diào)試第一部分:緒論。主要介紹了在線考試系統(tǒng)的概況和用戶對系統(tǒng)的需求,以及本論文的研究背景和研究工作;第三部分:概要設計。通過代碼編寫,實現(xiàn)考試系統(tǒng)的所有的功能;第五部分:系統(tǒng)測試。本章對全文工作進行總結(jié),并指出還需要改進的地方。服務器端主要實現(xiàn)對數(shù)據(jù)訪問、控制、對客戶瀏覽器提供服務,實現(xiàn)瀏覽器與服務器之間的交互;而瀏覽器主要與服務器端進行數(shù)據(jù)交換、采取信息、實現(xiàn)人機交互。 系統(tǒng)的三層體系結(jié)構(gòu) B/S模式的優(yōu)點B/S模式是基于標準的開放、非專有的,是經(jīng)標準化組織指定而非單一廠商制定的。在客戶機上的工作較少,故障較少。B/S的技術(shù)維護工作主要集中在服務器,客戶機的工作維護量很少,因為客戶機只要簡單的Web Browser技術(shù)便可實現(xiàn)用戶的需要,維護簡單,而C/S模式則不同,它的服務器與客戶機的維護工作量很大。學生可以通過瀏覽器方便、快捷的訪問教師服務器端,進行在線評估教學成果,減少人工干預,科學地進行評定成績。學生(Students)學生即一個班中的注冊用戶,憑學號、姓名注冊之后,登錄系統(tǒng)后擁有選擇當前考試科目、在線測試等功能,當開考信號發(fā)出后,考試為統(tǒng)一考試時,學生只能在規(guī)定的時間里,固定的科目內(nèi)答題并交卷;如考試為不定時考試時,學生可以在不同時間內(nèi),完成定量時間的題目并交卷,交評判系統(tǒng)。教師(Teachers)教師,即學生的直接作用對象,教師可以對學生的信息進行處理,查看班級、考試在線人數(shù)、缺考人數(shù),進行出題管理,試卷的選配,以及考試完后直接提取、查詢考試的成績。 人員信息管理業(yè)務系統(tǒng)實現(xiàn)對人員注冊、登錄及日后考試成績的統(tǒng)一調(diào)度,生成報表,使系統(tǒng)的各種角色各司其職。 試卷評定業(yè)務將學生的答題試卷根據(jù)標準答案統(tǒng)一評定成績,生成學生成績。 網(wǎng)絡通信實現(xiàn)學生機與老師服務器的互通性,是實現(xiàn)本系統(tǒng)的前提,必須構(gòu)建好小型局域網(wǎng),分配好IP地址,架設Web服務器,實現(xiàn)可操作性。 容錯機制考生用戶在和教師在考試過程中,難免不會產(chǎn)生操作或其他錯誤,以及數(shù)據(jù)庫的容錯,都需要一個良好的容錯機制來進行控制。JSP(Java Server Pages)是由Sun Micro Systems公司于1999年6月倡導,許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。Web服務器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。所有程序操作都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅僅是得到的結(jié)果,從而對客戶瀏覽器的要求很低。 在服務器端,JSP引擎解釋JSP標識和腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBean組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文件),并且將結(jié)果以HTML(或者XM)頁面的形式發(fā)送回瀏覽器。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團體所使用。標準的JSP標識能夠訪問和實例化JavaBean組件,設置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能。 JSP與其他語言的區(qū)別ASPASP即Active Sever Pages,由微軟公司開發(fā)的類似HTML、Script(腳本語言)、與CGI的結(jié)合體。它相比HTML更有靈活性,比一般的腳本語言要安全得多。缺點是局限于微軟的操作系統(tǒng),工作環(huán)境單一,又因ActiveX對象具有對象特性,所以ASP技術(shù)要實現(xiàn)跨平臺工作將變得不易。它與HTML語言具有良好的兼容性,可以在腳本代碼中加入HTML標簽,可提供標準的數(shù)據(jù)庫接口,兼容性強,擴展性強,可進行對象編程。分為用戶接口和沒有用戶接口兩種。它較多的運用于可視化領域,但最近幾年逐步在非可視化領域里占有一席之地。 SQL 2005與JDBC技術(shù)本系統(tǒng)采用微軟的SQL 2005作為后臺數(shù)據(jù)庫,它的特點是提供數(shù)據(jù)鏡像、在線檢索等強大功能,這些都是系統(tǒng)中所必備的。Sun公司還開發(fā)了JDBC-ODBC bridge,利用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等數(shù)據(jù)庫。它主要應用于中小型網(wǎng)站架設和并發(fā)訪問不是很多的環(huán)境條件下,它不僅可以自己可以單獨作為Web服務器,同時也可作為結(jié)合其他的Web服務器的支持部件,或只擔任Servlet或者JSP的容器。數(shù)據(jù)庫:采用SQL 2005數(shù)據(jù)庫,運用于服務器端。硬件環(huán)境:服務器端: CPU:PIII500以上 ,內(nèi)存:512M以上。 本章主要概要分析了用戶和系統(tǒng)需求,實現(xiàn)開發(fā)系統(tǒng)的相關技術(shù)和平臺。人員信息管理模塊對考生、教師人員信息進行管理,管理員有進行高級管理的權(quán)限,對考生所屬班級、成績等進行查詢、管理。教學管理模塊考生交卷之后,自動評定考生成績,以提供老師、管理員查詢成績,教師可以根據(jù)學生個人信息和集體信息進行查詢,檢驗實時的教學效果。注冊用戶登錄之后,則會迭代,來進行身份判定,根據(jù)用戶注冊的身份不同,則系統(tǒng)會指引向不同的界面。教程教學接口主要是為考生考試和教師查看教學成果而設計。教師實體:用戶身份id,用戶名username,用戶密碼passwd,用戶類型type,用戶所教年級grade,用戶教學科目Exam_sub。試題實體:試題編號id,試題題目Exap_topic,試題內(nèi)容Exam_con,用戶考試科目Exam_sub,試題答案Exam_answer,試題類型type。管理員和教師、學生的關系是管理1:m,學生和試題的關系是答題m:n,教師與試題的關系是出題1:m,教師和成績的關系是查詢1:m。 管理員表(Administrators)主要用于存放系統(tǒng)最高權(quán)限的管理員的相關信息。 教師表字段類型長度允許為空主鍵idInt10否是usernameVarchar20否否passwdVarchar40是否Typeint4否否gradeVarchar20否否Exam_subVarchar100是否 學生信息表(Students)主要用于存放學生相關的信息。 試題表字段類型長度允許為空主鍵Exam_idInt10否是Exam_topicVarchar100否否Exam_conVarchar100是否Exam_answerVarchar60是否Exam_typeVarchar60是否Exam_subVarchar100是否 成績表(Score)主要用于存放學生考試后的成績。對數(shù)據(jù)庫的連接管理操作,可以用一個Java類來實現(xiàn),代碼如下:public class DBConMgr {//定義一個連接管理類private String driverName=。//數(shù)據(jù)庫用戶名private String userPwd=。DatabaseName=Exam 。 //數(shù)據(jù)庫連接對象public Statement sm=null。 //注冊驅(qū)動程序conn = (url,userName , userPwd)。(數(shù)據(jù)庫連接成功!)。 (數(shù)據(jù)庫連接失敗!)。 else return new String((gb2312),iso88591)。 } return NULL。}()。(數(shù)據(jù)庫關閉失?。?。4 詳細設計本系統(tǒng)的主目錄在Eclipse的/exam1,::,其主要代碼:%String spswd。//將傳過來的學號轉(zhuǎn)換ISO8859編碼String sname=String(request.getParameter(sname).getBytes(8859_1))。//進行性別值的傳遞String sno=(sno)。//進行年級的值傳遞String sclass=request..getParameter(sclass)。String sql1=select * from student where snum=39。//根據(jù)id號進行查詢ResultSet rs1=(sql1)。%jsp:forward page=/%}else{()。+id+39。+snum+39。+username+39。 +ssex+39。 +sno+39。 +grade+39。 +sclass+39。+sdep+39。+1+39。+2+39。regBean.executeUpdate(sql2)。 charset=gb2312%% page language=java import=.*%jsp:useBean id=subject scope=page class=/%String wnum=new String((wnum).trim().getBytes(8859_1))。String sql=select tpri from administrators where wnum=39。 and wpswd=39。ResultSet rs=subject .executeQuery(sql)。(wnum,wnum)