在SSH中:struts 是控制層,同時與Jsp結合代表表現層,同時負責客戶端請求的處理,Spring主要處理邏輯事物處理,Hibernate主要對數據庫的持久化操作。
Jsp+Servlet+JavaBean中的Jsp負責V,Servlet代表C,JavaBean是M的體現
但是在實際的項目中到底該用哪種模式來實現,他們都是體現了三層架構
首先我們了解一下各自模式中各個框架的技術:
那首先要了解ssh的分工和其優勢。
Struts:一個jsp+servlet+Javabean
那首先要了解ssh的分工和其優勢。
Struts:一個jsp+servlet+Javabean的完美體現,MVC的最好詮釋。
hibernate:把面向對象的dao層操作,ORM映射,數據的可移植,有自己的緩存。
spring:一個 多擴展、靈活、容入了多種設計模式、面向對象編程思想的容器。
ssh很好是萬能的。
如果用JavaBean + servlet+ jsp開發就有很多問題。
1。國際化不好實現,現在很多項目都要求有簡體,繁體,英文版。所以用上struts比較好。
2.如果用jdbc操作數據庫很麻煩,如果是crm,erp系統數據庫表一般很多,
有些表字段也很多,你寫sql估計要寫的手都酸了。如果需求有改變。要增加幾個字段。改動也不小,如果項
目中有人喜歡用select * from 那就更麻煩。所以用上hibernate會很好。
有一些查詢比如說表中關聯的是ID,顯示的時候要用名稱,這時你還要寫連接查詢sql,顯示的時候還要為這個
list 再寫一個Javabean,但hibernate中就不用這樣實現,直接可以查,
3 一般模式一般不好實現事務管理,也許有很多Javabean +servlet模式開發的項目根本沒有做事務控制。
SSH的集合 其實是 表現層、dao層、邏輯層的 明確分工,對於項目的開發 和后期維護帶來的積大的方便。
對於小項目 這樣的結合反而會很糟糕,因為維護成本比較高。
而對於中型項目 這樣的結合便於整個項目的開發。
這里struts看作是表現層、hibernate看作是DAO層,spring作為一個核心容器。
至於性能 一般體現不出來,但遇到龐雜的數據操作和業務邏輯 其性能才會體現。
所以JavaBEAN+SERVLET+JSP 和 SSH 其性能的可比性 要根據項目需求不同來定。
SSH的結合 才是真正MVC的組合模式的完美體現。