劉敏娜,趙 薔
(1.咸陽師范學(xué)院 計算機(jī)學(xué)院,陜西 咸陽 712000;2.咸陽師范學(xué)院 圖形圖像處理研究所,陜西 咸陽 712000)
SSI技術(shù)在教學(xué)資源平臺應(yīng)用的研究
劉敏娜1,2,趙 薔1
(1.咸陽師范學(xué)院 計算機(jī)學(xué)院,陜西 咸陽 712000;2.咸陽師范學(xué)院 圖形圖像處理研究所,陜西 咸陽 712000)
開放和可擴(kuò)展的教學(xué)資源平臺能夠向在校師生提供資源豐富、內(nèi)容詳實的學(xué)習(xí)與參考資料,有助于提高教學(xué)質(zhì)量。采用Spring、Struts2和iBatis技術(shù),基于SSI框架按照WEB2.0標(biāo)準(zhǔn),構(gòu)建了具有開放式和可擴(kuò)展性的教學(xué)資源平臺。該平臺由用戶管理、角色管理、資源管理、留言等功能模塊組成。當(dāng)平臺的后臺數(shù)據(jù)發(fā)生變化時,管理員根據(jù)所需要生成的任務(wù)類型,在任務(wù)選項中選擇動態(tài)生成的HTML頁面,而瀏覽者訪問的是靜態(tài)HTML文件,從而避免了重復(fù)訪問數(shù)據(jù)庫,并有效提高了平臺訪問的性能。實驗結(jié)果表明,所構(gòu)建的教學(xué)資源平臺系統(tǒng)可滿足學(xué)生在線學(xué)習(xí),下載資源,留言等方面的學(xué)習(xí)需求,且界面友好、操作簡單。由于所構(gòu)建的平臺系統(tǒng)基于三大框架搭建,且采用MVC分層結(jié)構(gòu),因此當(dāng)應(yīng)用需求發(fā)生變化時,只需要少量代碼修改即可進(jìn)行功能拓展。
教學(xué)資源平臺;三大框架;分層結(jié)構(gòu)
互聯(lián)網(wǎng)時代的到來,對傳統(tǒng)的教學(xué)模式提出了挑戰(zhàn),僅僅依靠課堂內(nèi)50分鐘教學(xué),教學(xué)內(nèi)容有限,傳授的信息量有限,且學(xué)生的疑問不能充分解答。針對這些問題,很多學(xué)校開展了在線課堂活動,即利用互聯(lián)網(wǎng)平臺,在師生之間建立起溝通的橋梁,教師可以發(fā)布教學(xué)資源,在線輔導(dǎo)答疑,學(xué)生可以在線提交作業(yè),學(xué)習(xí)課程。但是,目前互聯(lián)網(wǎng)上的教學(xué)資源平臺存在一定的不足,如不同的教學(xué)資源平臺之間缺少共享性,教學(xué)資源更新慢,教師也無法了解學(xué)生的在線學(xué)習(xí)情況,等等[1]。因此,開發(fā)一款具有開放性、實用性的教學(xué)系統(tǒng)十分必要。
該系統(tǒng)基于Struts2、Spring和iBatis框架,數(shù)據(jù)庫為MySQL,由于使用了框架技術(shù),因此具有非常好的擴(kuò)展性。該系統(tǒng)具有教學(xué)資源共享的功能,可為教師提供教學(xué)視頻、課件,可為學(xué)生在線答疑解惑,并具有了解學(xué)生登錄網(wǎng)站學(xué)習(xí)時間及訪問頁面等功能。目前,該平臺已經(jīng)投入應(yīng)用,運行良好[2-5]。
SSI的框架主要由Struts2、Spring以及iBatis組成,它們負(fù)責(zé)模型、視圖層和控制層中各層間的交互與協(xié)作,從而實現(xiàn)整個Web端的功能實現(xiàn)與整合。Struts目前主要負(fù)責(zé)數(shù)據(jù)的傳遞和控制,Spring則依靠其強(qiáng)大的依賴注入技術(shù)實現(xiàn)了類似bean托管和整合等功能,而iBatis作為一種輕量級的OR Mapping框架,提供了半自動化對象關(guān)系映射的實現(xiàn),自由度相對于Hibernate更高[6-8]。
(1)Spring技術(shù):Spring是一個開源框架,是為了解決企業(yè)應(yīng)用程序的開發(fā)復(fù)雜性而開發(fā)的。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架[9]。
(2)Struts2技術(shù):Struts是一種在整合了當(dāng)前動態(tài)網(wǎng)站技術(shù)中Srvlet、JSP、JavaBean、JDBC、XML等基礎(chǔ)上的主流Web開發(fā)框架,是一種基于經(jīng)典MVC的框架。采用Struts可以簡化MVC設(shè)計模式的Web應(yīng)用開發(fā)工作,很好地實現(xiàn)代碼重用,使開發(fā)人員從繁瑣的工作中解脫出來,從而開發(fā)具有強(qiáng)擴(kuò)展性的Web應(yīng)用[10]。
(3)iBatis技術(shù):iBatis是一個基于SQL映射,支持Java和.NET的持久層框架。它提供了一種半自動化的對象關(guān)系映射,通過XML文件中編寫SQL語句來對數(shù)據(jù)庫進(jìn)行增刪改查操作[11]。
(4)三種技術(shù)的融合:控制層利用Strtus2標(biāo)簽功能,在Action中直接與JSP頁面上的數(shù)據(jù)進(jìn)行交互。在調(diào)用業(yè)務(wù)邏輯層應(yīng)用時,Struts2利用Spring框架的依賴注入實現(xiàn)對業(yè)務(wù)邏輯類和DAO類的實例管理;在事務(wù)處理方面,利用Spring提供的面向切面的事務(wù)處理,使對數(shù)據(jù)的事務(wù)控制脫離于數(shù)據(jù)訪問接口實現(xiàn);在對象關(guān)系映射方面,利用的是Spring對數(shù)據(jù)庫連接池的管理和對iBatis框架的支持。在持久層,利用iBatis提供的半自動化對象關(guān)系映射的實現(xiàn),開發(fā)人員需要編寫具體的SQL語句,為系統(tǒng)設(shè)計提供更大的自由空間。使用SSI框架能夠降低代碼的耦合度,增強(qiáng)了代碼的健壯性和可重用性,加快了開發(fā)速度[12]。
1.1需求分析
系統(tǒng)的主要用戶分為三種:超級管理員、教師和學(xué)生[13]。學(xué)生擁有教學(xué)資源下載、上傳作業(yè)、在線查看教學(xué)資源、留言等功能;教師可將學(xué)習(xí)資源上傳,處理學(xué)生的留言,瀏覽學(xué)生學(xué)習(xí)記錄;超級管理員可維護(hù)教師和學(xué)生用戶信息,管理用戶角色,對角色分配權(quán)限。
1.2系統(tǒng)總體設(shè)計
教學(xué)資源平臺分為角色管理、留言管理、用戶管理、資源管理等模塊,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
學(xué)生有性別、姓名、ID、系別、密碼等字段,留言表有日期、ID號、留言標(biāo)題、內(nèi)容、回復(fù)。管理員的字段為姓名、ID和密碼。圖2為學(xué)生,管理員,留言表實體之間的關(guān)系E_R圖。
該系統(tǒng)應(yīng)用SSI模型開發(fā),根據(jù)分層思想分為業(yè)務(wù)邏輯層、控制層和持久層。
3.1業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯是通過Spring框架的容器去實例化對象,同時創(chuàng)建實例之間的關(guān)系。這種控制反轉(zhuǎn)可以使開發(fā)人員不用考慮對象的實例化操作。
(1)用戶管理模塊的業(yè)務(wù)邏輯。
容器將自動為userAction,userService,userDAO和BaseDAOImp對象進(jìn)行注入。先自動實例化sqlMapClient屬性,通過此屬性來實例化sqlMapClientTempleate對象。
圖3為容器實例化流程圖。
圖2 E_R圖
圖3 容器實例化流程圖
(2)網(wǎng)站瀏覽記錄業(yè)務(wù)邏輯。
容器通過注入sqlMapClientTemplate對象實例化pagegenaeratinoDAO對象,繼續(xù)實例化pagegenerationServer對象,最終完成pagegenerationAction對象的實例化操作。核心代碼如下:
3.2控制層
控制層用于調(diào)用業(yè)務(wù)層的相關(guān)代碼來實現(xiàn)與數(shù)據(jù)庫的交互等功能。Struts2根據(jù)用戶的URL Pattern請求,來決定請求由哪個模塊處理。該項目中只對擴(kuò)展名為.action的請求進(jìn)行處理,其他擴(kuò)展名的請求通過過濾器進(jìn)行過濾。
設(shè)置核心語句如下:
(1)用戶管理的控制層。
當(dāng)請求以action作為擴(kuò)展,前置攔截器將處理后的數(shù)據(jù)交給相應(yīng)的action。對用戶管理的JSP頁面,將數(shù)據(jù)交給userQueryAjax處理。根據(jù)Struts配置文件,具體由query方法來調(diào)用業(yè)務(wù)邏輯層對數(shù)據(jù)進(jìn)行操作。
在user-struts.xml中,有關(guān)query方法的具體執(zhí)行操作如下:
result
執(zhí)行query方法時,通過Struts2的反射機(jī)制,將JSP頁面用戶輸入的數(shù)據(jù)注入到action文件中的成員變量,通過持久層來操作底層SQL語句。查詢的數(shù)據(jù)通過后置filter,將數(shù)據(jù)顯示在視圖層。圖4為Struts處理流程圖。
圖4 Struts處理流程圖
(2)網(wǎng)站瀏覽記錄的控制層。
學(xué)生用戶打開一個網(wǎng)頁時,通過ajax異步向服務(wù)器發(fā)送一個pagegenerationAjax.action請求,經(jīng)過filter處理后,瀏覽網(wǎng)頁的ID和用戶ID交給pagegeneration-struts.xml處理。配置文件中,定義由query方法將網(wǎng)頁ID和用戶ID插入瀏覽記錄表中。瀏覽記錄配置的action代碼如下:
result
3.3持久層
持久層根據(jù)配置文件中的命名空間中有關(guān)結(jié)果集合實體之間的對應(yīng)關(guān)系進(jìn)行映射。它是由多個XML配置文件組成[14-15]。
(1)用戶管理的持久層。
業(yè)務(wù)層通過queryUserNameFortypeid來調(diào)用有關(guān)用戶信息的查詢語句,根據(jù)用戶名name和用戶類型id來查詢用戶信息,將查詢到的結(jié)果封裝成userVO返回調(diào)用的方法處。核心代碼如下:
selectsys_user.* from sys_user
where
sys_user.name=#username#
and
sys_user.type_id=
#type_id#
(2)網(wǎng)站瀏覽記錄的持久層。
網(wǎng)站瀏覽記錄模塊僅提供查詢功能,根據(jù)頁面的id號查詢網(wǎng)頁的標(biāo)題、內(nèi)容等信息。
核心代碼如下:
select
t_html_data.* from t_html_data where t_html_data.id= #id#
用戶管理模塊測試如表1所示;網(wǎng)站瀏覽記錄的持久層如表2所示。
表1 用戶管理測試用例表
表2 網(wǎng)站瀏覽記錄測試用例表
為了能在教師和學(xué)生之間搭建一個在線學(xué)習(xí)平臺,方便教師發(fā)布最新的課程資料,構(gòu)建了教學(xué)資源平臺。該平臺采用成熟的SSI框架搭建,運用MVC分層設(shè)計思想,使系統(tǒng)具有非常好的擴(kuò)展性,便于今后決策支持系統(tǒng)擴(kuò)展和系統(tǒng)升級。該系統(tǒng)已經(jīng)在咸陽師范學(xué)院投入使用,運行情況表明,系統(tǒng)能為師生提供有效的課程發(fā)布和課程學(xué)習(xí)服務(wù)。
[1] 寇媛媛.網(wǎng)絡(luò)教學(xué)平臺的發(fā)展現(xiàn)狀及趨勢[J].電子設(shè)計工程,2011,19(16):123-126.
[2] 陳菁華.國內(nèi)教育網(wǎng)站現(xiàn)狀及發(fā)展[J].高等函授學(xué)報:自然科學(xué)版,2000,13(5):37-39.
[3] 何 苗,郭允建,李慧麗,等.基于中國期刊網(wǎng)的網(wǎng)絡(luò)教學(xué)平臺研究現(xiàn)狀分析[J].現(xiàn)代遠(yuǎn)程教育研究,2009(1):45-47.
[4] 鄭 綱.關(guān)于網(wǎng)絡(luò)教學(xué)平臺的現(xiàn)狀和發(fā)展趨勢的探索[J].東方企業(yè)文化,2012(23):119.
[5] 解 勇.基于SSI框架的中小型企業(yè)網(wǎng)站新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)[D].長春:吉林大學(xué),2014.
[6] 黃 輝.教學(xué)資源庫平臺的研究與設(shè)計[D].北京:北京交通大學(xué),2008.
[7] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2004:1-17.
[8] 吳 鋒.基于SSI框架JavaEE技術(shù)研究[D].合肥:合肥工業(yè)大學(xué),2009.
[9] 張 琪.企業(yè)WEB應(yīng)用下SSI框架分析[J].南京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2011,11(2):56-58.
[10] Zhao C,Jiang M,He Z.The design of E-commerce system architecture based on Struts2,Spring and Hibernate[C]//2nd international conference on information science and engineering.[s.l.]:IEEE,2010:3251-3254.
[11] 武寶珠,梁聲灼,牛德雄.基于Struts2+Spring+Hibernate架構(gòu)構(gòu)建Web應(yīng)用系統(tǒng)[J].計算機(jī)與現(xiàn)代化,2009(8):43-46.
[12] 李紹平,彭志平.S2SH:一種Web應(yīng)用框架及其實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2009,19(8):117-119.
[13] 李 峰, 劉彥隆.基于SSH框架與j Query技術(shù)的Java-Web開發(fā)應(yīng)用[J].圖書情報導(dǎo)刊,2010,20(6):106-108.
[14] 李澎林,朱國清,吳 斌.基于iBatis SQL Map的數(shù)據(jù)持久層實現(xiàn)應(yīng)用研究[J].浙江工業(yè)大學(xué)學(xué)報,2008,36(1):72-76.
[15] 程文波,盧涵宇,陳勁松.一種新的數(shù)據(jù)持久層設(shè)計方法與實現(xiàn)[J].微電子學(xué)與計算機(jī),2011,28(7):28-30.
Research on Application of SSI Technology in TeachingResources Platform
LIU Min-na1,2,ZHAO Qiang1
(1.College of Computer,Xianyang Normal University,Xianyang 712000,China;2.Institute of Graphics and Image Processing,Xianyang Normal University,Xianyang 712000,China)
Open and extensible teaching resources platform can provide students and teachers with rich resources,detailed learning and reference materials,which is helpful to improve teaching quality.An open and scalable teaching resources platform is built with Spring,Struts2 and iBatis technology based on the SSI framework in accordance with WEB2.0 standards,which consists of user management,role management,resource management,message and other functional modules.When the background data platform is changed,the administrator can select the dynamically generated HTML page in the task option and access to the static HTML files according to the task type so as to avoid the repeated access to the database and can effectively improve the performance of platform access.The experimental results show that it can meet the needs of students’ online learning,resources downloading,messaging and other aspects,with friendly interface and simple operation.Because it is based on three frameworks with MVC hierarchical structure,when the application needs change,only a small amount of code modification can be functional expansion.
teaching resource platform;three framework;hierarchical structure
2016-08-05
:2016-11-17 < class="emphasis_bold">網(wǎng)絡(luò)出版時間
時間:2017-07-11
陜西省教育專項基金資助項目(16JK1826,15JK1803);咸陽師范學(xué)院專項科研基金項目(13XSYK055)
劉敏娜(1981-),女,碩士,講師,研究方向為CUDA并行計算、機(jī)器學(xué)習(xí)。
http://kns.cnki.net/kcms/detail/61.1450.tp.20170711.1452.008.html
TP39
:A
:1673-629X(2017)09-0170-05
10.3969/j.issn.1673-629X.2017.09.037