基于web校園內(nèi)部交友平臺應用架構
-
背景
我們要實現(xiàn)的web校園內(nèi)部交友平臺是強調(diào)同學們之間的互動性的寂嘉,如果采用傳統(tǒng)的開發(fā)技術泽疆,會存在網(wǎng)站缺乏互動瘪撇,學生參與性差等特點缀去。而且采用傳統(tǒng)的ASP、JSP等技術開發(fā)的網(wǎng)站识脆,在動態(tài)頁面中會嵌套有大量的業(yè)務邏輯程序代碼设联,這會大大增加頁面維護的難度善已,同時它的可重用度低,擴展性也差离例。 -
模型選擇
為了解決上述問題换团,我們選擇目前廣泛流行的web應用架構模式——MVC(模型—視圖—控制器)模式。在這種開發(fā)框架之下宫蛆,我們將校園交友平臺的數(shù)據(jù)艘包、業(yè)務邏輯、控制以及頁面展現(xiàn)分離耀盗,各自處理自己的任務想虎,這樣會大大提高應用的可擴展性和易維護性。
在實現(xiàn)中叛拷,用戶請求被發(fā)送到一個控制器servlet舌厨,該servlet決定請求的性質(zhì),并且根據(jù)請求的類型傳送給適合的處理邏輯忿薇。每個處理邏輯都和一個特別的模型相關裙椭,里面封裝有相關邏輯來執(zhí)行一些特別的函數(shù)集合。處理完畢后署浩,結果會發(fā)送回控制器揉燃,控制器選擇適合的視圖顯示它。模型瑰抵、視圖與控制器的分離你雌,使得一個模型可以具有多個顯示視圖器联,無論何時發(fā)生了何種數(shù)據(jù)變化二汛,控制器都將通知所有的視圖并進行更行。 -
基于MVC模式的校園內(nèi)部交友平臺設計與實現(xiàn)
3.1 Struts與MVC
由于MVC模式采用了一個比較復雜的系統(tǒng)結構拨拓,所以采用MVC模式實現(xiàn)Web應用時肴颊,直接開發(fā)勢必事倍功半。如果能在某個現(xiàn)有的MVC框架下進行開發(fā)渣磷,將達到事半功倍的效果婿着。縱觀目前在開源社區(qū)中采用MVC模式的開源框架醋界,Struts是一個不錯的選擇竟宋。Struts框架如下:

在這個框架之下,主要用JSP來創(chuàng)建視圖形纺,比如說登錄界面丘侠、留言板界面等等,同時使用Struts自帶的自定義標簽庫來簡化用戶界面的創(chuàng)建過程逐样;使用ActionForm Bean來創(chuàng)建模型蜗字;運用ActionServlet來實現(xiàn)控制器打肝;用Action、ActionMapping和ActionForward來協(xié)調(diào)完成業(yè)務邏輯挪捕。
一個簡單的基于Struts的響應時序如下:

①首先在Veiw層的JSP頁面中提交一個請求粗梭。
②在Control層的Controller對象根據(jù)請求的類型來調(diào)用相應的業(yè)務處理邏輯。
③在Model層的事物類主要實現(xiàn)請求的業(yè)務功能级零。
④把業(yè)務處理結果保存在數(shù)據(jù)庫中并把響應信息保存在request中断医。
⑤Control層的Controller對象根據(jù)上一步驟的返回值進行頁面轉(zhuǎn)發(fā)。
⑥轉(zhuǎn)發(fā)到View層的JSP頁面奏纪,這個頁面從request中取得結果并進行顯示孩锡。
⑦JSP頁面中的代碼只是用于顯示結果,并沒有涉及到任何業(yè)務邏輯亥贸。
3.1.1MVC在交友平的應用
首先介紹下MVC模式的模式:
在MVC模式鐘躬窜,他是一個循環(huán)的,Control交給Model然后再給View再繼續(xù)循環(huán)炕置,在后面會詳細介紹荣挨。

其實在我們用MVC來解決校園交友平臺的時候,我們是一個封閉的環(huán)朴摊,讓我們的操作變得更為系統(tǒng)和方便默垄。
用戶在輸入要做的事情,傳遞給Control甚纲,然后Control根據(jù)指令傳遞給模型Model口锭,模型在根據(jù)邏輯判斷解決問題,并選擇出適合的試圖View介杆,將結果反饋給用戶鹃操,用戶得到反饋之后繼續(xù)下一步操作,這是MVC模式的一個常規(guī)循環(huán)春哨,在我們的平臺上荆隘,我們根據(jù)這個模型來做,使得更為規(guī)范和安全赴背。

