蔣凌志
摘要:隨著計算機(jī)應(yīng)用技術(shù)與互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,教學(xué)活動的各個環(huán)節(jié)也在向互聯(lián)網(wǎng)上遷移。分析了考試的流程。用SSM框架技術(shù)實現(xiàn)了Java程序設(shè)計在線考試系統(tǒng),服務(wù)器用的是Tomcat,數(shù)據(jù)庫用的是MySql。該系統(tǒng)充分使用了工廠設(shè)計模式,面向接口的編程,自動裝配加載,注解,Mybatis等技術(shù),使得開發(fā)更方便,后期維護(hù)更便捷,系統(tǒng)運(yùn)行效率比較高。
關(guān)鍵詞:在線考試;SSM;JavaWeb;Spring;SpringMVC;Mybatis
中圖分類號:TP311.1 文章標(biāo)識碼:A
文章編號:1009-3044(2019)07-0142-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
Abstract: With the rapid development of computer application technology and Internet technology, all aspects of teaching activities are also migrating to the Internet. The process of examination is analyzed. The online test system of Java programming is implemented with SSM framework technology. Tomcat is used in the server and MySql is used in the database. The system makes full use of the technology of factory design mode, Interface-oriented programming, automatic assembly and loading, annotation, Mybatis and so on. It makes the development more convenient, the later maintenance more convenient, and the system runs more efficiently.
Key words: online examination; SSM; javaweb; spring; springMVC; mybatis
1 背景
現(xiàn)階段,學(xué)校中各種考試大都采用傳統(tǒng)的考試方式。在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出卷,考生考試,人工閱卷,成績評估和試卷分析。但隨著計算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,人們也利用這些技術(shù)來進(jìn)行在線考試,以減輕教師的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀、更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國際著名的計算機(jī)公司所舉辦的各種認(rèn)證考試絕大部分采用這種方式。為了適應(yīng)新形勢的發(fā)展,推出了Java程序設(shè)計在線考試系統(tǒng),使其發(fā)揮高效,便捷的作用,把老師從繁重的工作中解脫出來。[1-4]
2 技術(shù)選取
現(xiàn)在流行的SSM框架是Spring MVC ,Spring和Mybatis框架的整合,是一種標(biāo)準(zhǔn)的MVC模式,這個框架將整個系統(tǒng)劃分為View表現(xiàn)層,Controller層,Service層,DAO層四層。使用Spring MVC負(fù)責(zé)請求的轉(zhuǎn)發(fā)和視圖管理,Spring實現(xiàn)業(yè)務(wù)對象管理,Mybatis作為數(shù)據(jù)對象的持久化引擎。[5-8]
SpringMVC[6]:
1)客戶端發(fā)送請求到DispacherServlet(分發(fā)器)。
2)由DispacherServlet控制器查詢HandlerMapping,找到處理請求的Controller。
3)Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView。
4)DispacherServlet查詢視圖解析器,找到ModelAndView指定的視圖。
5)視圖負(fù)責(zé)將結(jié)果顯示到客戶端。
Spring[7]:平時開發(fā)接觸最多的容器就是IOC容器,它可以自動加載bean類,DAO類,Service類,有了這個機(jī)制,就不用在每次使用這個類的時候為它初始化。另外Spring的aop,事務(wù)管理等等都是經(jīng)常要用到的。
Mybatis[8]:Mybatis是對JDBC的封裝,它讓數(shù)據(jù)庫底層操作變的透明。Mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。Mybatis通過配置文件關(guān)聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進(jìn)行的SQL語句映射。在每次與數(shù)據(jù)庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執(zhí)行SQL命令。
3 系統(tǒng)設(shè)計
3.1 總體設(shè)計
3.1.1 設(shè)計需求
1)在線考試系統(tǒng)可以幫助教師完成一個考試從題目設(shè)計,考試安排,考試實施,考卷批改到分?jǐn)?shù)統(tǒng)計總結(jié)的所有工作。
2)所有的考試數(shù)據(jù)與試卷數(shù)據(jù)需要用數(shù)據(jù)庫技術(shù)進(jìn)行存儲和管理[3]。
3)考試數(shù)據(jù)的存放和處理必須對考試保密,需要一定的安全性保障[2]。
4)這個系統(tǒng)是分布式的,這意味著只要有考試客戶端可以連接到考試應(yīng)用服務(wù)器,任何考生在任何地方進(jìn)行身份確認(rèn),都能完成考試[3]。
5)題目最好有一定的穩(wěn)定性和隨機(jī)性。穩(wěn)定性可以保證每一次考試對每一個考生是公平的,隨機(jī)性可以避免作弊的發(fā)生[2]。
6)考試的部分結(jié)果在考生考完之后就可以知道,同時提供一個機(jī)會讓考生知道自己哪里做錯了,并給出反饋信息說明理由。
根據(jù)以上需求,做出如圖2所示的流程圖與圖3所示的系統(tǒng)設(shè)計圖。
學(xué)生信息管理:對學(xué)生的學(xué)號,姓名,班級,課程等數(shù)據(jù)進(jìn)行增刪改查操作。
題庫管理:對課程的題目進(jìn)行管理,對題目的難度,類型,分值,答案,所屬章節(jié)等數(shù)據(jù)進(jìn)行增刪改查操作。
試卷管理:從題庫中按不同模式進(jìn)行抽題組卷操作,作廢試卷,修改試卷操作。
考場管理:對選中的班級,抽中的試卷進(jìn)行開考操作,記錄時間,延長時間,指定交卷,到時自動交卷操作。
評卷管理:對客觀題進(jìn)行自動評卷,主觀題顯示答題要點(diǎn)與學(xué)生的作答,不顯示學(xué)生信息,由教師評卷。
成績管理:教師對考試成績進(jìn)行分析統(tǒng)計和察看。
3.2 數(shù)據(jù)庫設(shè)計
根據(jù)上面的系統(tǒng)設(shè)計,列出所需的數(shù)據(jù),設(shè)計出如圖4所示的數(shù)據(jù)庫設(shè)計圖。
3.3 詳細(xì)設(shè)計
本節(jié)以用戶注冊為例介紹。
1)先對總體配置文件web.xml進(jìn)行配置。
2)設(shè)置SpringMVC的配置文件applicationContext.xml:
設(shè)置自動掃描有Spring注解的類Controller層,Service層:
該配置會自動掃描所有在com.online.controller包中有Spring注解的Controller類,并自動進(jìn)行裝配注入。
該配置會自動掃描所有在com.online.service包中有Spring注解的Service類,并自動進(jìn)行裝配注入。
3)設(shè)置用戶管理的POJO類:
public class TmUser implements java.io.Serializable {
private Integer id;
}
4)設(shè)置用戶管理的Mybatis的映射文件TmUser.xml如圖7所示:
該Mapper中定義了一個注冊用戶的數(shù)據(jù)庫操作,使用到了Mybatis的動態(tài)SQL技術(shù),使用if來控制字段與值的添加和取消。可以根據(jù)條件來自動生成SQL語句。
5)設(shè)置請求視圖register.jsp
@ResponseBody
@RequestMapping("register.do")
public String register(TmUser tmUser,String u_usercode,String t,HttpSession session) {
Map
if (tmUserService.userRegister(tmUser)>0) {
date.put("code", "1");
date.put("message", "注冊成功");
}else{
date.put("code", "0");
date.put("message", "注冊失敗");
}
return JSONArray.toJSONString(date);
}
在register方法上進(jìn)行注解,響應(yīng)register.do的請求,在方法中調(diào)用了前面已配置好的注解的注冊服務(wù),得到結(jié)果。整個調(diào)用過程非常流暢簡潔,這就是Spring的魅力所在。
4 結(jié)束語
首先提出了設(shè)計需求,對考試流程進(jìn)行分析,根據(jù)需求與流程進(jìn)行了總體設(shè)計,進(jìn)而數(shù)據(jù)庫設(shè)計。用SSM框架實現(xiàn)了一個Java程序設(shè)計在線考試系統(tǒng)。當(dāng)然把題庫改了,可以應(yīng)用于其他科目的考試。這個系統(tǒng)可以大大減輕教師的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀、更加激發(fā)學(xué)生的學(xué)習(xí)興趣。由于使用了SpringMVC技術(shù),使用接口編程,所以后期的維護(hù)和更新會比較方便,可以像更換機(jī)器零件一樣更新服務(wù),實現(xiàn)新功能。
參考文獻(xiàn):
[1] 陳薈慧, 張新顏. 在線考試系統(tǒng)的分析與設(shè)計[J]. 計算機(jī)技術(shù)與發(fā)展, 2009, 19(10): 214-217.
[2] 武偉, 魏曉. 在線考試作弊防御方法的設(shè)計與實現(xiàn)[J]. 上海應(yīng)用技術(shù)學(xué)院學(xué)報: 自然科學(xué)版, 2006, 6(1): 49-51.
[3] 唐俊武, 南理勇, 左強(qiáng). 在線考試系統(tǒng)開發(fā)中的幾個問題及解決方法[J]. 計算機(jī)與數(shù)字工程, 2005, 33(8): 144-147.
[4] 葉溪溪, 吳觀茂. 在線考試系統(tǒng)分析與設(shè)計[J]. 電腦知識與技術(shù), 2016, 12(3): 104-106.
[5] 宋雪亞, 王傳安. 基于JSP的在線考試系統(tǒng)設(shè)計與實現(xiàn)[J]. 湖南工程學(xué)院學(xué)報: 自科版, 2017, 27(2): 33-38.
[6] 李洋. SSM框架在Web應(yīng)用開發(fā)中的設(shè)計與實現(xiàn)[J]. 計算機(jī)技術(shù)與發(fā)展, 2016, 26(12): 190-194.
[7] 鄒紅霆. 基于SSM框架的Web系統(tǒng)研究與應(yīng)用[J]. 湖南理工學(xué)院學(xué)報: 自科版, 2017, 30(1): 39-43.
[8] 王鶴琴, 汪煒瑋, 朱珍元. 基于SSM框架技術(shù)的辦公管理系統(tǒng)的研究[J]. 安徽警官職業(yè)學(xué)院學(xué)報, 2017, 16(3): 124-128.
【通聯(lián)編輯:謝媛媛】