程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於MVC設計模式的WEB應用框架研究

基於MVC設計模式的WEB應用框架研究

編輯:JAVA編程入門知識


  摘要 MVC設計模式是基於J2EE的WEB應用開發的首選模式,當前許多流行的框架也都是基於MVC設計模式的。本文簡要介紹了MVC設計模式和Struts框架,並提出了一種基於MVC模式的新型WEB應用開發框架——WebFramework,並對該框架的各個層次的組成、功能進行了具體的描述。
  
  要害詞 MVC設計模式; J2EE;框架; Struts
  
  引言
  
  隨著開源軟件的興起,各種框架也紛紛出現,如Apache 的開源框架Struts就是典型的代表。在實際軟件開發中運用這些框架,大大降低了J2EE開發的復雜度和難度,降低了開發成本。但是這些框架也有不足的地方,如難於把握,配置復雜等等。本文研究的目的在於設計出一種簡單易行的WEB開發框架——WebFramework,WebFramework結構清楚,易於理解,增加系統的可擴展性,可維護性,降低開發成本。
  
  MVC設計模式
  
  基於J2EE的WEB應用系統,多數都利用MVC模式來實現其體系結構。MVC(Model-View-Controller)是八十年代為編程語言Smalltalk-80發明的一種軟件設計模式。MVC模式將交互式應用分成模型(Model)、視圖(View)和控制器(Controller)三部分[1]。模型是指從現實世界中挖掘出來的對象模型,是應用邏輯的反映。模型封裝了數據和對數據的操作,是實際進行數據處理的計算的地方。視圖是應用和用戶之間的接口,它負責將應用顯現給用戶和顯示模型的狀態。控制器負責視圖和模型之間的交互,控制對用戶輸入的響應響應方式和流程,它主要負責兩方面的動作:把用戶的請求分發到相應的模型;將模型的改變及時反應到視圖上。MVC將這些對象分離以提高靈活性和復用性。MVC模式的結構如圖1所示:
  
   基於MVC設計模式的WEB應用框架研究[組圖]
  圖1 MVC設計模式的結構
  Struts框架
  
  Struts是Apache基金會Jakarta項目組的一個Open Source項目,它將Servlet2.2和jsp1.1標記用作實現的一部分,它由一組相互協作的類、servlet和JSP標記,組成一個可重用的系統設計。它能夠很好地幫助Java開發者利用J2EE開發WEB應用。它將設計模式中“分離顯示邏輯與業務邏輯”的能力發揮的淋漓盡致。因此,越來越多的大型的WEB應用項目的開發都紛紛采用Struts框架,或者借鑒Struts架構設計,進行基於MVC模式的應用系統的開發。
  
  Struts的工作原理如圖2所示:
   基於MVC設計模式的WEB應用框架研究[組圖]
  圖2 Struts 的工作原理
  Struts的優點主要體現在兩個方面:表單驗證和頁面導航。表單驗證解決了請求數據的驗證問題,增強了系統健壯性。而頁面導航使系統的業務流程脈絡清楚,系統各部分之間的聯系可以通過配置文件反映出來,從而在一定程度上簡化了系統以後的維護工作。
  
  但是Struts也存在一些不足:
  
  1)陡峭的學習曲線。Taglib是Struts的標記庫,假如能靈活運用,能大提高開發效率,但對初學者來說,卻需要一個持續學習的過程,增加了系統的開發成本。
  
  2)增加了系統的復雜度。業務層和表現層之間的耦合度太高,使得開發人員無法專注於表現層的設計和實現。
  
  3)沒有對表單數據前端驗證提出方案,不利於在大型系統中使用。
  
  4)配置文件過於復雜繁索,隨著系統規模的增大,struts-config.XML越來越龐大,維護也變得越來越困難。 QQRead.com 推出數據恢復指南教程 數據恢復指南教程 數據恢復故障解析 常用數據恢復方案 硬盤數據恢復教程 數據保護方法 數據恢復軟件 專業數據恢復服務指南 WebFramework框架
  
  針對Struts框架的以上不足之處,本文提出WebFramework框架,與Struts框架相比,WebFramework更簡單易行,它通過簡化表現層的設計,降低開發難度,節約開發成本;使用VO(Value Object)作為數據傳遞的方式,降低系統復雜度;運用簡單的浏覽器端表單字段數據驗證,提高系統的運行效率;簡化的配置文件,便於系統的維護。
  
  設計目標
  
  遵循J2EE規范,基於多層分布式應用軟件開發框架,分布式的層次構架方式可以提高軟件系統性能上的可擴展性,從長期的角度上保障了客戶對當前的軟件投資;實現軟件系統在異常情況下也可以正常地提供服務,提高軟件系統的穩定性;各個構架層次邏輯分離,有利於軟件開發過程中團隊成員的協同工作,提高生產效率。
  
  2、框架結構
  
  在設計策略中,將軟件系統從構架上分為數據層、業務邏輯層和表示層,主要集中在業務表示與業務邏輯層。將普通三層架構的表示層細分成視圖格式層和表示控制邏輯層。表示層涉及基於“瘦客戶”技術的用戶視圖格式服務器端表示和相應的交互式控制邏輯。視圖格式層,只保留了構建客戶端用戶視圖必要的顯示格式和事件觸發;而在表示控制邏輯層則如名稱所描述的那樣,實現了人機交互所需控制邏輯和部分業務會話邏輯,再加上貫穿所有系統邏輯層的業務實體,則構成了以MVC模式為核心的表示層架構,將顯示格式、顯示控制邏輯、模型數據三部分有效地分隔開來,大大加強了系統架構的可擴展性和應用子系統的可插拔性。
  
  業務層細分成業務會話層和業務持久化層。業務層集中在業務流程中處理邏輯的組件化封裝,且與數據層平台和外部系統無關。業務會話層,側重於業務活動,將一項業務的所有活動事務性地封裝起來,也確保業務流程處理的一致性和高效率;而業務持久化層則是為業務會話層提供支持,提供業務數據的持久化操作,在業務與數據庫之間建立分離作用的中間層,構成松耦合的架構。
  
  本分層模型中實現了MVC設計模式。其中,Servlet組件對應於MVC中的控制器(Controller)部分,JSP及Browser對應於視圖(View)部分,而會話外觀、邏輯Bean及值對象則對應於模型(Model)部分。其結構圖3所示:
  
  2.1、數據層
  
  (1)層定義
  
  數據層對數據進行治理,並向業務邏輯層提供標准化的開放訪問接口。
  
  數據層目前主要提供兩種形式的服務方式:數據庫方式和文件方式。數據庫主要提供業務操作數據等具有明顯結構化特性的數據的存儲和訪問服務;文件主要提供包括掃描文檔圖像、傳真、照片、計算機生成的報告、字處理文檔、電子表格、演示文稿、語音和視頻片段等非結構化數據的存儲和訪問服務。
  
  主要功能:數據創建、數據存儲、數據查詢、數據更新、數據刪除、數據安全、事務支持、數據備份/恢復。
  
  (2)與其他層接口
  
  1)數據庫方式的數據層面向業務邏輯層提供數據庫訪問服務接口,業務邏輯層通過JDBC協議訪問數據庫服務。
  
  2)文件方式的數據層面向業務邏輯層提供文件級的訪問服務接口,業務邏輯層通過操作系統本身提供的文件訪問API訪問文件數據。
  
  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved