轉自 https://blog.csdn.net/wangmei4968/article/details/49364101
這篇關於SSH簡介的部落格似乎有些姍姍來遲,但是隻要總結,什麼時候都不算晚。下面是專案一覽圖:
什麼是SSH框架呢?
SSH是struts+spring+hibernate整合的web應用程式開源框架。
Struts:用來控制的,核心控制器是Controller。
Spring:對Struts和Hibernate進行管理,整合的。
Hiernate:操控資料庫。
SSH是怎樣一個流程?
SSH從職責上分為四層:表示層、業務邏輯層、資料持久層和域模組層。
先來一下知識點大掃盲活動。
struts標籤庫:Struts2預設的表示式語言是OGNL(Object-Graph Navigation Language),通過它可以存取物件的任意屬性、呼叫物件的方法、遍歷整個物件的結構圖、實現欄位型別轉換等功能。例如:
JSP: HTML檔案中插入Java程式段和JSP標記。
web.xml: Struts2核心過濾器和監聽器
struts.xml: 管理應用中的Action對映,及Action處理結果和物理資源之間的對映。
ApplicationContext.xml: 整合了struts和Hibernate。
*.hbm.xml:O/R Mapping(Object Relational Mapping)對映檔案,實體和表的對映關係通過XML來描述的檔案。在專案啟動的時候載入到記憶體中。
PO:Persistent Object,持久化物件。
掃盲完成後,官方解釋就容易理解多了。
整體的呼叫關係:JSP–Action–Service–DAO–PO–資料庫
在表示層中,首先通過JSP頁面實現互動,負責接收請求(request)和傳送請求(response),Struts根據配置檔案(struts.xml)將ActionServlet(Struts的內建核心控制器元件)接收到的Request請求委派給Action處理。
在業務層中,管理伺服器組建的Spring IOC容器負責向Action提供業務模型(Model)元件和該元件的協作物件資料處理(DAO)組建完成業務邏輯,並提供事務處理、緩衝池等容器元件以提升和保持資料的完整性。
在持久層,依賴於Hibernate的物件化對映和資料庫互動,處理DAO組建請求的資料,並返回處理結果。
SSH框架有什麼優點?
1.spring管理物件的例項化,把物件的建立和獲取放到外部,更加的靈活方便。
2.Hibernate避免了JDBC連線資料庫的冗餘繁雜
3.各層分工明細,實現了各層之間的解耦,程式碼更加靈活。