劉敏娜
?
SSI框架在教學(xué)資源平臺應(yīng)用的研究
劉敏娜
摘 要:基于構(gòu)建具有開放式的,可擴展性的教學(xué)資源平臺的目的,采用Spring,Struts2和iBatis技術(shù),使用框架搭建起符合WEB2.0標準的教學(xué)平臺。平臺具有用戶管理,角色管理,資源管理,留言等功能模塊。通過實驗,證實該系統(tǒng)能滿足學(xué)生在線學(xué)習(xí),下載資源,留言等學(xué)習(xí)需求。因為使用的是三大框架搭建,并且應(yīng)用MVC分層結(jié)構(gòu),因此系統(tǒng)在發(fā)生需求變更時,如增加學(xué)生的瀏覽記錄功能時,只需要修改少量代碼,即可進行擴展。
關(guān)鍵詞:Spring;Struts2;iBatis;MVC
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,教育領(lǐng)域的信息化進程進一步深入。教育部在2012年的《教育信息化十年發(fā)展規(guī)劃(2011 -2020年)》中指出,到2020年,基本建成人人可享有優(yōu)質(zhì)教育資源的信息化學(xué)習(xí)環(huán)境;各級各類教育的數(shù)字資源日趨豐富并得到廣泛共享,優(yōu)質(zhì)教育資源公共服務(wù)平臺逐步建立,政府引導(dǎo)、多方參與、共建共享的資源建設(shè)機制不斷完善。教學(xué)資源的信息化,也就是將數(shù)字化的資源整合到網(wǎng)絡(luò)教育平臺,建立基于WEB2.0的教學(xué)資源網(wǎng)站,將教學(xué)視頻,課件,素材,作業(yè)發(fā)布于此平臺,學(xué)生可以方便的獲取資源,合作學(xué)習(xí),分享學(xué)習(xí)成果和經(jīng)驗,從而提高教學(xué)的質(zhì)量和效率[1]。
現(xiàn)在互聯(lián)網(wǎng)上已經(jīng)存在一些教學(xué)資源平臺,在教學(xué)知識傳播方面,這些網(wǎng)站普遍做的比較好,但是同時也存在一定的問題,如教學(xué)平臺資源更新速度慢,缺乏持續(xù)發(fā)展的動力[2];各資源平臺相互獨立,缺少共享,造成資源的浪費?;诖四康?,開發(fā)一款具有可擴展性,可維護性,可重用性的教育教學(xué)信息平臺迫在眉睫。
課題采用Spring,Sturts2.0,iBatis技術(shù),運用java語言,Mysql數(shù)據(jù)庫,建立一個具有開放性和互動性的平臺。
SSI框架是支持MVC(模型、視圖、控制)的框架,由Spring,Struts和ibatis3種技術(shù)融合而成。在框架中,Struts技術(shù)比較擅長控制層處理,Spring技術(shù)主要特長為業(yè)務(wù)邏輯控制,ibatis專注于持久層開發(fā)[3]。這3種技術(shù)的融合,有助于開發(fā)低耦合的、高重用的、可維護性強的web系統(tǒng)。
1)Spring技術(shù)
Spring是一種輕量級的Java開發(fā)框架,設(shè)計框架目的是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而設(shè)計的??蚣懿捎梅謱蛹軜?gòu),可以自由選擇組件,面向方面的編程(AOP),可以方便地集成其它優(yōu)秀框架,利用框架提供的控制反轉(zhuǎn)技術(shù)(IOC),使控制權(quán)轉(zhuǎn)給容器,可以將對象之間的依賴關(guān)系由Spring來管理,降低開發(fā)難度。
2)Struts2技術(shù)
Struts2是以WebWork為核心,采用攔截器機制處理用戶請求,使得業(yè)務(wù)邏輯控制器與ServletAPI分離。所有基于Struts2的應(yīng)用程序都是基于c/s http交換協(xié)議,可以在業(yè)務(wù)邏輯中使用java語言進行設(shè)計。Struts2在數(shù)據(jù)傳遞方面,提供了強大的OGNL標簽功能,能夠在action中定義變量來與jsp頁面數(shù)據(jù)進行傳值;在跳轉(zhuǎn)控制方面,簡化了配置文件的定義,使頁面和action之間的交換更加簡潔和直觀[4]。
3)iBatis技術(shù)
iBatis是一種輕量級的OR Mapping框架,提供了半自動化對象關(guān)系映射,開發(fā)人員通過在配置文件中編寫具體的sql語句,從而實現(xiàn)數(shù)據(jù)庫的操作。
4)三種技術(shù)的融合
SSI框架基于MVC分層模型,MVC強調(diào),WEB系統(tǒng)分為視圖層,控制層和模型層,在SSI框架中,Struts2通過標簽實現(xiàn)action與視圖層的數(shù)據(jù)交互從而完成控制層作用。Spring完成業(yè)務(wù)邏輯控制,利用Spring的依賴注入對業(yè)務(wù)邏輯類和dao類的實例控制。通過iBatis提供的半自動化對象映射,進行持久層開發(fā)。項目中引入SSI框架,可以降低代碼的耦合度,增加系統(tǒng)的健壯性[5]。
2.1需求分析
系統(tǒng)分為三種角色,普通教師,學(xué)生和系統(tǒng)管理。普通教師具有資源上傳,回復(fù)留言,個人中心等功能[6]。學(xué)生具有在線查看資源,上傳作業(yè),資源下載,在線留言等功能;管理員擁有用戶管理,資源管理等操作權(quán)限。
2.2系統(tǒng)總體設(shè)計
1.系統(tǒng)總體設(shè)計
根據(jù)需求分析,確定系統(tǒng)的功能模塊分為資源管理,用戶管理,留言管理,角色管理,資源下載,留言發(fā)布等部分。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
2.系統(tǒng)數(shù)據(jù)模型
學(xué)生、管理員、留言表實體之間的關(guān)系E_R圖,如圖2所示:
圖2 E_R圖
SSI模型將系統(tǒng)分為業(yè)務(wù)邏輯層,控制層和持久層。
1)業(yè)務(wù)邏輯層
通過Spring的控制反轉(zhuǎn),控制權(quán)轉(zhuǎn)向容器,由容器根據(jù)配置文件去創(chuàng)建實例并創(chuàng)建各個實例之間的依賴關(guān)系。通過配置類說明管理依賴關(guān)系。Spring根據(jù)這些配置內(nèi)部通過反射去動態(tài)的組裝對象。
以用戶管理模塊為例,容器自動實例化userAction,userService,userDAO對象。userDAO對象的sqlMapClient屬性經(jīng)過容器注入sqlMapClientTempleate的實例化對象,userDAO和roleDAO對象作為屬性來實例化userService對象。容器實例化流程圖如圖3所示:
圖3 容器實例化流程圖
2)控制層
Struts2 Filter檢查用戶發(fā)出的URL Pattern是否匹配預(yù)設(shè)格式,本項目是在web.xml中設(shè)置擴展名為do。設(shè)置核心語句如下:
<filter-mapping>
<filter-name>session</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
如果匹配成功,通過攔截器處理請求,將前置攔截器攔截處理后的數(shù)據(jù)交給Action,如user.jsp頁面定義提交后交給userQueryAjax處理。在user-struts.xml中定義由userAction類中的query方法具體執(zhí)行操作。
<action name="userQueryAjax" class="userAction" method="query">
<result type="json">
<param name="root">result</param></result></action>
在執(zhí)行query方法時,需要通過反射機制為成員變量映射值,通過Spring依賴注入,通過持久層執(zhí)行底層SQL語句。將持久層查詢的數(shù)據(jù)經(jīng)過后置攔截器,數(shù)據(jù)顯示在JSP
代碼組成的視圖中。Struts處理流程圖如圖4所示:
圖4 Struts處理流程圖
3)持久層
持久層是由多個xml配置文件組成,在配置文件中指明命名空間,結(jié)果集和實體類之間的映射,以及多個select語句塊。以根據(jù)id查詢用戶名的select為例,核心代碼如下:
<select id="queryUserNameFortypeid" resultMap="userVO" parameterClass="java.util.Ha-shMap">
select sys_user.* from sys_user
where
sys_user.name = #username#
and
sys_user.type_id =
#type_id#
</select>
根據(jù)用戶傳入的HashMap類型的數(shù)據(jù),來判斷Map中的key為“username”的value與用戶表中的name字段值是否一致,同時Map中key為“type_id”的value與用戶表中的type_id字段值匹配。如果一致返回相應(yīng)的記錄。
教學(xué)資源平臺是在教師和學(xué)生之間搭建的一個教與學(xué)的平臺,方便教師了解學(xué)生的學(xué)習(xí)情況,并有針對性的指導(dǎo)。因此,這個平臺是對傳統(tǒng)教學(xué)模式的改革。目前,教學(xué)平臺已經(jīng)投入了使用,學(xué)生在網(wǎng)站上可以進行自主學(xué)習(xí),針對疑惑的問題在線留言。教師可以隨時隨地發(fā)布教學(xué)資源,并對學(xué)生的疑問進行解答,而且通過學(xué)生瀏覽網(wǎng)站記錄查詢,可以了解學(xué)生自主學(xué)習(xí)的情況。因此,這套系統(tǒng)能有效的提高教學(xué)質(zhì)量。
教學(xué)資源平臺開發(fā)中使用了SSI框架,使用該框架可以降低代碼的耦合度,增強代碼的健壯性和可重用性,可以加快開發(fā)速度,便于今后決策支持系統(tǒng)擴展和系統(tǒng)升級。
參考文獻
[1] 寇援援.網(wǎng)絡(luò)教學(xué)平臺的發(fā)展現(xiàn)狀及趨勢[J].電子設(shè)計工程.2011.19(16):123-126. 02-28.
[2] 陳菁華.國內(nèi)教育網(wǎng)站現(xiàn)狀及發(fā)展[J].高等函授學(xué)報.2000,(5):37-39.
[3] 吳鋒. 基于SSI框架JavaEE技術(shù)研究[D]. 合肥工業(yè)大學(xué).2009.
[4] 孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2004:1-17.
[5] 解勇.基于SSI框架的中小型企業(yè)網(wǎng)站新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn) [D].吉林大學(xué).2014.
[6] 黃輝.教學(xué)資源庫平臺的研宄與設(shè)計[D].北京北京交通大學(xué).2008.
Research on Application of SSI Framework in Teaching Resource Platform
Liu Min na
(1. Xianyang Normal University, College of Information Engineering, Xianyang 712000, China; (2. Xianyang Normal University Institute of Graphics and Image Processing, Xianyang 712000, China)
Abstract:Based on the construction of open, extensible platform of teaching resources of the purpose, using Spring, Struts2 and iBatis technology, using the framework to build WEB2.0 compliant teaching platform The platform with user management, role management, resource management, message function module Through the experiment, it is proved that the system can satisfy the students' online learning, download resources, message and other learning needs. Because of the use of the three is to build a framework, and application of MVC hierarchical structure, so the system in the event of demand changes, such as increasing students' browsing function, only need to modify a small amount of code, can be extended.
Key words:Spring; Struts2; iBatis; MVC
收稿日期:(2015.12.15)
作者簡介:劉敏娜(1981-),女,陜西榆林人,碩士學(xué)位,講師,研究方向:CUDA并行計算,機器學(xué)習(xí),咸陽,712000
基金項目:1.陜西省教育廳專項基金資助項目(15JK1803);2.陜西省科學(xué)技術(shù)研究發(fā)展計劃項目(2013JM8037);3.咸陽師范學(xué)院專項科研基金項目(14XSYK036).
文章編號:1007-757X(2016)02-0043-02
中圖分類號:G40-057
文獻標志碼:A