Struts概述
Struts是apache組織的一個開放源碼項目,它是一個可重用的MVC設計。
Struts應用有3個主要部件:Servlet及負責具體業務處理的Action類(Controller),JSP頁面(VIEw)和Struts應用的業務邏輯封裝(Model)。
Struts組件結構如圖1所示。ActionServlet處理客戶請求,利用配置的ActionMapping對象,把請求映射到Action處理器對象進行處理。Action處理對象訪問ActionForm中的數據,處理和響應客戶請求,它還調用後台的Bean組件,這些組件封裝了具體的業務邏輯。Action處理器對象根據處理結果通知ActionServlet,ActionServlet進行下一步的處理。
圖1:Struts的組件結構在Struts中,ActionServlet擔任了重要的角色,由它控制所有的程序流轉,使MVC三個相對獨立的部分協調工作,因此增強了開發人員對系統的整體把握,提高了系統的可維護性和可擴充性。
Hibernate——對象關系映射工具
數據庫對象化的方向有兩個:在主流關系數據庫的基礎上加上對象化特征,使之提供面向對象的服務,但訪問語言基於SQL;另一種方向是用全新的面向對象概念設計數據庫,即對象數據庫ODBMS。
由於當前對象型數據庫沒有得到廣泛的應用,在企業級應用中,關系型數據庫仍處於主流地位。所以,在企業級系統中,應用對象關系映射(Object Relational Mapping,ORM)框架對關系型數據庫進行對象化,實現持久層數據的對象化處理具有極為重要的意義。在J2EE架構體系中,可以用對象關系映射框架表示持久性數據,從而實現關系型數據庫的對象化。
Hibernate是一種新的ORM映射工具,它同時提供了從Java類到數據表的映射和數據查詢、恢復等機制,實現數據層對象的持久性。相對於使用JDBC和SQL來手工操作數據庫,使用Hibernate可以大大減少操作數據庫的工作量。並且Hibernate可以和多種Web服務器以及應用服務器良好地集成。
Hibernate是開放源代碼的對象關系映射框架,是JDBC的輕量級對象封裝。Hibernate是按照LGPL許可證發布的開放式源代碼應用程序,它是“用於Java的超高性能的對象/關系持久性和查詢服務。”
應用Hibernate,可以使Java程序員方便的用對象編程的思想,將持久性對象映射到關系數據庫,而不必花費大量的開發時間去更新和維護復雜的數據持久層,降低J2EE架構應用軟件開發的難度和復雜度,提高Java應用軟件的開發效率,進而使Java的企業級應用開發更加容易,更加靈活、強大。
Hibernate和Struts綜合應用的系統架構
規范的J2EE架構中,應用數據的表示應該被限制在相應的層內,而不應該擴散到其它層,這樣可以降低數據在應用層之間的耦合性,提高J2EE整體架構的可維護性和可擴展性。在結合MVC的系統架構設計模式和基於Hibernate的數據層持久化框架應用中,系統的應用架構如圖2所示。
圖2:系統的應用架構ActionForm Bean是View模塊的數據表示,其數據來源於VIEw模塊中JSP頁面的數據提交。持久層的數據來源於數據庫,其數據表示和數據庫裡的表相對應。且持久性數據可以由Hibernate動態生成,ActionForm Bean中的數據流動到Controller為止,Hibernate持久性對象生成的數據滿足了業務邏輯層的應用。