選擇J2EE的SSH框架的理由


選擇J2EE的SSH框架的理由

Struts2框架:

    Struts2框架的基本思想是采用MVC設計模式,即將應用設計成模型(Model)、視圖(View)和控制器(Control)三個部分;控制部分由DispatchFilter承擔,模型部分是由一系列的攔截器(Interceptors)、Action組件和ActionContext組件組成,視圖組件則是由Result組件組成。

    Struts2是這樣工作的:首先由我們即用戶在瀏覽器中輸入一個url地址,例如:http://localhost:8080/Struts2,此時瀏覽器就會把這個請求發送給tomcat,tomcat接收到這個請求后,會檢查一下應該交給哪個web程序處理,接着是交給Struts去處理,然后Struts會去參考此程序下的配置文件web.xml,在web.xml中依次按順序找到過濾器(Filter),最后由過濾器FilterDispatcher(是mvc中c控制層的核心)詢問ActionMapper來決定這個請是否需要調用某個Action, 如果 ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給 ActionProxy ,ActionProxy通過struts.xml詢問框架的配置文件,找到需要調用的Action類和方法來處理這請求;Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,並跳轉到相應頁面,最后返回HTTP響應到客戶端瀏覽器;可以簡化為以下示圖:

Hibernate框架:

    在基於MVC設計模式的JAVA WEB應用中,Hibernate可以作為模型層/數據訪問層。它通過配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA對象或PO(Persistent Object,持久化對象)映射到數據庫中的數據庫,然后通過操作PO,對數據表中的數據進行增,刪,改,查等操作。

    Hibernate是這樣工作的:應用程序先調用Configration類,該類讀取Hibernate的配置文件及映射文件中的信息,並用這些信息生成一個SessionFactpry對象;然后從SessionFactory對象中生成一個Session對象,並用Session對象生成Transaction對象;可通過Session對象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法對PO進行加載,保存,更新,刪除等操作;在查詢的情況下,可通過Session對象生成一個Query對象,然后利用Query對象執行查詢操作;如果沒有異常,Transaction對象將 提交這些操作結果到數據庫中;可以簡化為以下視圖:

Spring框架:

    Spring是基於IoC(Inversion of Control,反向控制)和AOP的構架多層j2ee系統的框架,它實現了很優雅的MVC,對不同的數據訪問技術提供了統一的接口,采用IoC使得可以很容易的實現bean的裝配,提供了簡潔的AOP並據此實現Transcation Managment等等;其工作流程如下圖所示:

SSH框架的流程:

    Jsp頁面----Struts------Service(業務邏輯處理類)---Hibernate(左到右),struts負責控制Service(業務邏輯處理類),從而控制了Service的生命周期,這樣層與層之間的依賴很強,屬於耦合。這時,使用spring框架就起到了控制Action對象(Strus中的)和Service類的作用,兩者之間的關系就松散了,Spring的Ioc機制(控制反轉和依賴注入)正是用在此處。

    在SSH框假中spring充當了管理容器的角色,它能降低系統的可測試性和面向對象的程度,能消除各種各樣自定義格式的屬性文件的需要;Hibernate用來做持久層,它將JDBC做了一個良好的封裝,我們在與數據庫進行交互時可以不用書寫大量的SQL語句,很大程度上避免了因為SQL語句而造成的錯誤;Struts是用來做應用層的,它負責調用業務邏輯serivce層;由此可看出SSH確實是一個良好的系統開發框架,相信用了它之后,可以減輕我們建立解決復雜問題方案的負擔和精力,從一定程度上會有效的提高我們的開發效率,這就是我選擇它作為系統開發的理由。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM