struts2簡介java
Struts2是由WebWork基礎上發展起來的,與struts1比較,選用struts2的理由是:①Struts1要求Action類繼承一個抽象基類,而Struts 2 Action類能夠實現一個Action接口,也可實現其餘接口,使可選和定製的服務成爲可能。Struts2提供一個ActionSupport基類去實現經常使用的接口;②Struts1 Action 依賴於Servlet API而Struts 2 Action不依賴於容器,容許Action脫離容器單獨被測試;③Struts1支持每個模塊有單獨的Request Processors(生命週期),可是模塊中的全部Action必須共享相同的生命週期,而Struts2支持經過攔截器堆棧(Interceptor Stacks)爲每個Action建立不一樣的生命週期。堆棧可以根據須要和不一樣的Action一塊兒使用。④struts同時支持配置國際化,讓不一樣語言轉換變得簡單。程序員
spring 簡介
Spring是一個開源框架。它是爲了解決企業應用開發的複雜性而建立的。本項目中使用spring主要是使用其IOC容器(即「控制反轉」)來達到鬆耦合。在事務的處理上,咱們也使用了SPRING來裝配代理設置。SPRING還帶來了AOP的編程支持,面向切面編程容許經過分離應用的業務邏輯與系統級服務(例如事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該作的「完成業務邏輯」僅此而已。它們並不負責其它的系統級關注點,例如日誌或事務支持。本項目中使用AOP的org.springframework.aop.framework.autoproxy自動建立代理來完成事務的代理。web
hibernate簡介
Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了很是輕量級的對象封裝,使得Java程序員能夠爲所欲爲的使用對象編程思惟來操縱數據庫。完成數據持久化的重任。在本項目中由於使用了hibernate持久化技術,故使用hibernateTransactionManager來完成事務管理。spring
S2SH集成框架簡介
struts 負責 web 層ActionFormBean 接收網頁中表單提交的數據,而後經過 Action 進行處理,再 Forward 到對應的網頁。
spring 負責業務層管理,即 Service (或 Manager). service 爲 action 提供統計的調用接口,封裝持久層的 DAO。同時能夠寫一些本身的業務方法。Spring負責統一 javabean 管理方法和聲明式事務管理,最後spring來集成 Hiberante 。
Hiberante ,負責持久化層,完成數據庫的 crud 操做,hibernate 爲持久層,提供 OR/Mapping 。 它有一組 .hbm.xml 文件和 POJO, 是跟數據庫中的表相對應的。而後定義 DAO ,這些是跟數據庫打交道的類,它們會使用 PO 。
在 struts+spring+hibernate 的系統中,對象的調用流程是: jsp-> Action - > Service ->DAO ->Hibernate 。 數據的流向是 ActionFormBean 接受用戶的數據, Action 將數據從 ActionFromBean 中取出,封裝成 PO,再調用業務層的 Bean 類,完成各類業務處理後再 forward 。而業務層 Bean 收到這個 PO 對象以後,會調用 DAO 接口方法,進行持久化操做。數據庫