賈衛(wèi)峰 林木興 高華
摘要:隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,人們的生活和學(xué)習(xí)方式在一定程度上發(fā)生了改變,中國(guó)傳統(tǒng)遠(yuǎn)程教育的問(wèn)題日益凸顯。在線學(xué)習(xí)克服了傳統(tǒng)學(xué)習(xí)模式在時(shí)間和空間上的限制,整合了各種優(yōu)質(zhì)教育資源,并進(jìn)行合理配置,提高了學(xué)習(xí)的便捷性。結(jié)合MOOC理念,采用MVC三層開(kāi)發(fā)模式,即JavaBean(Model)+Servlet(View)+JSP(Control)體系,在Java平臺(tái)上設(shè)計(jì)了一個(gè)基于“互聯(lián)網(wǎng)+”的在線學(xué)習(xí)互動(dòng)平臺(tái)。該平臺(tái)實(shí)現(xiàn)了視頻點(diǎn)播、視頻發(fā)布、視頻管理、互動(dòng)交流和彈幕等功能。實(shí)踐表明,該平臺(tái)系統(tǒng)結(jié)構(gòu)清晰,可有效保障數(shù)據(jù)安全,運(yùn)行效果良好。
關(guān)鍵詞:互聯(lián)網(wǎng)+;在線學(xué)習(xí);MVC;Java平臺(tái)
DOIDOI:10.11907/rjdk.172557
中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2017)010007505
0引言
在線學(xué)習(xí)是通過(guò)互聯(lián)網(wǎng)和信息通信技術(shù),在互聯(lián)網(wǎng)上構(gòu)建一個(gè)虛擬教室,然后教師和學(xué)生通過(guò)互聯(lián)網(wǎng)連接進(jìn)行授課和學(xué)習(xí)的方式。目前,國(guó)內(nèi)外涌現(xiàn)出許多在線學(xué)習(xí)平臺(tái),如MOOC、Blackboard、騰訊課堂等。當(dāng)前“互聯(lián)網(wǎng)+”理念是人們關(guān)注的熱點(diǎn),作為新型學(xué)習(xí)方式,在線學(xué)習(xí)可以跨越地域差異,平衡教育資源,從而培養(yǎng)出自主學(xué)習(xí)的新型人才[1]。因此,在“互聯(lián)網(wǎng)+”環(huán)境下研究在線學(xué)習(xí)互動(dòng)平臺(tái)的設(shè)計(jì)和應(yīng)用具有重要的理論和現(xiàn)實(shí)意義。
1相關(guān)技術(shù)
1.1開(kāi)發(fā)模式
本文采用MVC三層架構(gòu)開(kāi)發(fā),它能使數(shù)據(jù)存儲(chǔ)、顯示,即視圖和業(yè)務(wù)邏輯處理互相分離。其原理是:模型層負(fù)責(zé)數(shù)據(jù)格式的定義和轉(zhuǎn)存,與數(shù)據(jù)庫(kù)中的相應(yīng)字段對(duì)應(yīng);控制層對(duì)系統(tǒng)業(yè)務(wù)邏輯進(jìn)行處理,一般都是操作數(shù)據(jù)庫(kù),是系統(tǒng)前端和后臺(tái)的橋梁。它將前端視圖層輸入的數(shù)據(jù)傳給模型層,并更新到后臺(tái)數(shù)據(jù)庫(kù)中;視圖層則是系統(tǒng)的交互接口,它將模型層的數(shù)據(jù)以特定格式呈現(xiàn)給用戶[2]。
(1)MODEL層。模型層定義了數(shù)據(jù)的格式及處理方法,它把數(shù)據(jù)和數(shù)據(jù)處理方法寫成一個(gè)JavaBean類,是系統(tǒng)軟代碼的一種實(shí)現(xiàn)。模型層定義的數(shù)據(jù)與數(shù)據(jù)庫(kù)的字段相對(duì)應(yīng),模型并不關(guān)心數(shù)據(jù)如何控制和顯示,它只負(fù)責(zé)刷新數(shù)據(jù)庫(kù)中被更改的記錄。
(2)CONTROL層??刂茖邮钦麄€(gè)系統(tǒng)的處理中心,定義了用戶接收前臺(tái)和響應(yīng)后臺(tái)數(shù)據(jù)的整個(gè)邏輯程序,這些程序負(fù)責(zé)從VIEW層讀取數(shù)據(jù),完成應(yīng)用程序的調(diào)度,并且控制客戶的輸入。與此同時(shí),它會(huì)在模型層和視圖層之間進(jìn)行數(shù)據(jù)交互,然后將結(jié)果返回控制層,通過(guò)視圖層的用戶界面顯示給用戶。
(3)VIEW層。視圖層是根據(jù)模型數(shù)據(jù)創(chuàng)建的,它只會(huì)以特別的格式顯示接收到的數(shù)據(jù),卻不會(huì)處理程序中的數(shù)據(jù)。所以,視圖層不需要了解或知道模型層和控制層封裝的內(nèi)容,只需知道它們的接口即可進(jìn)行通信。
因此,本平臺(tái)基于MVC開(kāi)發(fā)模式的原理如圖1所示。
1.2JSP前端開(kāi)發(fā)技術(shù)
用于開(kāi)發(fā)系統(tǒng)前端頁(yè)面的技術(shù)有很多,本平臺(tái)主要采用JSP技術(shù),并結(jié)合CSS和Javascript技術(shù)來(lái)搭建平臺(tái)前端頁(yè)面。JSP是一種服務(wù)器端頁(yè)面,是借鑒了ASP技術(shù)而產(chǎn)生的新一代Web開(kāi)發(fā)技術(shù)。用標(biāo)記和腳本生成動(dòng)態(tài)頁(yè)面內(nèi)容是JSP的一大特色[3]。
JSP有9大內(nèi)置對(duì)象,它們都可以不作任何聲明直接使用。其中常用的是request和response兩大對(duì)象。JSP具有非常成熟的服務(wù)器端組件,如JavaBeans、JDBC等,利用這些組件可以完成Web頁(yè)面中許多復(fù)雜的功能,使系統(tǒng)性能更上一層樓[4]。
1.3后臺(tái)開(kāi)發(fā)技術(shù)
本平臺(tái)的后臺(tái)選擇Java技術(shù)進(jìn)行開(kāi)發(fā),Model層用JavaBean編寫,而控制層則用Servlet編寫,前端和后臺(tái)數(shù)據(jù)庫(kù)之間的連接則采用JDBC技術(shù)實(shí)現(xiàn)[5]。
(1)Java技術(shù)。Java是跨平臺(tái)的面向?qū)ο缶幊陶Z(yǔ)言,其功能很強(qiáng)大,而且摒除了很多難以理解的概念,使其比較容易理解。由于Java語(yǔ)言常常要與數(shù)據(jù)庫(kù)進(jìn)行交互,于是便衍生出Java Servlet、JDBC,以及JSP技術(shù)[6]。
Servlet是使用Java語(yǔ)言編寫的服務(wù)器端小程序,它用于動(dòng)態(tài)生成網(wǎng)頁(yè)。Servlet的工作模式是基于一種請(qǐng)求/響應(yīng)的工作模式,客戶端向服務(wù)器發(fā)送HTTP請(qǐng)求,服務(wù)器將請(qǐng)求分配給相應(yīng)的Servlet進(jìn)行處理,Servlet擁有一系列方法來(lái)處理HTTP請(qǐng)求[7]。
(2)JavaBean技術(shù)。JavaBean是符合某種特定規(guī)范的Java類,是用Java語(yǔ)言編寫的可重用組件。它的設(shè)計(jì)原則是:具體的公共類,無(wú)參的構(gòu)造方法,私有屬性且實(shí)現(xiàn)了軟代碼。同時(shí),它還有以下特性[8]:①易于編寫和維護(hù);②可實(shí)現(xiàn)代碼重用;③便于傳輸,不限于本地或網(wǎng)絡(luò);④可以其它部件的模式進(jìn)行工作。
(3)JDBC技術(shù)。JDBC是以接口與實(shí)現(xiàn)相分離的思想而設(shè)計(jì)的一種使用Java語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)的規(guī)范[9]。它有以下4種類型:①JDBC的調(diào)用完全委托給其它編程接口實(shí)現(xiàn),該實(shí)現(xiàn)方式比較依賴于本地程序,可移植性差;②部分基于Java語(yǔ)言。這種連接方式使用了Java和本地的客戶端代碼。相比于只使用Java編寫,其性能更加優(yōu)越,但便攜性較差;③全部基于Java語(yǔ)言。該類型驅(qū)動(dòng)實(shí)現(xiàn)了應(yīng)用和數(shù)據(jù)庫(kù)兩個(gè)服務(wù)器相互分離,驅(qū)動(dòng)程序由某中間服務(wù)器提供,其缺點(diǎn)是客戶端與服務(wù)器必須使用完全相同的驅(qū)動(dòng)程序;④采用純Java語(yǔ)言。該類型的驅(qū)動(dòng)程序只采用Java語(yǔ)言實(shí)現(xiàn),因此可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行直接的訪問(wèn)和控制[10]。
2平臺(tái)設(shè)計(jì)
2.1功能需求分析
功能需求分析是針對(duì)系統(tǒng)功能模塊的劃分而進(jìn)行的,其分析的好壞,直接決定了整個(gè)系統(tǒng)的功能是否完備。在該階段,分析人員需要根據(jù)用戶需求準(zhǔn)確地對(duì)系統(tǒng)進(jìn)行功能劃分,并進(jìn)行模型轉(zhuǎn)化。在線學(xué)習(xí)互動(dòng)平臺(tái)的功能需求,簡(jiǎn)要概括為資源管理功能、用戶管理功能、互動(dòng)功能。endprint
(1)資源管理功能。在線學(xué)習(xí)平臺(tái)的資源是各種視頻課程資源,該模塊需要對(duì)平臺(tái)上的各種視頻資源進(jìn)行播放、刪除等管理。如:普通用戶可以對(duì)平臺(tái)的資源進(jìn)行下載和播放等操作。
(2)用戶管理功能。平臺(tái)用戶分為未登錄用戶和已登錄用戶,未登錄用戶只能訪問(wèn)平臺(tái)公共部分。未登錄用戶又分為未注冊(cè)用戶和已注冊(cè)用戶兩類,已注冊(cè)用戶直接登錄即可正常使用在線學(xué)習(xí)平臺(tái),未注冊(cè)用戶則需先注冊(cè)后登錄才能正常使用。用戶登錄成功后可以增補(bǔ)和修改自己的信息。
(3)互動(dòng)功能。在任何學(xué)習(xí)環(huán)境中,互動(dòng)交流都是學(xué)習(xí)中不可或缺的一個(gè)關(guān)鍵部分。本平臺(tái)互動(dòng)模塊分為用戶之間的互動(dòng)以及用戶與平臺(tái)間的交互。用戶之間交互可以通過(guò)聊天室功能實(shí)現(xiàn),而用戶與平臺(tái)間的互動(dòng)則通過(guò)彈幕形式實(shí)現(xiàn)。
2.2功能模塊設(shè)計(jì)
本平臺(tái)采用MVC三層模式進(jìn)行開(kāi)發(fā),主要實(shí)現(xiàn)視頻的播放和下載功能。其前端頁(yè)面為JSP頁(yè)面,模型層為JavaBean,控制層為servlet。通過(guò)前面的需求分析和技術(shù)分析,確定了本平臺(tái)可分為登錄/注冊(cè)模塊、用戶管理模塊、課程資源管理模塊、互動(dòng)交流模塊設(shè)計(jì)4個(gè)子模塊。由此可以看到,本平臺(tái)具有很好的可擴(kuò)展性,模塊之間相互獨(dú)立,通過(guò)公用的數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)共享。
(1)登錄/注冊(cè)模塊設(shè)計(jì)。登錄/注冊(cè)模塊首先必須提供新用戶注冊(cè)功能,引導(dǎo)用戶填寫基本資料,未注冊(cè)的用戶為非法用戶,無(wú)法正常使用系統(tǒng)。其次必須提供用戶登錄訪問(wèn)功能,根據(jù)用戶的輸入信息驗(yàn)證用戶是否合法,并驗(yàn)證其密碼的正確性,驗(yàn)證成功后,跳轉(zhuǎn)到用戶主頁(yè)。
(2)用戶管理模塊設(shè)計(jì)。用戶管理模塊給予用戶管理自己信息的功能。用戶注冊(cè)時(shí),可能存在信息不全的情況,后續(xù)還可能有變更,可以在平臺(tái)上進(jìn)行增補(bǔ)修改。
(3)資源管理模塊設(shè)計(jì)。資源管理模塊主要實(shí)現(xiàn)管理員共享課程視頻資源,并且可以增、刪、改、查所有課程資源,而學(xué)生用戶則只具有對(duì)資源進(jìn)行查找、播放的功能。
(4)互動(dòng)交流模塊設(shè)計(jì)。互動(dòng)交流模塊提供用戶進(jìn)行評(píng)論、討論等交流學(xué)習(xí)的平臺(tái),用戶登錄后,可以瀏覽評(píng)論、回復(fù)評(píng)論、發(fā)送彈幕、視頻交流等。
2.3數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中起著非常重要的作用,是系統(tǒng)設(shè)計(jì)的起點(diǎn),數(shù)據(jù)庫(kù)設(shè)計(jì)直接影響系統(tǒng)開(kāi)發(fā)效率[11]。為了提高數(shù)據(jù)存儲(chǔ)和訪問(wèn)效率,根據(jù)平臺(tái)功能模塊以及系統(tǒng)需求,在數(shù)據(jù)庫(kù)內(nèi)建立了多個(gè)數(shù)據(jù)表,數(shù)據(jù)表詳細(xì)信息如下:
(1)用戶users表。用戶是在線學(xué)習(xí)互動(dòng)平臺(tái)中最基本的實(shí)體,也是數(shù)量最龐大的群體,在設(shè)計(jì)數(shù)據(jù)表時(shí)要著重考慮用戶的關(guān)鍵屬性(見(jiàn)表1)。
(2)視頻Videos表。視頻數(shù)據(jù)是在線學(xué)習(xí)互動(dòng)平臺(tái)的重要組成部分,每個(gè)視頻有唯一編號(hào),每個(gè)視頻也有其所屬的類別(見(jiàn)表2)。
(3)評(píng)論Comment表。學(xué)員在觀看完視頻后,可以對(duì)視頻內(nèi)容進(jìn)行評(píng)論,給其他學(xué)員提供參考(見(jiàn)表3)。
(4)彈幕表。彈幕是指在觀看視頻過(guò)程中對(duì)視頻內(nèi)容進(jìn)行評(píng)價(jià),同時(shí)也是在線互動(dòng)方式的體現(xiàn)(見(jiàn)表4)。
3平臺(tái)實(shí)現(xiàn)
3.1主界面與登錄/注冊(cè)實(shí)現(xiàn)
本平臺(tái)設(shè)計(jì)風(fēng)格與愛(ài)慕課網(wǎng)站風(fēng)格類似,用戶無(wú)需登錄即可訪問(wèn)平臺(tái)主界面,只是一些評(píng)論和彈幕等功能無(wú)法使用。用戶需登錄后才能訪問(wèn)自己的主界面。在登錄/注冊(cè)模塊中,平臺(tái)可以對(duì)后臺(tái)數(shù)據(jù)庫(kù)的users表進(jìn)行查詢和插入。
(1)模型層實(shí)現(xiàn)。根據(jù)數(shù)據(jù)庫(kù)中的表設(shè)計(jì),把所有用戶信息用Users這一JavaBean進(jìn)行封裝,部分代碼如下:
package com.mooc.model;
public class Users {
private Integer user_id;
private String user_name;
private String password;
private String email;
private String mobile;
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
}
數(shù)據(jù)庫(kù)連接類的設(shè)計(jì)核心代碼如下:
public class DBConnection {
private static final String driver = "com.mysql.jdbc.Driver"; //獲得數(shù)據(jù)庫(kù)驅(qū)動(dòng)
//獲取連接
private static final String url="jdbc:mysql://localhost:3306/stdy?useUnicode=true&characterEncoding=UTF8";
private static final String username="root";//用戶名
private static final String password="root";//數(shù)據(jù)庫(kù)密碼
private static Connection conn=null;
//定義靜態(tài)模塊
static
{
try
{
Class.forName(driver);
}
catch(Exception ex)
{
ex.printStackTrace();endprint
}
}
public static Connection getConnection() throws SQLException {
// 采用TODO 自動(dòng)生成的方法存根
if(conn==null)
{
conn = DriverManager.getConnection(url, username, password);
return conn;
}
return conn;
}
}
(2)控制層設(shè)計(jì)。控制層使用Servlet,用戶在登錄頁(yè)上輸入用戶名和密碼,然后與數(shù)據(jù)庫(kù)中用戶表上的相應(yīng)記錄進(jìn)行對(duì)比。若對(duì)比驗(yàn)證通過(guò),則跳轉(zhuǎn)到用戶自己的主頁(yè)視圖,否則跳轉(zhuǎn)到平臺(tái)的主頁(yè)視圖重新登錄。其核心代碼如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Autogenerated method stub
response.setCharacterEncoding("utf8");
request.setCharacterEncoding("utf8");
String action = request.getParameter("action");
String username = request.getParameter("username");
String password = request.getParameter("password");
HttpSession session = request.getSession();
session.setAttribute("action",action);
PrintWriter out=response.getWriter();
Connection connection;
try {
connection = DBConnection.getConnection();
String sql = "SELECT * FROM users WHERE user_name=" + "'" + username + "'" + " AND password = " + "'"
+ password + "'";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (!rs.next()) {
//response.sendRedirect("pages/login.jsp");
out.println("");
//ps.close();
//connection.close();
} else {
session.setAttribute("username", rs.getString(2));
session.setAttribute("password", rs.getString(3));
response.sendRedirect("pages/index1.jsp");
//ps.close();
//connection.close();
//rs.close();
}
} catch (Exception e) {
// TODO Autogenerated catch block
e.printStackTrace();
}
}
(3)視圖層實(shí)現(xiàn)。在用戶登錄前顯示的是公用的主頁(yè)面index1.jsp,登錄成功后,呈現(xiàn)的是用戶自己的主頁(yè)面。
3.2用戶管理模塊實(shí)現(xiàn)
用戶管理即用戶成功登錄平臺(tái)后,對(duì)自己的個(gè)人信息進(jìn)行增補(bǔ)、修改等管理操作。然后根據(jù)用戶在平臺(tái)視圖層上的操作,更新后臺(tái)數(shù)據(jù)庫(kù)中的相應(yīng)記錄信息。相應(yīng)的操作代碼封裝在UserDao類中。
若用戶在注冊(cè)時(shí)信息不全,注冊(cè)成功后,登錄進(jìn)行用戶信息的補(bǔ)全。其代碼如下:
public void addUser(Users u) throws Exception{
java.sql.Connection conn=DBConnection.getConnection();
String sql=""+
"insert into users"+
"(user_id,user_name,password,email,mobile)"
+ "values(" + "?,?,?,?,?)";
PreparedStatement ptmt=conn.prepareStatement(sql);endprint
ptmt.setInt(1, u.getUser_id());
ptmt.setString(2,u.getUser_name() );
ptmt.setString(3, u.getPassword());
ptmt.setString(4, u.getEmail());
ptmt.setString(5, u.getMobile());
ptmt.execute();
}
用戶注冊(cè)成功一段時(shí)間后,若有信息變更則需更新數(shù)據(jù)庫(kù),刪除和查詢等操作與上述操作相似,在此不再贅述。
3.3資源管理實(shí)現(xiàn)
資源管理是指對(duì)平臺(tái)上的視頻課程等資源進(jìn)行相應(yīng)管理,主要實(shí)現(xiàn)了視頻的查找、播放和下載功能。用戶登錄后查找相應(yīng)的視頻課程,然后進(jìn)行播放學(xué)習(xí)。
視頻資源管理中,視頻查找功能的核心代碼如下:
// response.setCharacterEncoding("utf8");
request.setCharacterEncoding("utf8");
response.setCharacterEncoding("utf8");
String fimname = null;
if (request.getParameter("sname") != null) {
fimname = new String(request.getParameter("sname").getBytes("ISO88591"),"utf8"); }
// String fimname=request.getParameter("sname");//影片索引名
//System.out.println(fimname);
session.setAttribute("fimname",fimname);
String filpath="";//影片物理地址
String namepath="";//影片物理名
String str="select video_url from videoes where video_name='"+fimname+"'";
ResultSet rslook=rst.getResult(str);
if(!rslook.next()){
out.println("");
}
else{//通過(guò)結(jié)果集獲得影片物理名,并設(shè)置影片物理地址
namepath=rslook.getString("video_url");
filpath="./public/"+namepath;
//System.out.println(filpath);
}
3.4互動(dòng)交流實(shí)現(xiàn)
該模塊是用戶進(jìn)行學(xué)習(xí)交流的模塊,用戶可以在該模塊中發(fā)送文字信息。在觀看過(guò)程中若遇到不懂的知識(shí),用戶可以在聊天室詢問(wèn)或與其他用戶討論。其核心代碼如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Autogenerated method stub
//doPost(request, response);
request.setCharacterEncoding("utf8");
response.setCharacterEncoding("utf8");
HttpSession session=request.getSession();
if(session.getAttribute("chatindex") == null){
session.setAttribute("chatindex", 0);
}
Integer oldindex = (int)session.getAttribute("chatindex");
Integer newindex = list.size();
String getmsg = "";
for (int i = oldindex; i < newindex; i++) {
getmsg = getmsg + list.get(i)+"&";
//System.out.println("for :"+getmsg);
}
session.setAttribute("chatindex", newindex);
response.setContentType("text/xml;charset=UTF8");
PrintWriter out = response.getWriter();
if(getmsg == ""){
getmsg = "0" ;
}
out.write(getmsg);endprint
out.close();
}
3.5彈幕功能實(shí)現(xiàn)
彈幕是指觀看視頻時(shí),從屏幕飄過(guò)的猶如幕布的大量吐槽評(píng)論。在觀看過(guò)程中,用戶可以發(fā)送不同顏色的彈幕來(lái)增加娛樂(lè)性。其程序運(yùn)行結(jié)果如圖2所示。
圖2彈幕
4結(jié)語(yǔ)
本文根據(jù)MOOC資源共享、開(kāi)放互動(dòng)的理念,采用MVC三層開(kāi)發(fā)模式,即JavaBean(Model)+Servlet(View)+JSP(Control)體系,設(shè)計(jì)了一個(gè)基于MVC開(kāi)發(fā)模式的在線學(xué)習(xí)互動(dòng)平臺(tái)。實(shí)踐結(jié)果表明,該平臺(tái)系統(tǒng)結(jié)構(gòu)清晰,保證了數(shù)據(jù)安全,具有很好的運(yùn)行效果,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。平臺(tái)實(shí)現(xiàn)了視頻點(diǎn)播、視頻發(fā)布、視頻管理、互動(dòng)交流等功能,另外還加入了彈幕功能,增加了在線學(xué)習(xí)的趣味性。在信息技術(shù)高速發(fā)展的時(shí)代,人們?cè)絹?lái)越依賴于網(wǎng)絡(luò)教育。因此,基于“互聯(lián)網(wǎng)+”的在線學(xué)習(xí)平臺(tái)的研究將對(duì)在線教育的發(fā)展起到重要推動(dòng)作用。下一步還需要考慮在平臺(tái)運(yùn)行過(guò)程中大規(guī)模課程的存儲(chǔ)和并發(fā)訪問(wèn)問(wèn)題。
參考文獻(xiàn)參考文獻(xiàn):
[1]陳肖庚,王頂明.MOOC的發(fā)展歷程與主要特征分析[J].現(xiàn)代教育技術(shù),2013,23(11):510.
[2]劉欣.基于MVC模式的Web軟件系統(tǒng)開(kāi)發(fā)框架設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2013.
[3]DAODE HE, TONG Y S, LINGLING W U, et al. The teaching reform discussion of JSP program design course based on the creative learning[J]. Computer Knowledge & Technology, 2014(8):3034.
[4]馮相忠,王萍.基于J2EE平臺(tái)的MVC模式的辦公日志系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(12):29642965.
[5]SUPAARTAGORN C. PHP framework for database management based on MVC pattern[J]. International Journal of Computer Science & Information Technology, 2011,3(2):437444.
[6]王民.基于校園網(wǎng)的英語(yǔ)個(gè)性化教學(xué)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安石油大學(xué),2014.
[7]郭旭,茅俊杰,何嘉權(quán),等.基于MOOC的在線教學(xué)實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(2):545551.
[8]和莉.基于web2.0的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(31):73357338.
[9]谷敏,胡靜遠(yuǎn).強(qiáng)類型面向?qū)ο髣?dòng)態(tài)SQL生成器的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2016(9):114120.
[10]黎華,張曉盼,龔珍.GIS專業(yè)的Java程序設(shè)計(jì)教學(xué)改革初探[J].測(cè)繪通報(bào),2017(4):145148.
[11]托馬斯M康諾利,卡洛琳E貝格,康諾利,等.數(shù)據(jù)庫(kù)系統(tǒng):設(shè)計(jì)、實(shí)現(xiàn)與管理[M].北京:機(jī)械工業(yè)出版社,2016.
責(zé)任編輯(責(zé)任編輯:黃?。〆ndprint