什么是SSH
創(chuàng)新互聯(lián)公司是一家專業(yè)提供向陽企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站制作、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為向陽眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
SSH是 struts+spring+hibernate的一個集成框架,是目前較流行的一種web應(yīng)用程序開源框架。SSH不是一個框架,而是把多個框架(Struts、Spring以及Hibernate)緊密的結(jié)合在一起,用于構(gòu)建靈活、易于擴展的多層Web應(yīng)用程序。
SSH框架的系統(tǒng)從職責上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層(實體層)。
我們通過下面這張圖說明一下,三種框架的關(guān)系以及所包含的內(nèi)容,內(nèi)容已經(jīng)很詳細了,在這里就不做過多的解釋了。
下面我們再詳細看一下組成SSH的這三個框架。
Struts
1、什么是Struts?
從簡單性來看,Struts是這三個框架中最簡單的一個,它是基于MVC的框架。它通過采用JavaServlet/JSP技術(shù),實現(xiàn)了基于Java EEWeb應(yīng)用的MVC設(shè)計模式的應(yīng)用框架,是MVC的一個具體實現(xiàn)或著說是MVC的一個具體產(chǎn)品。
2、Struts的核心構(gòu)成
Struts的核心同樣也是MVC的核心,Struts是MVC的一個具體產(chǎn)品。
(1)Model
由Action、ActionForm以及JavaBean組成,其中ActionForm用于將用戶請求的參數(shù),封裝成為ActionForm對象,我們可以理解為實體,由ActionServlet轉(zhuǎn)發(fā)給Action,Action處理用戶請求,將處理結(jié)果返回到界面。
(2)View
該部分采用JSP+大量的taglib,實現(xiàn)頁面的渲染。
(3)Controller
Controller是Struts的核心控制器,負責攔截用戶請求,通過調(diào)用Model來實現(xiàn)處理用戶請求的功能。
3、為什么使用Struts?
使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負責MVC的分離,將頁面從業(yè)務(wù)邏輯分離出來,使用頁面更加靈活多變,不會影響業(yè)務(wù)邏輯,簡化了基于MVC的web應(yīng)用程序的開發(fā),因而使得開發(fā)更加高效。
Hibernate
1、什么是Hibernate?
Hibernate是一個對象關(guān)系映射框架,它對JDBC進行了輕量級的封裝,使得我們使用面向?qū)ο蟮乃枷氩僮麝P(guān)系型數(shù)據(jù)庫。
2、Hibernate的核心構(gòu)成
這部分內(nèi)容我們不做過多的解釋,上面導(dǎo)圖中的解釋已經(jīng)很簡單明了了,如果還是不懂的話,可以上網(wǎng)查閱相關(guān)資料。
3、為什么使用Hibernate?
(1)Hibernate是JDBC的輕量級的對象封裝,它使得與關(guān)系型數(shù)據(jù)庫打交道變得更加輕松自如。
(2)對象化,它使得我們可以以面向?qū)ο蟮乃枷氩僮麝P(guān)系型數(shù)據(jù)庫,簡化了Dao層編碼工作,使得開發(fā)更加對象化了。
(3)移植性更好,支持各種數(shù)據(jù)庫,更換數(shù)據(jù)庫異常簡單,不需要改代碼。
(4)實現(xiàn)了透明持久化,沒有實現(xiàn)第三方框架或接口,沒有侵入性,是一種輕量級框架。
Spring
1、什么是Spring?
簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。
2、Spring的核心構(gòu)成
(1)IoC
IoC就是IoC,不是什么技術(shù),是一種設(shè)計模式。通過依賴注入的方式,由spring管理和控制對象之間的依賴關(guān)系,避免硬編
碼所造成的過度程序耦合。
(2)AoP
通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù)。
(3)容器
能管理對象的生命周期、對象與對象之間的依賴關(guān)系就是容器。
3、為什么使用Spring?
沒有Spring,Struts和Hibernate可以很好的運行,我稱這樣的模式為“獨木橋”,但是有了Spring,Struts和Hibernate能夠更好的結(jié)合在一起,協(xié)調(diào)的工作。我稱這樣的模式為“陽光大道”。Spring的核心思想是IoC和AOP,Spring使得管理對象更加方便,極大的降低組件之間的耦合度,實現(xiàn)了軟件各層之間的解耦。Spring的優(yōu)點還有很多,我們就不再累述了。
總結(jié)
SSH不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離,耦合度降低,系統(tǒng)的靈活性更好,可復(fù)用性高。同時,框架為我們提供了一些基礎(chǔ)性的服務(wù),使我們的開發(fā)更加簡單,大大提高開發(fā)效率。