精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
SSH框架總結(jié)(框架分析+環(huán)境搭建+實(shí)例源碼下載)

 

首先,SSH不是一個(gè)框架,而是多個(gè)框架(struts+spring+hibernate)的集成,是目前較流行的一種Web應(yīng)用程序開(kāi)源集成框架,用于構(gòu)建靈活、易于擴(kuò)展的多層Web應(yīng)用程序

 

集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層(實(shí)體層)。

 

Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持Spring一方面作為一個(gè)輕量級(jí)的IoC容器,負(fù)責(zé)查找、定位、創(chuàng)建和管理對(duì)象及對(duì)象之間的依賴(lài)關(guān)系,另一方面能使StrutsHibernate更好地工作。

 

 

SSH構(gòu)建系統(tǒng)的基本業(yè)務(wù)流程是:

 

1在表示層中,首先通過(guò)JSP頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請(qǐng)求(Request)和接收響應(yīng)(Response),然后Struts根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。

2在業(yè)務(wù)層中,管理服務(wù)組件的Spring IoC容器負(fù)責(zé)向Action提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。

3在持久層中,則依賴(lài)于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果。

 

采用上述開(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。這樣無(wú)論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫(kù)的變化也不會(huì)對(duì)前端有所影響,大大提高了系統(tǒng)的可復(fù)用性。而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提高了開(kāi)發(fā)效率。

 

 

下面我們?cè)僭敿?xì)看一下組成SSH的這三個(gè)框架

一、Spring

1、什么是Spring?

簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

 

2、Spring的特性

具體自己百度吧

所有Spring的這些特征使你能夠編寫(xiě)更干凈、更可管理、并且更易于測(cè)試的代碼

 

3、為什么使用Spring?

Spring的以上特性使得開(kāi)發(fā)人員使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。

 

二、Struts

1、什么是Struts?

它通過(guò)采用 Java Servlet/JSP 技術(shù),實(shí)現(xiàn)了基于Java EEWeb應(yīng)用的MVC設(shè)計(jì)模式的應(yīng)用框架,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。

 

2、Struts1的核心構(gòu)成

 

在 Struts1 中,由一個(gè)名為 ActionServlet 的 Servlet 充當(dāng) 控制器(Controller)的角色,根據(jù)描述模型、視圖、控制器對(duì)應(yīng)關(guān)系的 struts-config.xml 的配置文件,轉(zhuǎn)發(fā)視圖(View)的請(qǐng)求,組裝響應(yīng)數(shù)據(jù)模型(Model)。

 

在 MVC 的模型(Model)部分,經(jīng)常劃分為兩個(gè)主要子系統(tǒng)(系統(tǒng)的內(nèi)部數(shù)據(jù)狀態(tài)與改變數(shù)據(jù)狀態(tài)的邏輯動(dòng)作),這兩個(gè)概念子系統(tǒng)分別具體對(duì)應(yīng) Struts 1里的 ActionForm 與 Action 兩個(gè)需要繼承實(shí)現(xiàn)超類(lèi)。在這里,Struts 1可以與各種標(biāo)準(zhǔn)的數(shù)據(jù)訪問(wèn)技術(shù)結(jié)合在一起,包括Enterprise Java Beans(EJB), JDBC 與 JNDI。

 

在 Struts 1的視圖(View) 端,除了使用標(biāo)準(zhǔn)的JavaServer Pages(JSP)以外,還提供了大量的標(biāo)簽庫(kù)使用,同時(shí)也可以與其他表現(xiàn)層組件技術(shù)(產(chǎn)品)進(jìn)行整合,比如 Velocity Templates,XSLT 等。

 

通過(guò)應(yīng)用 Struts 的框架,最終用戶(hù)可以把大部分的關(guān)注點(diǎn)放在自己的業(yè)務(wù)邏輯(Action)與 映射關(guān)系的配置文件(struts-config.xml)中。

 

3、Struts1的基本執(zhí)行流程

詳見(jiàn)《STRUTS基本工作流程》

 

4、什么是struts2

Struts 2是Struts的下一代產(chǎn)品,是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶(hù)的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開(kāi),所以Struts 2可以理解為WebWork的更新產(chǎn)品

 

5、strut2的體系結(jié)構(gòu)

 

 

解析:

當(dāng)Web容器收到請(qǐng)求(HttpServletRequest)它將請(qǐng)求傳遞給一個(gè)標(biāo)準(zhǔn)的的過(guò)濾鏈包括  流程(ActionContextCleanUp)過(guò)濾器,然后經(jīng)過(guò)Other filters(SiteMesh ,etc),

