陳偉宏 張龍 王璐
摘 要: 針對傳統(tǒng)教學中學生學習、交流受時間地點限制的問題,設計和實現(xiàn)了一個基于Web的在線學習系統(tǒng)。該系統(tǒng)基于B/S模式、采用Struts2框架、使用Java語言和SQL SERVER 2005數(shù)據(jù)庫實現(xiàn)。該系統(tǒng)的特色在于后臺管理可遠程添加課程和課程資源,前臺除顯示課程資源外,還有在線視頻播放、在線交流和學習論壇等。該系統(tǒng)可彌補傳統(tǒng)教學中的不足,在學生自主學習中發(fā)揮重要作用。
關鍵詞: 在線學習系統(tǒng); Struts2; Java; SQL Server
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2013)09-22-03
0 引言
隨著網(wǎng)絡信息技術的快速發(fā)展及其在教育中應用的不斷深入,傳統(tǒng)的教學模式、教學方法、教學內容、教學手段都產生了深刻的變革,教學過程從“以教為中心”走向“以學為中心”,逐步形成了以學習者為中心的在線學習模式,這種學習模式已經成為現(xiàn)代教育的重要方式和發(fā)展方向[1]。傳統(tǒng)的教學方式需要師生在物理空間上面對面,教與學受空間和時間的限制,而基于Web的在線學習以擁有豐富的網(wǎng)絡資源、不受時空限制等優(yōu)勢,拓展了傳統(tǒng)校園的界限,創(chuàng)造出更廣闊的多元化學習環(huán)境,讓學習無處不在、無時不可,因而在線學習系統(tǒng)應運而生。
目前,國內外建設了許多精品課程網(wǎng)站,特別是西方發(fā)達國家政府大力鼓勵發(fā)展精品課程網(wǎng)站,這些網(wǎng)站提供了豐富的教育資源[2]。課程網(wǎng)站的開發(fā)技術由以前的Basic、Visual Basic等語言,發(fā)展到現(xiàn)在的JSP、ASP技術訪問SQL Server、Sybase或Oracle數(shù)據(jù)庫[3-4]。從開發(fā)語言上,JSP比之前的開發(fā)語言有更高的效率和安全性,組件方式更方便,適應平臺更廣;與Structs2框架相結合后,易于擴展業(yè)務和后期維護,能得到更高的效率[5-6]。本文基于B/S模式、采用Struts框架設計和實現(xiàn)了一個在線學習系統(tǒng),系統(tǒng)前臺顯示使用JSP在瀏覽器上實現(xiàn),業(yè)務邏輯使用JavaBean組件實現(xiàn),后臺數(shù)據(jù)庫使用SQL Server 2005。該系統(tǒng)以培養(yǎng)學生自主學習能力為特色,通過在線交流能及時反饋學生的學習效果,通過論壇能充分展現(xiàn)學生的個性化學習,積極促進現(xiàn)代教育教學質量的提高。
1 系統(tǒng)分析與設計
1.1 系統(tǒng)總體功能
在線學習系統(tǒng)功能包括前臺顯示和后臺管理兩大模塊。前臺模塊有用戶注冊與登錄、課程資源顯示、資源下載、在線交流和論壇等功能,課程資源顯示頁面包括課程簡介、教師團隊、教學方法、教學內容、教學效果等課程介紹,還提供pdf文檔預覽、視頻在線播放、文件下載等功能。論壇模塊根據(jù)計算機涉及到的各類技術設計了分版塊發(fā)帖和回帖,以及資源的上傳和下載。后臺模塊包括用戶管理、課程資源管理和論壇資源管理。未注冊用戶只能瀏覽頁面信息;已登錄的普通用戶可以下載和評論課程資源,在論壇中可以發(fā)帖、回貼,下載和上傳資源;管理員除擁有普通用戶全部功能外,還能對整個網(wǎng)站進行管理。管理員可以對已上傳課件進行修改、刪除,發(fā)布新課程,添加或刪除課程資源;對論壇模塊的資源,可以刪除非法帖和評論以及修改貼子類型,刪除非法資源,可以刪除用戶或重置用戶密碼等。
1.2 數(shù)據(jù)庫設計
數(shù)據(jù)庫在信息管理系統(tǒng)中占有非常重要的地位,合理的數(shù)據(jù)庫結構設計不僅可以較好地實現(xiàn)業(yè)務流程,同時也可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整性和一致性。數(shù)據(jù)庫設計根據(jù)邏輯分析系統(tǒng)的所需功能劃分模塊,包括所需表的建立、分析各表之間的聯(lián)系、整個數(shù)據(jù)庫的確定和建立。該系統(tǒng)數(shù)據(jù)庫使用SQL Server 2005,采用JDBC技術連接,設計了10個數(shù)據(jù)表,包括用戶信息表(dbo.T_User)、資源類型表(dbo.t_source_collect)、課程資源表(dbo.t_sourse)等。由于一個帖子可包含多個附件和多個回復信息,帖子類型惟一,一個用戶可發(fā)表多個帖子,因此,帖子信息表與帖子類型表是一對一的關系,與用戶信息表是一對多的關系,與帖子回復表、帖子附件表是一對多的關系。一門課程可包含多個課程資源和多條評論,其中資源類型惟一,一個管理員可發(fā)表多個課程,課程信息表與課程資源表和課程評論表是一對多的關系,與管理員信息表是一對多的關系,課程資源表與資源類型表是一對一關系。系統(tǒng)的數(shù)據(jù)庫模型如圖1所示。
2 系統(tǒng)關鍵技術及實現(xiàn)
系統(tǒng)采用MyEclipse可視化設計工具和Struts2框架實現(xiàn)。設計過程中,使用JSP頁面充當View層,Action充當Controller層,JavaBean充當Model層,DAO層用JDBC編程實現(xiàn),數(shù)據(jù)庫采用純Java連接方式連接SQL Server 2005。開發(fā)系統(tǒng)時,由JS、Html或Ajax技術將客戶端的請求發(fā)送至Web服務器,由Action接收請求并將處理結果返回至客戶端;采用Java編寫程序,實現(xiàn)對在線學習系統(tǒng)中各個功能模塊內容的增、刪、改、查等功能。
2.1 數(shù)據(jù)庫的連接
系統(tǒng)創(chuàng)建了一個數(shù)據(jù)庫連接SQL工具類,在類中實現(xiàn)建立數(shù)據(jù)庫連接、執(zhí)行數(shù)據(jù)庫操作、得到執(zhí)行數(shù)據(jù)庫操作返回的結果集、關閉數(shù)據(jù)庫等常用方法,方便其他類調用。
⑴ 建立數(shù)據(jù)庫連接的關鍵代碼
public SQL() throws Exception {
try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=db_BBS",
"javaUser","123456");
} catch (Exception e) {throw e;}}
⑵ 得到執(zhí)行數(shù)據(jù)庫操作返回的結果集
public ResultSet getRs() {
try { return ps.getResultSet();
} catch(SQLException e) { System.out.println("獲取結果集失敗");
e.printStackTrace(); }
return null; }
2.2 Ajax技術的使用
Ajax的核心是JavaScript對象XmlHttpRequest,支持異步請求,使用JavaScript向服務器提出請求并處理響應,不阻塞用戶。系統(tǒng)中客戶端向服務器通過Ajax發(fā)送請求,其關鍵代碼如下:
$(function() {
$(".type").each(function() {
var type=$(this).text();
if(type=="pdf"||type=="PDF"||type=="flv"||type=="swf") {
var temp=$(this).parent().parent().children().eq(4)
.children(".view").attr("disabled",false);
} else {
$(this).parent().parent().children().eq(4).children(".view").attr("disabled","disabled");
}
});
$(".download").click(function() {
var name=$(this).attr("name");
var path=$(this).attr("path");
var url="study/download";
window.open(url+"?name="+name+"&path="+path, "_blank");
});
$(".view").click(function() {
var path=$(this).attr("path");
var url1="study/view.jsp";
var url2="study/view2.jsp";
var type=$(this).parent().parent().children().eq(2)
.children("font").text();
if(type=="pdf"||type=="PDF") {
window.open(url1+"?path="+path, "_blank");
} else {
window.open(url2+"?path="+path, "_blank"); }
});
});
2.3 Struts2框架的實施
Struts2是一個功能強大的Java Web開源框架,是一個基于Action的MVC框架。在系統(tǒng)中,Struts2的實施包括Action類的實施、映射關系的配置、前臺頁面動態(tài)數(shù)據(jù)顯示實施三個方面。
⑴ Action類的實施。Strust2的Action類只需要實現(xiàn)Action或ActionSupport接口,甚至可以使用有execute()方法的POJO。在execute()方法中可以直接處理前端提交的信息,并對數(shù)據(jù)庫做相應的增、刪、改、查操作。
⑵ 映射關系的配置。在struts.xml文件中對Action進行配置,控制Action請求到Action類的映射,以及Action類到jsp頁面的映射關系。
⑶ 前臺頁面動態(tài)數(shù)據(jù)顯示的實施。通過EL表達式或struts2提供的OGNL表達式,可以將后臺從數(shù)據(jù)庫獲取到的數(shù)據(jù)在前顯示出來,尤其是大批量的數(shù)據(jù)顯示,strust2的標簽庫中提供了迭代標簽,可以對集合數(shù)據(jù)進行迭代。
系統(tǒng)中的配置如下:
value="20000000">
extends="struts-default"> <!-- 用戶注冊 --> <!-- 用戶登錄 --> study/index.action
2.4 論壇管理
論壇管理包括發(fā)帖類型管理和版塊管理,可對版塊中的發(fā)帖進行刪除等處理,具體效果如圖2所示。
3 結束語
本文設計和實現(xiàn)了一個基于Web的在線學習系統(tǒng),該系統(tǒng)采用三層B/S模式,可在后臺遠程添加課程名稱和課程資源,操作簡捷方便;前臺提供課程顯示、在線視頻播放、在線交流和論壇功能,能在學生自主學習的同時與教師進行互動,及時反饋學習效果。通過在線學習系統(tǒng)的使用,不僅可彌補學生公共計算機水平參差不齊的狀況,還能強化學生的個性化學習,從而促進教學質量的提高,為培養(yǎng)自主學習型、創(chuàng)新型人才起到重要作用。
參考文獻:
[1] 郭小雪.基于JSP/Servlet的三層式網(wǎng)上書店的研究與實現(xiàn)[D].吉林大學,2006.
[2] 王國棟,楊樹勛,劉殿文等.JSP在網(wǎng)上書店中的應用[J].青島科技大學學報(自然科學版),2003.3(24):264-266
[3] 劉志海.C語言在線學習系統(tǒng)設計和實現(xiàn)[J].計算機與數(shù)字工程,2011.6:177-180
[4] 王俊偉,史創(chuàng)明編著.SQL Server 2000 數(shù)據(jù)庫管理與應用[M].清華大學出版社,2006.
[5] 劉欣怡.軟件工程[M].清華大學出版社,2007.
[6] 陳軼,姚曉昆編著.Java程序設計實驗指導[M].清華大學出版社,2006.