3.2校園內(nèi)部交友平臺的表示層設計
表示層接受用戶提交的輸入請求椰拒,通過控制器將其轉(zhuǎn)化為相應的動作,獲得輸出并向用戶展示凰荚。
采用MVC設計模式燃观,由Servlet 提供頁面請求和請求響應的總體控制,JSP 和瀏覽器提供請求結果響應的可視化顯示便瑟。
3.3校園內(nèi)部交友平臺的控制器設計(業(yè)務邏輯)
控制器是模型與視圖的聯(lián)系紐帶缆毁,控制器提取通過視圖傳輸進來的外部信息,并將用戶與View的交互轉(zhuǎn)換為基于應用程序行為的標準業(yè)務事件胳徽,再將標準業(yè)務事件解析為Model應執(zhí)行的動作积锅。我們想要實現(xiàn)的校園內(nèi)部交友平臺采用Struts框架實現(xiàn)爽彤,因此控制器設計是整個系統(tǒng)設計的核心,控制器的組織方式?jīng)Q定了整個系統(tǒng)的框架缚陷。校園交友平臺采用以下控制器設計方案(6個Action類):
- 用戶登錄
負責用戶選擇登錄時頁面的跳轉(zhuǎn)适篙。根據(jù)用戶身份的不同跳轉(zhuǎn)至普通用戶或者管理員的頁面。它還可以負責新用戶的注冊箫爷。 - 用戶管理
負責管理員操作界面的響應跳轉(zhuǎn)嚷节。實現(xiàn)功能包括管理用戶信息,管理聊天記錄等等虎锚。 - 用戶空間管理
負責用戶對自己空間處理的頁面跳轉(zhuǎn)硫痰。支持用戶發(fā)表日志,修改日志窜护,管理留言板等功能效斑。 - 好友搜索
負責用戶進行好友搜索時的頁面跳轉(zhuǎn)。用戶根據(jù)標簽進行檢索柱徙,控制器將符合條件的檢索結果反饋給用戶缓屠。 - 討論組管理
負責用戶在討論組里進行操作時的頁面跳轉(zhuǎn)。實現(xiàn)聊天信息的廣播护侮,共享資源的檢索等敌完。 - 評論管理
負責所有有關評論的操作。
3.4校園內(nèi)部交友平臺的持久層設計
由于MVC模式采用了良好的體系結構羊初,所以可以將持久層分離出來滨溉,使得系統(tǒng)具有極佳的移植性和復用性。校園內(nèi)部交友平臺采用的持久層設計方案长赞,可以將它們映射為關系數(shù)據(jù)庫的表晦攒,采用JDBC連接池方式實現(xiàn);或者采用其他的持久層解決方案涧卵。具體對象如下: - 管理員信息(管理人員ID勤家,管理人員姓名,管理人員密碼柳恐,是否注銷)
- 用戶信息(用戶ID,用戶昵稱热幔,用戶密碼乐设,用戶Email,性別绎巨,年齡近尚,生日,是否在線场勤,愛好戈锻,頭像路徑)
- 資源信息(資源ID歼跟,資源所屬相冊,照片地址格遭,是否刪除)
- 相冊信息(相冊ID哈街,相冊名,資源用戶ID拒迅,是否刪除)
- 評論信息(評論ID骚秦,相片ID,日志ID璧微,說說ID作箍,評論內(nèi)容,評論時間前硫,時候刪除)
- 好友信息(好友ID胞得,用戶,用戶的好友屹电,是否刪除懒震,是否接受,是否是更新的)
- 訪問記錄信息(訪問ID嗤详,訪問人个扰,被訪問人,訪問時間)
- 日志信息(日志ID葱色,日志作者递宅,標題,內(nèi)容苍狰,創(chuàng)建時間办龄,是否刪除)
- 說說信息(說說ID,說說作者淋昭,內(nèi)容俐填,創(chuàng)建時間,是否刪除)
主要功能:數(shù)據(jù)創(chuàng)建翔忽、數(shù)據(jù)存儲英融、數(shù)據(jù)查詢、數(shù)據(jù)更新歇式、數(shù)據(jù)刪除驶悟、數(shù)據(jù)安全、數(shù)據(jù)備份/恢復材失。
與其他層接口:
1)數(shù)據(jù)庫方式的數(shù)據(jù)層面向業(yè)務邏輯層提供數(shù)據(jù)庫訪問服務接口痕鳍,業(yè)務邏輯層通過JDBC 協(xié)議訪問數(shù)據(jù)庫服務。
2)文件方式的數(shù)據(jù)層面向業(yè)務邏輯層提供文件級的訪問服務接口,業(yè)務邏輯層通過操作系統(tǒng)本身提供的文件訪問API笼呆、訪問文件數(shù)據(jù)熊响。
- 結語
總之,基于MVC架構的校園內(nèi)部交友平臺可以很好地解決交互性差诗赌、難擴展汗茄、難維護的問題。同時由于不同層各司其職境肾,有利于管理代碼剔难。而且對于存在大量用戶界面的校園內(nèi)部交友平臺來說,我們使用的MVC架構可以達到多個視圖共享一個模型的效果奥喻,這樣大大提高了靈活性偶宫。這些對于后期的開發(fā)、維護都是十分有利的环鲤。