接下來(lái)需要調(diào)用FilterDispatcher核心控制器,然后它調(diào)用ActionMapper確定請(qǐng)求那個(gè)Action,ActionMapper返回一個(gè)收集Action詳細(xì)信息的ActionMaping對(duì)象。

接下來(lái)FilterDispatcher將控制權(quán)委派給ActionProxy,ActionProxy調(diào)用配置管理器(ConfigurationManager) 從配置文件中讀取配置信息(struts.xml),然后創(chuàng)建ActionInvocation對(duì)象,ActionInvocation在調(diào)用Action之前會(huì)依次的調(diào)用所用配置攔截器(Interceptor N) 一旦執(zhí)行結(jié)果返回結(jié)果字符串ActionInvocation負(fù)責(zé)查找結(jié)果字符串對(duì)應(yīng)的(Result)然后執(zhí)行這個(gè)Result Result會(huì)調(diào)用一些模版(JSP)

來(lái)呈現(xiàn)頁(yè)面,之后攔截器(Interceptor N)會(huì)在被執(zhí)行(順序和Action執(zhí)行之前相反)最后響應(yīng)(HttpServletResponse)被返回在web.xml中配置的那些過(guò)濾器和(核心控制器)(FilterDispatcher)。

 

6、為什么使用Struts?

首先,Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化

 

另外, struts具有頁(yè)面導(dǎo)航功能,使系統(tǒng)的脈絡(luò)更加清晰。通過(guò)一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開(kāi)發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢(shì)體現(xiàn)得更加明顯。

 

7、 Struts1和Struts2的區(qū)別

詳見(jiàn)《Struts1 和 Struts2

 

三、Hibernate

1、什么是Hibernate?

Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任

 

2、Hibernate核心構(gòu)成

 

具體就不展開(kāi)了

 

3、Hibernate基本執(zhí)行流程

 

 

為什么使用Hibernate?

1. 對(duì)JDBC訪問(wèn)數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問(wèn)層繁瑣的重復(fù)性代碼。

2、Hibernate是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡(jiǎn)化DAO層的編碼工作,將軟件開(kāi)發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來(lái),使開(kāi)發(fā)更對(duì)象化了。

3、移植性好,支持各種數(shù)據(jù)庫(kù),如果換個(gè)數(shù)據(jù)庫(kù)只要在配置文件中變換配置就可以了,不用改變hibernate代碼。

4、支持透明持久化,因?yàn)閔ibernate操作的是純粹的(pojo)java類(lèi),沒(méi)有實(shí)現(xiàn)任何接口,沒(méi)有侵入性。所以說(shuō)它是一個(gè)輕量級(jí)框架。

 

 

最后附上SSH1和SSH2框架搭建的實(shí)例,點(diǎn)擊即可下載

SSH1框架搭建實(shí)例(spring2+struts1+hibernate3)采用舊版本,詳見(jiàn)代碼中注釋

SSH2框架搭建實(shí)例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本,詳見(jiàn)代碼中注釋

 

開(kāi)發(fā)環(huán)境搭建,參照我的另一篇博客

Win7(64) + eclipse(64)+ tomcat7(64)+ jdk7(64)開(kāi)發(fā)環(huán)境配置

 

 

 

 

 

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
java開(kāi)發(fā)中經(jīng)典的三大框架SSH
Joan's javaworld - Struts2+Spring2.5+Hibernat...
j2ee工程師的學(xué)習(xí)之路,你走到哪了? - java人渣 - ItEye技術(shù)網(wǎng)站
JAVA SSH 框架介紹
使用MyEclipse部署SSH框架
SSH框架搭建和整合
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 衡阳市| 东乌| 平度市| 棋牌| 三门峡市| 茂名市| 清河县| 郯城县| 陇川县| 长沙县| 孟连| 丰城市| 宾川县| 巴林左旗| 唐河县| 萨迦县| 新乐市| 甘南县| 黄石市| 龙岩市| 珠海市| 泉州市| 泸溪县| 淄博市| 闸北区| 繁昌县| 唐河县| 苏尼特右旗| 偃师市| 新密市| 原阳县| 岳西县| 望奎县| 无锡市| 长春市| 延吉市| 锡林浩特市| 安仁县| 扎赉特旗| 务川| 华亭县|