寫這篇文章之前,參考了好多別人的文章,還有我的一些想法,與大家共勉。
1.JavaEE基本概念:
(1)官方定義:JavaEE 是一個開發(fā)分布式企業(yè)級應(yīng)用的規(guī)范和標(biāo)準(zhǔn)。
(2)原名J2EE,JavaEE應(yīng)該是J2EE的延伸。
(3)J2EE是一個標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)不僅定義了基本的規(guī)范和接口,也有一些比較固定的架構(gòu)模型。
(4)J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。
2.JavaEE的技術(shù)內(nèi)容:
表示層技術(shù):
HTML
JavaScript
Ajax:主要功能是異步的向服務(wù)器發(fā)送請求
中間層技術(shù):
Jsp:顯示動態(tài)內(nèi)容的服務(wù)器網(wǎng)頁。
servelet:接受客戶端請求,并作出響應(yīng)的Java程序。servelet是中間層技術(shù)的重要組成部分,控制著其他組件。
JavaBean:JavaEE的模型組件。
Struts2:擴(kuò)展了servlet。
數(shù)據(jù)庫技術(shù):
JDBC:(Java DataBase Connectivity)連接并且操作數(shù)據(jù)庫。
hibernate:數(shù)據(jù)層框架技術(shù),提供了以對象的形式來操作關(guān)系型數(shù)據(jù)庫的功能。
3.JavaEE包含13種技術(shù):
WebService ,Struts,hibernate,spring,Jsp,Servler,JJSF,EJB,JDBC,JNDI,XML,JavaSE
4.JavaEE體系結(jié)構(gòu)(三層結(jié)構(gòu)):
三層結(jié)構(gòu):
表現(xiàn)層(UI):展現(xiàn)給用戶的界面。
業(yè)務(wù)邏輯層(BLL):對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。
數(shù)據(jù)訪問層(DAL):操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。
三層結(jié)構(gòu)的目的:
1.提供程序的可擴(kuò)展性,一般需要將表示與業(yè)務(wù)邏輯分離,業(yè)務(wù)邏輯和數(shù)據(jù)處理分離。
2.為了“高內(nèi)聚,低耦合“的思想。
注意:(內(nèi)聚:一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度;耦合:一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量)。
三層結(jié)構(gòu)的優(yōu)點:
1、開發(fā)人員可以只關(guān)注整個結(jié)構(gòu)中的其中某一層;
2、可以很容易的用新的實現(xiàn)來替換原有層次的實現(xiàn);
3、可以降低層與層之間的依賴;
4、有利于標(biāo)準(zhǔn)化;
5、利于各層邏輯的復(fù)用。
6、擴(kuò)展性強。不同層負(fù)責(zé)不同的層面,如PetShop可經(jīng)過簡單的配置實現(xiàn)Sqlserver和oracle之間的轉(zhuǎn)換,當(dāng)然寫好了也可以實現(xiàn)B/S與C/S之間的轉(zhuǎn)換。
7、安全性高。用戶端只能通過邏輯層來訪問數(shù)據(jù)層,減少了入口點,把很多危險的系統(tǒng)功能都屏蔽了。
8、項目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護(hù)和升級
三層結(jié)構(gòu)的缺點:
1、降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫,以此獲取相應(yīng)的數(shù)據(jù),如今卻必須通過中間層來完成。
2、有時會導(dǎo)致級聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設(shè)計符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼。
3、增加了代碼量,增加了工作量。
經(jīng)驗:
小項目,以后變動不大的不用三層結(jié)構(gòu)。
三層結(jié)構(gòu)的最大優(yōu)點是它的安全性。
5.MVC模型:
1.組成:
MVC是模型(model)、視圖(view)、控制(controller)這三個單詞上的首字母組成。
2.目的:
為了進(jìn)一步提高程序的可擴(kuò)展性,復(fù)用性,真正實現(xiàn)表現(xiàn)層和業(yè)務(wù)邏輯層分離——控制器是為了實現(xiàn)上述而存在的。
3.與三層結(jié)構(gòu)的對應(yīng)關(guān)系:
模型層(model)實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常JavaBean實現(xiàn)。
視圖層(view)用于與用戶交互,通常JSP實現(xiàn)。
控制層(controller)是模型層和視圖層溝通的橋梁。
4.典型模式:
MVC最典型的模式就是:Jsp+servelet+JavaBean模式。
5.處理過程:
MVC的處理過程:對于每一個用戶輸入的請求,首先被控制器接收,控制器決定用哪個模型來進(jìn)行處理,然后模型通過業(yè)務(wù)邏輯層處理用戶的請求并返回數(shù)據(jù),最后控制器確定用哪個視圖模型,用相應(yīng)的視圖格式化模型返回數(shù)據(jù),并通過顯示頁面呈現(xiàn)給用戶。

6.MVC模型的好處:
低耦合性(視圖層和業(yè)務(wù)層分離);
高重用性和可適用性(允許不同式樣的視圖訪問同一個服務(wù)器端的代碼,比如web的HTTP瀏覽器和無線瀏覽器WAP);
較低的生命周期成本(開發(fā)和維護(hù)用戶接口的技術(shù)含量降低);
部署快速(不同部件的開發(fā)人員專注于自己那個模塊);
可維護(hù)性(分離視圖層和業(yè)務(wù)邏輯層使Web應(yīng)用更易于維護(hù)和修改);
有利于軟件工程化管理(由于采用分層的思想);

|