資源描述:
《bbs論壇的詳細(xì)設(shè)計》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、BBS論壇的詳細(xì)設(shè)計第一章MVC中各層組件設(shè)計1、MVC中的視圖層的設(shè)計1.1一個典型的Web應(yīng)用的前端應(yīng)該是表示層表示層由UI(UserInterface)和UI控制邏輯組成。(1)UI(UserInterface)UI是客戶端的用戶界面,負(fù)責(zé)從用戶方接收命令,請求,數(shù)據(jù),傳遞給業(yè)務(wù)層處理,然后將結(jié)果呈現(xiàn)出來。(2)UI控制邏輯UI控制邏輯負(fù)責(zé)處理UI和業(yè)務(wù)層之間的數(shù)據(jù)交互,UI之間狀態(tài)流程的控制,同時負(fù)責(zé)簡單的數(shù)據(jù)驗證和格式化等功能。由于在本項目中的表示層使用Struts框架,下面為Struts所負(fù)責(zé)的主要功能:l管理用戶的請求,做出相應(yīng)
2、的響應(yīng)l提供一個流程控制器,委派調(diào)用業(yè)務(wù)邏輯和其他上層處理l處理異常l為顯示提供一個數(shù)據(jù)模型l用戶界面的驗證以下內(nèi)容,不該在Struts表示層中出現(xiàn),因為它們應(yīng)該是與表示層無關(guān)的。l與數(shù)據(jù)庫直接通信l與應(yīng)用程序相關(guān)聯(lián)的業(yè)務(wù)邏輯及校驗l事務(wù)處理因為,如果我們在表示層引入這些功能的實現(xiàn)代碼,將會給系統(tǒng)帶來高耦合和難以維護(hù)的后果。1.2基于Struts的JSP頁面所產(chǎn)生的表示層(1)如何實現(xiàn)表示和業(yè)務(wù)的分離---利用標(biāo)簽技術(shù)盡管在Struts的JSP頁面中還是可以繼續(xù)使用Java腳本的,但是,標(biāo)準(zhǔn)的做法是盡可能的使用標(biāo)簽和JavaBean,只有這樣
3、一來,才能夠把業(yè)務(wù)邏輯和頁面表示徹底分開,提高了系統(tǒng)設(shè)計的規(guī)范性和代碼的可重用性,為后期升級提供方便。(2)在本項目中所涉及的標(biāo)簽一方面即可以使用Struts中所提供的各個標(biāo)簽庫的標(biāo)簽,同時頁根據(jù)項目的實際需要定制了自己的標(biāo)簽庫的標(biāo)簽。本項目中的表示層中的部分組件類的類圖以及它們之間的關(guān)系的圖示請見下面(3)ViewHelp組件(JavaBean)將某些數(shù)據(jù)格式化或者數(shù)據(jù)轉(zhuǎn)換的功能也可以設(shè)計為JavaBean組件。1.3客戶端的JavaScript腳本的應(yīng)用(1)應(yīng)用JavaScript時的要點在Struts的應(yīng)用中,一般是不再鼓勵使用客戶端
4、的校驗技術(shù),而改用服務(wù)器端的校驗技術(shù)以提高項目的安全性和更好的兼容性。(2)JavaScript在本項目中的應(yīng)用之一為了能夠在客戶端對用戶的表單進(jìn)行及時地檢查和實現(xiàn)更友好的人機(jī)交互,在某些頁面中仍然使用客戶端的JavaScript腳本技術(shù)----主要承擔(dān)實時交互和實現(xiàn)動畫效果。(3)JavaScript在本項目中的應(yīng)用之二承擔(dān)實現(xiàn)AJAX技術(shù)的編程語言。1.4復(fù)合視圖模式(1)復(fù)合視圖(CompositeView)設(shè)計模式它定義了各種能夠以有效地把一個用戶的接口劃分成多個子視圖的規(guī)則,并且可以被重新結(jié)合起來以生成需要的總體視圖。在本項目中主要
5、利用下面的兩種形式來實現(xiàn)復(fù)合視圖。(2)其一是“MacromediaDreamweaverMX2004”中所提供的靜態(tài)模塊頁面(3)另一種則是采用Tiles標(biāo)簽庫所實現(xiàn)的動態(tài)布局頁面Tiles強(qiáng)大的模版功能能夠使頁面獲得最大的重用性和靈活性(4)HTML中的FrameSet技術(shù)1.5本項目中的各種ActionForm類的編程(1)標(biāo)準(zhǔn)的ActionForm類有了ActionForm類,網(wǎng)頁的表單和后臺的Action之間就搭建了一個幾乎無縫的平臺,所以這個模塊是非常必要的,ActionForm類是實現(xiàn)封裝網(wǎng)頁中的Form控件,是采用面向?qū)ο蟮姆?/p>
6、式來操作Form表單。本項目中對各種表示層的頁面中的各個表單進(jìn)行數(shù)據(jù)封裝,設(shè)計出各種對應(yīng)的ActionForm類。(2)DynaActionForm技術(shù)在本項目中的應(yīng)用通過利用DynaActionForm類可以不必創(chuàng)建一個個具體的ActionForm類的代碼,而只需要在Struts的系統(tǒng)的配置文件struts-config.xml種進(jìn)行ActionForm組件種的各個屬性的配置定義,從而達(dá)到減少了ActionForm類的數(shù)目的目的。1.6AJAX技術(shù)及DWR框架在本項目中的應(yīng)用(1)應(yīng)用的目的為了提供本項目的表示層組件的可操作性,計劃將在本項
7、目的一些功能模塊中應(yīng)用AJAX技術(shù)。(2)應(yīng)用DWR框架為了簡化AJAX技術(shù)的具體開發(fā)過程,本項目以DWR框架作為開發(fā)的首選平臺。(3)主要的應(yīng)用模塊l用戶登錄模塊中的用戶名稱的實時檢查l用戶注冊時的用戶名稱是否重用的實時檢查l在各種查詢方式中的表單數(shù)據(jù)之間的相互關(guān)聯(lián)l首頁中的在線用戶信息的實時顯示1.7、關(guān)于表單中的重復(fù)提交的問題的解決利用struts的同步令牌機(jī)制(token)解決Web應(yīng)用中重復(fù)提交的問題。在本項目中主要是針對BBS發(fā)表的表單進(jìn)行限制(而對于用戶注冊表單可以不需要加以限制,因為當(dāng)用戶注冊頁面回退時,表單中的所輸入的密碼回
8、自動地被清空,從而也就限制了重復(fù)提交的可能性)。1.8頁面中的動態(tài)內(nèi)容的緩存緩存(Cache)機(jī)制是提高系統(tǒng)運(yùn)行性能必不可少的技術(shù)。緩存機(jī)制從原理上講比較簡單,就是