系統學習SSH(一)--SSH

          SSH框架發展有了不短的時間,但仍然是當前各公司的主流應用框架之一,下面來具體分析一下它的基本結構,有何好處。

    SSH是Struts+Spring+Hibernate的集成框架。它在職責方面分爲四層:表示層、業務邏輯層、數據持久層和域模塊層。

    實現思路:Struts作爲系統的整體基礎架構,負責MVC分離,在Struts框架的模型部分,控制業務跳轉;Hibernate對數據持久層提供支持;Spring管理Struts和Hibernate。

    框架流程:

    Web用戶先通過JSP實現界面交互,表示層負責接收請求(Request)和發送響應(Response)到Tomcat服務器,然後Struts根據Servlet(以配置文件struts-config.xml形式實現)將接收到的Request委派給相應的Action處理,Action調用Model進行業務實現;業務層管理服務組件的Spring IOC容器負責向Action提供業務模型(Model)和該組件的數據處理(DAO)來完成業務邏輯,並提供事務處理、緩衝池等容器組件來提升性能和保證數據的完整性。持久層則依賴於Hibernate的對象化映射和數據庫交互,處理數據請求並返回結果。

    如圖:

    

     簡單描述:表示層(Presentation Layer)包括了html頁面及CSS和JS,我們主要應用的還是JSP和Servlet;控制層(Controller Layer)主要是Struts,包括Struts-config.xml,Action及ActionForm、Struts標籤等;業務邏輯是Spring來配置的,包括IOC容器管理、事務管理、配置Struts和Hibernate的文件applicationContext.xml和基本的持久化支持;持久層主要封裝了持久化的DAO接口和實現。最後通過連接池和數據庫交互,提升系統性能。

     

     SSH包含內容的詳細介紹:

     Struts1負責MVC分離,它對Model、View、Controller都提供了對應的組件。

     機制:ActionServlet(核心控制器)首先攔截來自用戶的請求,然後分發到對應的Action;Action根據請求調用Model的業務邏輯方法處理請求,返回給JSP頁面。Model封裝了ActionForm和JavaBean,ActionForm中封裝了用戶的請求參數,可以通過ActionServlet提供給Action調用;JavaBean則封裝了底層的業務邏輯,包括訪問DB等。View主要是JSP,我們可以通過Struts1自身提供的標籤庫和Model進行數據交互。Controller由系統邏輯控制器和業務邏輯控制器組成,分別對應ActionServlet和Action。

     Spring是開源的,主要是爲解決企業應用開發複雜性產生的,它使用基本的JavaBean代替EJB,並提供了更多的企業應用功能。

     Spring是輕量級的,同時也是非侵入性的,即Spring中的應用不依賴於特定類。它提供了AOP和IOC機制,並且作爲容器管理應用對象的配置和聲明週期。

     Spring可以將簡單的組件配置、組合成爲複雜的應用,靈活配置和管理,使系統更乾淨、易測試、易於應對變化。

     Hibernates是一個開放的ORM框架,且是相對輕量級的、非侵入性的。它通過5個核心接口對持久化對象進行數據存取和事務控制。這些接口是:SessionFactory、Session、Configuration、Transaction、Query和Criteria。Session接口負責執行被持久化對象的CRUD操作,SessionFactory負責創建Session,Configuration負責配置並啓動Hibernate並創建SessionFactory,操作多數據庫時,可以爲每一個數據庫指定一個SessionFactory,Transaction負責事務,Query和Criteria負責數據庫查詢等。


    總體來講,SSH框架有很多優點供我們學習借鑑和使用:

    1、實現了MVC模式,層次清晰,開發者可以專注於實現;

    2、Struts提供了標籤庫、Hibernate封裝了DAO,都大大簡化了操作,提高了開發效率;

    3、他們通過配置文件來掌握系統與各個部分的關係,使系統靈活可配、易於變化和管理;

    4、Spring和Hibernate都是輕量級的、非侵入性的,便於移植;

    5、Spring實現了AOP、IOC機制,提供了方便的事務、日誌服務和依賴管理。


    


            

發佈了145 篇原創文章 · 獲贊 37 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章