申涵 于立紅
摘要:隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,“互聯(lián)網(wǎng)+教育”已成為一種新的教育形式。而對于傳統(tǒng)運用office辦公軟件進(jìn)行對在校學(xué)生成績管理方式以不能滿足互聯(lián)網(wǎng)時代發(fā)展的需要。該系統(tǒng)采用B/S網(wǎng)絡(luò)結(jié)構(gòu)模式,搭建基于SSI(struts2+spring+ibatis)的javaEE開發(fā)環(huán)境。用戶只需通過web瀏覽器完成對系統(tǒng)的訪問及使用,從而能夠提高學(xué)生成績管理工作效率,提升學(xué)校整體管理水平。
關(guān)鍵詞:互聯(lián)網(wǎng)+教育;B/S網(wǎng)絡(luò)結(jié)構(gòu);成績管理;javaEE
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2019)02-0060-03
1 系統(tǒng)總體設(shè)計
1.1功能模塊設(shè)計
本系統(tǒng)根據(jù)用戶的角色和權(quán)限不同,分為管理員端、教師端及學(xué)生端。根據(jù)功能不同,將成績管理系統(tǒng)分為七大模塊,分別為:用戶管理、學(xué)生信息管理、課程信息管理、班級信息管理、成績錄入、成績查詢、成績統(tǒng)計分析等。
學(xué)生端:學(xué)生可以使用學(xué)生信息管理及成績查詢模塊,完成對個人基本信息的完善和考試成績的查詢。
教師端:教師通過使用成績錄入模塊,對所教班級學(xué)生課程成績的錄入;同時也可使用用戶管理,對自己信息進(jìn)行錄入及修改。
管理員端:管理員端則針對學(xué)校教務(wù)部門及學(xué)生管理部門人員,該人員使用課程信息管理及班級信息管理,完成對每個班每學(xué)期所學(xué)課程的錄入和學(xué)生所在班級管理。使用成績統(tǒng)計分析模塊課,可查詢所有學(xué)生成績,查詢所有班級平均成績等信息,為學(xué)生學(xué)習(xí)及班級管理做指導(dǎo)。
1.2系統(tǒng)架構(gòu)設(shè)計
javaEE開發(fā)環(huán)境則需要搭建基于SSI架構(gòu)完成成績管理系統(tǒng)的開發(fā),該架構(gòu)同樣也是基于MVC模式,并且已經(jīng)做好了文件的分層,同時加入了日志輸出文件。前臺界面展示通過使用HTML+JavaScript語言完成動態(tài)頁面開發(fā);struts用于接受頁面信息通過后臺處理返回結(jié)果;后臺spring對事務(wù)管理,使用JDBC的事務(wù)管理機(jī)制;ibatis則進(jìn)行數(shù)據(jù)庫操作,提供對sql的封裝。
1.3數(shù)據(jù)庫設(shè)計
數(shù)據(jù)模型設(shè)計:實體聯(lián)系模型(E-R模型)是目前使用很廣泛的數(shù)據(jù)庫設(shè)計工具。通過對本系統(tǒng)功能模塊分析,可得出以下實體聯(lián)系模型圖1:
表結(jié)構(gòu)設(shè)計:根據(jù)實體聯(lián)系模型圖,可得出成績管理系統(tǒng)所使用到的一些主表包括:學(xué)生信息表,班級信息表,課程信息表,學(xué)生成績表等。
1.4系統(tǒng)開發(fā)環(huán)境
操作系統(tǒng)為Windows 7 64位;
需要安裝軟件包括:JDK1.6以上版本,eclipse集成開發(fā)工具,中間件(服務(wù)器)tomcat7以上版本,SqlServer數(shù)據(jù)庫,瀏覽器IE10以上或者360瀏覽器;
開發(fā)使用語言:前端使用HTML,JavaScript;后臺使用java,sql結(jié)構(gòu)化查詢語言。
2系統(tǒng)關(guān)鍵技術(shù)
2.1 AJAX技術(shù)
AJAX并不是一種新的編程語言,而僅僅是一種新的技術(shù),它可以創(chuàng)建更好、更快且交互性更強的WEB應(yīng)用程序。通過在幕后與 web 服務(wù)器交換數(shù)據(jù),而不是每當(dāng)用戶做出改變時重載整個 web 頁面,AJAX 技術(shù)可以使網(wǎng)頁更迅速地響應(yīng)。
AJAX使用XML和HTTP請求,傳統(tǒng)的web應(yīng)用程序會把數(shù)據(jù)提交到web服務(wù)器(使用HTML表單)。在web服務(wù)器把數(shù)據(jù)處理完畢之后,會向用戶返回一張完整的新網(wǎng)頁。通過AJAX,web應(yīng)用程序無須重載網(wǎng)頁,就可以發(fā)送并取回數(shù)據(jù)。完成這項工作,需要通過向服務(wù)器發(fā)送HTTP請求(在幕后),并通過當(dāng)服務(wù)器返回數(shù)據(jù)時使用JavaScript僅僅修改網(wǎng)頁的某部分。
2.2 json數(shù)據(jù)交互
struts2使用ajax實現(xiàn)頁面和action之間通過json數(shù)據(jù)交互。Json數(shù)據(jù)格式比較簡單, 易于讀寫, 格式都是壓縮的, 占用帶寬小;易于解析這種語言, 客戶端JavaScript可以簡單地通過eval()進(jìn)行JSON數(shù)據(jù)的讀取;同時能夠直接為服務(wù)器端代碼使用, 大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量, 但是完成的任務(wù)不變, 且易于維護(hù)。
2.3 spring架構(gòu)
Spring的優(yōu)勢在于方便解耦,簡化開發(fā)。spring IOC(控制反轉(zhuǎn)),利用工廠模式解耦,在實際開發(fā)中我們可以把所有的dao和service和action對象使用配置文件配置起來,當(dāng)啟動服務(wù)器應(yīng)用加載的時候,通過讀取配置文件,把這些對象創(chuàng)建出來并存起來;Spring的依賴注入,將基本值類型或者是引用數(shù)據(jù)類型注入一個類中spring提供的注入方式;Spring的切面編程,在程序運行期間,不修改源碼對已有方法進(jìn)行增強。減少重復(fù)代碼,提高開發(fā)效率,維護(hù)方便。
2.4 Ibatis技術(shù)
Ibatis主要完成兩件事:根據(jù) JDBC 規(guī)范建立與數(shù)據(jù)庫的連接和通過反射打通 Java 對象與數(shù)據(jù)庫參數(shù)交互之間相互轉(zhuǎn)化關(guān)系。
Ibatis結(jié)構(gòu)是一種典型的交互式框架。先期準(zhǔn)備好交互的必要條件,然后構(gòu)建一個交互的環(huán)境,交互環(huán)境中還劃分成會話,每次的會話也有一個環(huán)境。當(dāng)這些環(huán)境都準(zhǔn)備好了以后,剩下的就是交換數(shù)據(jù)了。SqlMapClient 接口主要定義了客戶端的操作行為包括 select、insert、update、delete。SqlMapSession 可以共享使用,也可以自己創(chuàng)建,如果是自己創(chuàng)建在結(jié)束時必須要調(diào)用關(guān)閉接口關(guān)閉。Ibatis一個重要組成部分就是其SqlMap配置文件,SqlMap 配置文件的核心是 Statement語句包括CIUD。通過解析SqlMap配置文件得到所有的Statement執(zhí)行語句,同時會形成ParameterMap、ResultMap兩個對象用于處理參數(shù)和經(jīng)過解析后交給數(shù)據(jù)庫處理的Sql對象。Statement中定義的 SQL 語句,解析出其中的參數(shù),按照其出現(xiàn)的順序保存在Map集合中,并按照Statement中定義的 ParameterMap對象類型解析出參數(shù)的Java數(shù)據(jù)類型。并根據(jù)其數(shù)據(jù)類型構(gòu)建 TypeHandler對象,參數(shù)值的復(fù)制是通過DataExchange對象完成的。
3系統(tǒng)實現(xiàn)
3.1前臺界面功能實現(xiàn)
前臺界面同過編寫html語言,完成靜態(tài)頁面的開發(fā),JavaScript用來實現(xiàn)界面功能,展示界面動態(tài)效果,完成對數(shù)據(jù)表單的提交。以前臺登錄界面為例,如下圖2所示:
3.2與服務(wù)器交互實現(xiàn)
界面完成數(shù)據(jù)錄入后,提交表單向服務(wù)器發(fā)送請求。通過ajax發(fā)送異步請求的實現(xiàn)代碼如下:
$.ajax({
type:"GET",
cache:true,
url:"checkLogin.do",
dataType:"json",
data:$('#login_form').serialize(),
async:true,
error:function(request) {
alert("出錯");
},
success:function(data) {//獲得返回值
//alert(data);
var d = eval("("+data+")");
alert(d.NAME_TEACHER);
if(d.code=="1"){
window.location.href="./score/scoreList.html?USERNAME="+d.NAME_TEACHER;
} });
由程序中可看出,此次提交采用GET請求方式,checkLogin.do是訪問servlet的路徑,dataType:"json"表示后臺數(shù)據(jù)以json形式返回,async:true表示為異步請求。
Ajax發(fā)送查詢請求后,在CheckAaction中執(zhí)行查詢并返回所需要查詢的數(shù)據(jù),同時將查詢數(shù)據(jù)轉(zhuǎn)化為json格式類型。Struts2自動將返回數(shù)據(jù)對象轉(zhuǎn)化為json格式的配置文件如下所示:
result<!-- action中的屬性 -->
3.3后臺業(yè)務(wù)實現(xiàn)
Spring使用DAO模式,實現(xiàn)對ibatis的良好支持,通過配置讓spring管理sqlMapClient對象的創(chuàng)建。在spring配置文件中增加ibatis需要配置的文件,該文件中包含JDBC建立數(shù)據(jù)庫連接和java對象與數(shù)據(jù)庫數(shù)據(jù)進(jìn)行關(guān)聯(lián)。新建一個applicationContent-comm.xml文件,具體配置為:
sqlMapConfig中寫入相應(yīng)的映射文件,這里的映射即為數(shù)據(jù)表與對應(yīng)的java對象之間的映射關(guān)系。在該文件中可以編寫相應(yīng)的成績查詢sql語句,實現(xiàn)所有成績查詢功能。sqlMapConfig.xml配置文件如下:
<!-- 個人成績查詢 -->
SELECT A.STU_NO,A.NAME,B.COURSE_NO,B.SCORE FROM STUDENT A,SCORE B WHERE A.STU_NO=B.STU_NO AND A.STU_NO=#STU_NO#
圖3為某位同學(xué)成績查詢展示:
4結(jié)束語
基于SSI架構(gòu)成績管理系統(tǒng),能夠降低代碼的耦合度,增強代碼的健壯性以及代碼的可重復(fù)使用,加快系統(tǒng)的開發(fā)速度。采用B/S網(wǎng)絡(luò)結(jié)構(gòu)模式,用戶能夠通過使用web瀏覽器完成各項成績管理工作。本系統(tǒng)目前已實現(xiàn)上述所有模塊功能,經(jīng)過測試使用,已達(dá)到預(yù)期效果,大幅提升了學(xué)校信息化管理水平。
參考文獻(xiàn):
[1] 何婧媛.學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)[J].信息技術(shù)與信息化,2016(7).
[2] 張國平,鄭均輝,張琳.基于SSH2和Ajax的物聯(lián)網(wǎng)社區(qū)信息化管理系統(tǒng)[J].現(xiàn)代電子技術(shù),2015(14):79-81,85.
[3] 張玲.學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)[J].科技視界,2015(4):89-90.
[4] 汪云飛.JavaEE開發(fā)的顛覆者:SpringBoot實戰(zhàn)[M].北京:電子工業(yè)出版社,2016:248-249.
[5] 李智慧.大型網(wǎng)站技術(shù)架構(gòu)核心原理與案例分析[M].北京:電子工業(yè)出版社,2013:39-41.
[6] 羅詩敏.基于MVC的學(xué)生成績管理系統(tǒng)的分析與設(shè)計[D].廣州:華南理工大學(xué),2014.
[7] 李佳.基于struts2架構(gòu)成績管理系統(tǒng)的設(shè)計與實現(xiàn)[J].西華師范大學(xué)學(xué)報:自然科學(xué)版,2014(3):101-102.
[8] 張妙玲,張超.對高校學(xué)生成績管理系統(tǒng)建設(shè)的若干思考[J].山西高等學(xué)校社會科學(xué)學(xué)報,2012(4):23-24.