姚明
摘要:為了方便“設(shè)計模式”課程教學(xué)以及提高教學(xué)質(zhì)量,設(shè)計與實(shí)現(xiàn)一個“設(shè)計模式”課程教學(xué)網(wǎng)站。網(wǎng)站基于B/S架構(gòu),采用MVC+DAO設(shè)計模式和Java Web、MySQL數(shù)據(jù)庫技術(shù)設(shè)計與實(shí)現(xiàn)。經(jīng)測試,可以發(fā)布、瀏覽信息,上傳、瀏覽或下載資源,留言交流和在線自測等,達(dá)到了設(shè)計要求。
關(guān)鍵詞:教學(xué)網(wǎng)站;B/S架構(gòu);MVC+DAO設(shè)計模式;MySQL數(shù)據(jù)庫
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)09-0167-03
Abstract: In order to facilitate courses teaching of "design pattern" and to improve teaching quality, a "design pattern" courses teaching website was designed and implemented. Based on B/S architecture,using MVC+ DAO design pattern,Java Web and MySQL database technology,the courses teaching website was designed and implemented. Through testing,information can be published and can be browsed,resources can be uploaded,browsed or downloaded,message can be exchanged and self test can be online,the courses teaching website meets the design requirements.
Key words: teaching website; B/S architecture; MVC + DAO design pattern; MySQL database
網(wǎng)絡(luò)化、信息化是當(dāng)今教學(xué)改革的必然趨勢之一,信息技術(shù)為教學(xué)信息化的順利實(shí)施提供了強(qiáng)大的技術(shù)支持。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)教學(xué)平臺在當(dāng)前課程教學(xué)中得到廣泛應(yīng)用。課程教學(xué)網(wǎng)站作為現(xiàn)代信息技術(shù)與課程整合的一種形式,其整合和節(jié)約了教學(xué)資源,構(gòu)建了一種新型教學(xué)模式,提高了教學(xué)效率。結(jié)合網(wǎng)站教學(xué)的特點(diǎn),為方便“設(shè)計模式”課程教學(xué)以及提高教學(xué)質(zhì)量,對“設(shè)計模式”課程的教學(xué)內(nèi)容和教學(xué)方式進(jìn)行適當(dāng)安排和調(diào)整,設(shè)計和實(shí)現(xiàn)了“設(shè)計模式”課程教學(xué)網(wǎng)站。
1 功能需求分析
設(shè)計的網(wǎng)站主要為在網(wǎng)上進(jìn)行“設(shè)計模式”課程的教學(xué)服務(wù),學(xué)生和教師可以在網(wǎng)上方便地瀏覽網(wǎng)站上的信息如公告、教學(xué)資源以及觀看或下載資源,學(xué)生可以完成練習(xí)或測試并通過留言板與同學(xué)、教師在網(wǎng)上互動。教師除具備學(xué)生用戶所具有的功能外,還可以發(fā)布和刪除各項(xiàng)教學(xué)資源。管理員(一般由任課教師擔(dān)任)在后臺進(jìn)行用戶信息和教學(xué)資源的管理。
因此,將系統(tǒng)用戶分為學(xué)生、教師和管理員三類。他們分別有不同的功能需求,將這些需求整理如下。
1.1 學(xué)生:個人信息維護(hù),公告瀏覽,課件、視頻、試題瀏覽或下載,在線自測,在線討論。
1.2 教師:個人信息維護(hù),公告瀏覽,課件、視頻、試題瀏覽或下載,課件、視頻、試題發(fā)布或刪除,在線討論。
1.3 管理員:
1)用戶管理:教師、學(xué)生用戶的添加、修改和刪除,學(xué)生信息的瀏覽、修改和刪除。
2)公告管理:發(fā)布、修改、刪除教學(xué)計劃、課程安排、考試日程、教學(xué)安排、通知等信息。
3)留言管理:瀏覽、發(fā)布、刪除留言,修改留言內(nèi)容。
4)資源管理:瀏覽、刪除課件、視頻、試題。
2 系統(tǒng)架構(gòu)和功能模塊設(shè)計
網(wǎng)站基于B/S架構(gòu),采用MVC(Model-View-Controller,模型視圖控制器)+ DAO(Data Access Object,數(shù)據(jù)訪問對象)設(shè)計模式進(jìn)行設(shè)計。MVC設(shè)計模式很好地實(shí)現(xiàn)了數(shù)據(jù)層與表示層的分離,而DAO設(shè)計模式則用于封裝數(shù)據(jù)庫持久層的所有操作,使低級的數(shù)據(jù)邏輯和高級的業(yè)務(wù)邏輯分離。MVC+DAO設(shè)計模式通過在MVC設(shè)計模式中作為控制層部分的Servlet里創(chuàng)建并調(diào)用DAO接口實(shí)現(xiàn)類的對象完成相應(yīng)操作得以實(shí)現(xiàn)。
根據(jù)前面的需求分析,將系統(tǒng)功能模塊分為三個部分:管理員功能模塊、教師功能模塊和學(xué)生功能模塊。其中,教師功能模塊和學(xué)生功能模塊作為前臺管理模塊處理,管理員功能模塊作為后臺管理模塊處理。系統(tǒng)整體功能模塊如圖1所示。
用戶根據(jù)登錄身份的不同進(jìn)入不同的功能模塊界面:系統(tǒng)首先獲取登錄頁面提交的用戶名、密碼、身份,之后根據(jù)身份到數(shù)據(jù)庫里對應(yīng)的表中匹配用戶名和密碼,若匹配成功則根據(jù)身份即權(quán)限的值進(jìn)入相應(yīng)的頁面,否則輸出賬號或密碼錯誤。
學(xué)生在系統(tǒng)首頁注冊賬號后,需要管理員的審核才能生效。只有管理員審核通過以后該學(xué)生才具有學(xué)生功能權(quán)限,例如觀看教學(xué)視頻、在線自測、留言等。
在相應(yīng)的用戶頁面中,左側(cè)部分提供了各個功能的導(dǎo)航即頁面鏈接,其余部分為相應(yīng)操作窗口。以已實(shí)現(xiàn)的管理員操作頁面為例,點(diǎn)擊其中“公告管理”鏈接可打開公告管理界面頁面,如圖2所示。
3 數(shù)據(jù)庫設(shè)計
通過分析、設(shè)計,在數(shù)據(jù)庫中共建了九個表:管理員信息表(t_admin)、教師信息表(t_teacher)、學(xué)生信息表(t_student)、公告信息表(t_notice) 、留言信息表(t_message)、課件信息表(t_ courseware)、視頻信息表(t_video)、試題信息表(t_test)、自測題信息表(t_testself)。這里僅對其中的學(xué)生信息表和公告信息表進(jìn)行介紹說明。學(xué)生信息表用于存儲學(xué)生的基本信息,主要字段包括:ID、學(xué)號、姓名、性別、年齡、登錄賬號、登錄密碼等,如表1所示。公告信息表用于存儲管理員發(fā)布的公告信息,主要字段包括:編號、公告標(biāo)題、公告內(nèi)容、發(fā)布時間等,如表2所示。
4 系統(tǒng)功能實(shí)現(xiàn)
4.1 網(wǎng)站首頁設(shè)計與實(shí)現(xiàn)
設(shè)計的網(wǎng)站首頁采用DIV+CSS排版布局方法實(shí)現(xiàn)。設(shè)計頂部、左側(cè)和底部頁面,分別保存為top.jsp、left.jsp和foot.jsp,然后在主頁面相應(yīng)的DIV塊中通過
4.2 學(xué)生注冊設(shè)計與實(shí)現(xiàn)
在注冊/登錄界面中,未注冊的學(xué)生用戶點(diǎn)擊“注冊”按鈕,系統(tǒng)彈出注冊頁面(stuReg.jsp),填寫信息并點(diǎn)擊”提交”進(jìn)行注冊。提交時,會調(diào)用當(dāng)前頁面里的JavaScript函數(shù)作輸入內(nèi)容是否為空以及數(shù)據(jù)格式是否正確的檢查。檢查通過之后,再通過表單名調(diào)用submit()函數(shù)發(fā)送到服務(wù)器。注冊的用戶名需要等管理員審批后才能生效,是否審核通過只需更新學(xué)生信息表(t_student)中用于記錄審批狀態(tài)的approval字段值即可。注冊界面如圖4所示。
4.3 教學(xué)視頻發(fā)布設(shè)計與實(shí)現(xiàn)
登錄成功的教師用戶通過點(diǎn)擊相應(yīng)操作網(wǎng)頁界面菜單中的“視頻管理”菜單項(xiàng),再點(diǎn)擊“視頻添加”子菜單項(xiàng)即可對欲上傳視頻進(jìn)行編輯提交實(shí)現(xiàn)視頻發(fā)布,如圖5所示。視頻上傳采用Apache Commons組件包中的FileUpload組件完成。學(xué)生登錄系統(tǒng)成功后可在線播放視頻或下載視頻附件。通過點(diǎn)擊網(wǎng)站主頁菜單的“教學(xué)視頻“菜單項(xiàng)可瀏覽教學(xué)視頻信息列表,并可點(diǎn)擊紅色文件名查看視頻介紹,如圖6所示。
在線播放視頻通過在頁面中插入Windows Media Player播放器用來播放,文件下載則通過使用response對象和io流編程完成。文件下載關(guān)鍵代碼如下:
String fileName=new String(request.getParameter("filename").getBytes("iso8859-1"));
File file = new File(getServletContext().getRealPath("/") + "download/"+ fileName);
InputStream is = new FileInputStream(file);
OutputStream os = response.getOutputStream();
response.addHeader("Content-Disposition", "attachment;filename ="
+ new String(file.getName().getBytes("utf-8"),"iso8859-1"));
response.addHeader("Content-Length", new Long(file.length()).toString());
response.setCharacterEncoding("utf-8");
int n = 0;
while((n = is.read()) != -1){
os.write(a);}
4.4 公告管理設(shè)計與實(shí)現(xiàn)
管理員登錄成功后,通過點(diǎn)擊管理員操作頁面中的“公告管理”鏈接可查看公告標(biāo)題列表或添加公告如圖2所示。因?yàn)楣婢哂袝r效性,過期公告會作定期刪除,所以查看公告的頁面不必加入分頁功能。點(diǎn)擊某條公告的“查看內(nèi)容”按鈕即可查看該公告的具體內(nèi)容或者點(diǎn)擊頁面下方的“添加公告”按鈕進(jìn)入公告編輯發(fā)布頁面。
5 結(jié)束語
設(shè)計與開發(fā)的“設(shè)計模式”課程教學(xué)網(wǎng)站實(shí)現(xiàn)了作為教學(xué)、教輔網(wǎng)站所應(yīng)具備的基本功能,經(jīng)測試和試用,可滿足教學(xué)的需求,對教學(xué)起到了一定的輔助作用。
參考文獻(xiàn):
[1] W3school在線教程[EB/OL]. http://www.w3school.com.cn.
[2] 盧瀚, 王春斌. Java Web開發(fā)實(shí)戰(zhàn)1200例(第I卷)[M]. 北京:清華大學(xué)出版社, 2011.
[3] 盧瀚, 王春斌. Java Web開發(fā)實(shí)戰(zhàn)1200例(第II卷)[M]. 北京:清華大學(xué)出版社, 2011.