• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SSH框架的考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2013-04-29 00:44:03葉廣仔劉曉蔚
      計(jì)算機(jī)時(shí)代 2013年7期
      關(guān)鍵詞:考試系統(tǒng)

      葉廣仔 劉曉蔚

      摘 要: 采用SSH框架對(duì)考試系統(tǒng)進(jìn)行整合,利用Struts完成控制層的管理,利用Hibernate實(shí)現(xiàn)數(shù)據(jù)持久化,通過(guò)Spring處理業(yè)務(wù)邏輯。通過(guò)控制器將表現(xiàn)邏輯和業(yè)務(wù)邏輯解耦,可以提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可重用性;通過(guò)Hibernate框架在關(guān)系型數(shù)據(jù)庫(kù)和Java對(duì)象之間實(shí)現(xiàn)了一個(gè)自動(dòng)映射,可使得程序員對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)更簡(jiǎn)單。

      關(guān)鍵詞: 考試系統(tǒng); Struts; Spring; Hibernate

      中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)07-28-04

      0 引言

      傳統(tǒng)教學(xué)中,要進(jìn)行一場(chǎng)考試,需要教師編寫試卷、印試卷、安排考試、監(jiān)考、收集試卷、評(píng)改試卷等,是一個(gè)繁雜的過(guò)程,需要大量人力、物力以及時(shí)間的投入,已經(jīng)越來(lái)越不適應(yīng)當(dāng)今學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補(bǔ)充和發(fā)展方向,在線考試不僅節(jié)省了資源,而且提高了評(píng)分的客觀性、公正性和準(zhǔn)確度,大大提高了考試工作的效率。

      本系統(tǒng)通過(guò)J2EE技術(shù)[1]的SSH框架實(shí)現(xiàn)網(wǎng)絡(luò)在線考試系統(tǒng)的整合,利用Struts完成控制層的管理,用Hibernate實(shí)現(xiàn)數(shù)據(jù)持久化,以及通過(guò)Spring處理業(yè)務(wù)邏輯[2]。在線考試系統(tǒng)的開發(fā),利用構(gòu)件化的開發(fā)模式,以更好地實(shí)行代碼的重用性,同時(shí)為以后的升級(jí)和維護(hù)提供很大的便利[3]。

      1 系統(tǒng)SSH框架設(shè)計(jì)

      本系統(tǒng)采用SSH框架[4]進(jìn)行系統(tǒng)開發(fā)的整合,如圖1所示,為系統(tǒng)后臺(tái)的目錄結(jié)構(gòu),主要包含Action包、Bean包、Service包,以及beans.xml和struts.xml配置文件。其中action包中的類利用Struts框架實(shí)現(xiàn)考試系統(tǒng)控制層,Bean包中的類文件實(shí)現(xiàn)數(shù)據(jù)的封裝并通過(guò)Hibernate框架與關(guān)系數(shù)據(jù)庫(kù)中的表格實(shí)現(xiàn)映射,以及Service包中的類文件通過(guò)Spring框架處理系統(tǒng)服務(wù)器端的業(yè)務(wù)邏輯。通過(guò)3個(gè)框架的結(jié)合形成一種構(gòu)件化的系統(tǒng)開發(fā)模式。

      1.1 Struts框架實(shí)現(xiàn)

      Struts2框架[5]中核心組件就是Action類,用于封裝客戶端的請(qǐng)求并調(diào)用業(yè)務(wù)層的Service類,其中通過(guò)web.xml文件配置過(guò)濾器、通過(guò)struts.xml文件配置客戶端頁(yè)面請(qǐng)求的跳轉(zhuǎn)。

      ⑴ web.xml文件與struts.xml文件配置

      如下為web.xml配置文件的關(guān)鍵代碼:

      contextConfigLocationclasspath:beans.xml

      org.springframework.web.context

      .ContextLoaderListener

      struts2

      org.apache.struts2.dispatcher.ng.filter

      .StrutsPrepareAndExecuteFilter

      通過(guò)配置標(biāo)簽的參數(shù)屬性指定Spring框架的配置文件為beans.xml,配置標(biāo)簽的監(jiān)聽類以便初始化Spring容器。配置標(biāo)簽的過(guò)濾類可指定Struts框架的過(guò)濾器為StrutsPrepareAndExecuteFilter類。

      另外,在struts.xml配置文件中利用標(biāo)簽配置客戶端的請(qǐng)求跳轉(zhuǎn),并通過(guò)標(biāo)簽指定Struts框架的Action類交給Spring框架管理。

      html/teacherModule.html

      ⑵ Action類實(shí)現(xiàn)

      以學(xué)生action類為例介紹action包中控制類的實(shí)現(xiàn),如下為StudentAction類的實(shí)現(xiàn)代碼:

      @Controller("studentAction") @Scope("prototype")

      public class StudentAction extends ActionSupport {

      @Resource

      private StudentService studentService;

      @Resource

      private ClassService classService;

      }

      其中,通過(guò)注釋@Controller指定StudentAction類為控制類,通過(guò)注釋@Resource對(duì)bean進(jìn)行裝配,實(shí)現(xiàn)屬性的自動(dòng)注入。

      1.2 Spring框架實(shí)現(xiàn)

      Spring框架[6]提供了依賴注入來(lái)實(shí)現(xiàn)容器對(duì)Bean的管理,核心容器的主要組件是 BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。

      ⑴ beans.xml配置文件

      在beans.xml配置文件,通過(guò)標(biāo)簽隱式地向 Spring 容器注冊(cè)4個(gè)BeanPostProcessor以實(shí)現(xiàn)注釋驅(qū)動(dòng)、屬性文件引入、加載期植入等功能,利用標(biāo)簽設(shè)置數(shù)據(jù)源dataSource的連接參數(shù),標(biāo)簽配置Hibernate框架的sessionFactory工廠類,以及配置事務(wù)管理器transaction-manager。部分配置代碼如下:

      ⑵ 業(yè)務(wù)層Bean實(shí)現(xiàn)

      在命題計(jì)劃業(yè)務(wù)處理Bean(PapConstructServiceBean)中通過(guò)注釋來(lái)實(shí)現(xiàn)依賴注入,如:@Service用于標(biāo)注業(yè)務(wù)層組件@Transactional,聲明這個(gè)Service所有方法需要事務(wù)管理,@Resource按照配置給屬性注入實(shí)例。此外,實(shí)現(xiàn)了save()、queryByIds()、update()、delete()等方法,用于處理客戶端對(duì)命題計(jì)劃信息的添加、查詢、更新以及刪除等操作。

      @Service@Transactional

      public class PapConstructServiceBean implements

      PapConstructService {

      public void save(PaperConstruct papcons) { … }

      public void delete(int... ids) { … }

      public List queryByIds(Integer...ids) { … }

      public void update(PaperConstruct... consts) { … }

      }

      1.3 Hibernate框架實(shí)現(xiàn)

      Hibernate框架[7]是一個(gè)對(duì)象關(guān)系映射(ORM)工具。對(duì)象關(guān)系映射ORM是一個(gè)將實(shí)體/類映射到關(guān)系數(shù)據(jù)庫(kù)表的編程方法。

      ⑴ 配置文件

      由于SSH框架的整合,Hibernate框架的SessionFactory配置在Spring框架的beans.xml配置文件中,交由Spring框架管理實(shí)體Bean。其中標(biāo)簽指定每個(gè)POJO類對(duì)應(yīng)的*.hbm.xml配置文件。標(biāo)簽設(shè)置Hibernate框架的SQL方言、自動(dòng)更新數(shù)據(jù)庫(kù)表結(jié)構(gòu)。

      cn/edu/dgpt/exam/bean/Choise.hbm.xml

      hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

      此外,為了實(shí)現(xiàn)實(shí)體類與關(guān)系表的映射,對(duì)于每個(gè)POJO類都配置有一個(gè)與類名相同的*.hbm.xml配置文件,配置文件中為了反映實(shí)體類間一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多,以及組件等多種關(guān)聯(lián)關(guān)系的映射,采用了、

      以及等多種標(biāo)簽來(lái)指定。以下為PaperConstruct類的配置文件部分代碼:

      lazy="false" cascade="save-update"/>

      cascade="save-update,delete">

      ⑵ 關(guān)系數(shù)據(jù)庫(kù)的自動(dòng)生成

      通過(guò)Hibernate框架的指定hibernate.dialect屬性值為org.hibernate.dialect.MySQL5Dialect,以及hibernate.hbm2ddl.auto屬性為update,Hibernate框架將自動(dòng)在MySQL數(shù)據(jù)庫(kù)創(chuàng)建或更新與實(shí)體類相映射的關(guān)系表,如圖2所示,從而使開發(fā)人員大大地節(jié)省開發(fā)時(shí)間。

      2 考試系統(tǒng)的實(shí)現(xiàn)

      考生輸入學(xué)號(hào)和密碼登錄系統(tǒng)后,選擇對(duì)應(yīng)的試卷可進(jìn)入考試界面,如圖3所示。系統(tǒng)根據(jù)命題計(jì)劃從題庫(kù)中抽取不同的題型,如判斷題、選擇題、填空題、簡(jiǎn)答題或編程題進(jìn)行組卷??忌痤}時(shí),系統(tǒng)有倒計(jì)時(shí)的功能,考試結(jié)束時(shí)還沒(méi)提交試卷的話系統(tǒng)將自動(dòng)交卷。

      考試結(jié)束后,考試系統(tǒng)可對(duì)客觀題進(jìn)行自動(dòng)批閱,這縮短了教師批改試卷的時(shí)間,在減少人力同時(shí)提高了評(píng)分的客觀性,從而提高了考試工作的效率。

      試卷批閱界面如圖4所示。

      3 結(jié)束語(yǔ)

      本系統(tǒng)通過(guò)Struts+Spring+Hibernate框架實(shí)現(xiàn)網(wǎng)絡(luò)在線考試系統(tǒng)的整合,通過(guò)模塊化設(shè)計(jì)提高代碼的重用性,同時(shí)提高代碼的可維護(hù)性和穩(wěn)定性。從而使系統(tǒng)結(jié)構(gòu)清晰,對(duì)程序的維護(hù)提供很大的便利。

      本系統(tǒng)的設(shè)計(jì)還處于初期階段,下一階段將在系統(tǒng)前、后臺(tái)的性能方面作進(jìn)一步的研究,實(shí)現(xiàn)SSH與ExtJS框架[8]的對(duì)接,引入前后臺(tái)緩存,以減少Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的工作量。

      參考文獻(xiàn):

      [1] 翟高粵.基于J2EE技術(shù)的SSH框架的改進(jìn)及應(yīng)用[J].計(jì)算機(jī)時(shí)代,2012.10:24-26

      [2] 于湛麟,李仲秋,任永昌.SSH框架實(shí)現(xiàn)MVC架構(gòu)的電子商務(wù)軟件平臺(tái)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012.22(10):169-172

      [3] 黃華.基于SSH框架的題庫(kù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012.20:192-193

      [4] 青島海爾軟件有限公司.Java EE輕量級(jí)解決方案——S2SH[M].電子工業(yè)出版社,2011.

      [5] 葉健毅.精通Java EE:Eclipse Struts 2 Hibernate Spring整合應(yīng)用案例[M].人民郵電出版社,2010.

      [6] 陳天河.輕量級(jí)Web應(yīng)用開發(fā)寶典:Struts 2.1+Hibernate 3.5+Spring 3.0整合開發(fā)[M].電子工業(yè)出版社,2010.

      [7] 梁立新.項(xiàng)目實(shí)踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開發(fā)[M].電子工業(yè)出版社,2006.

      [8] Shea Frederick, Colin Ramsay, Steve 'Cutter' Blades著.Ext JS學(xué)習(xí)指南[M].人民郵電出版社,2009.

      猜你喜歡
      考試系統(tǒng)
      基于VHD技術(shù)的通用計(jì)算機(jī)考試系統(tǒng)的應(yīng)用研究
      銅仁供電局安規(guī)在線學(xué)習(xí)考試系統(tǒng)開發(fā)與研究
      藥學(xué)實(shí)驗(yàn)教學(xué)中心培訓(xùn)考試系統(tǒng)的建設(shè)
      基于PHP技術(shù)的計(jì)算機(jī)基礎(chǔ)考試系統(tǒng)的開發(fā)
      基于IRT和XML的考試系統(tǒng)構(gòu)建初探
      科技視界(2016年21期)2016-10-17 16:52:31
      基于MVC設(shè)計(jì)與實(shí)現(xiàn)高校廉政文化考試系統(tǒng)
      信阳市| 彭水| 新昌县| 固原市| 巴彦县| 丁青县| 岗巴县| 大同县| 通辽市| 沈丘县| 鹰潭市| 涪陵区| 宁陕县| 台中县| 邢台县| 林西县| 昆明市| 黑水县| 平南县| 阳谷县| 永康市| 鄂托克前旗| 通化县| 南和县| 紫云| 罗平县| 永城市| 缙云县| 肇源县| 龙井市| 无锡市| 南涧| 韶关市| 黑河市| 当雄县| 孟津县| 河北区| 德庆县| 芷江| 汤原县| 龙江县|