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