JavaEE是一套使用Java進行企業(yè)級Web應(yīng)用開發(fā)的大家一致遵循的工業(yè)標(biāo)準(zhǔn)醉旦。
JavaEE平臺提供了一個基于組件的方法來加快設(shè)計拾碌、開發(fā)卦绣、裝配及部署企業(yè)應(yīng)用程序姑荷。
相較于Microsoft的.NET,Sun公司的Java*E和一系列標(biāo)準(zhǔn)缩擂、技術(shù)及協(xié)議更接近或更滿足互聯(lián)網(wǎng)在智能化Web服務(wù)方面對開放性鼠冕、分布性和平臺無關(guān)性的要求。
JavaEE軟件開發(fā)體系架構(gòu)
兩層架構(gòu)
傳統(tǒng)的客戶服務(wù)器系統(tǒng)僅只簡單地基于兩層體系來構(gòu)建胯盯,即客戶端(前臺)和企業(yè)信息系統(tǒng)(后臺)懈费,沒有任何中間件,業(yè)務(wù)邏輯層與表示層或數(shù)據(jù)層混在一起博脑。這種兩層架構(gòu)無論從開發(fā)憎乙、部署、擴展叉趣、維護來說泞边,綜其只有一個特點——成本高。
三層架構(gòu)
三層架構(gòu)自上而下將系統(tǒng)分為表示層疗杉、邏輯層阵谚、持久層。
表示層由處理用戶交互的客戶端組件及其容器所組成烟具;
業(yè)務(wù)邏輯層由解決業(yè)務(wù)問題的組件組成梢什;
數(shù)據(jù)層由一個或多個數(shù)據(jù)庫組成,并可包含存儲過程朝聋。
這種三層架構(gòu)嗡午,在處理客戶端的請求時,使客戶端不用進行復(fù)雜的數(shù)據(jù)庫處理冀痕;透明地為客戶端執(zhí)行許多工作荔睹,如查詢數(shù)據(jù)庫、執(zhí)行業(yè)務(wù)規(guī)則和連接現(xiàn)有的應(yīng)用程序言蛇;并且能夠幫助開發(fā)人員創(chuàng)建適用于企業(yè)的大型分布式應(yīng)用程序应媚。
MVC
在MVC模式中,應(yīng)用程序被劃分為模型層(Model)猜极、視圖層(View)中姜、控制層(Controller)三部分。MVC模型就是把一個應(yīng)用程序的開發(fā)按照業(yè)務(wù)邏輯、數(shù)據(jù)丢胚、視圖進行分離分層并組織代碼翩瓜。MVC要求把應(yīng)用的模型按一定的層次規(guī)則抽取出來,將業(yè)務(wù)邏輯聚集到一個部件里面携龟,在改進和個性化定制界面及用戶交互的同時睦柴,不需要重新編寫業(yè)務(wù)邏輯割粮。模型層負(fù)責(zé)封裝應(yīng)用的狀態(tài),并實現(xiàn)功能,視圖層負(fù)責(zé)將內(nèi)容呈現(xiàn)給用戶躬络,控制層負(fù)責(zé)控制視圖層發(fā)送的請求以及程序的流程。
Servlet+JSP+JavaBean(MVC)這種模式比較適合開發(fā)復(fù)雜的web應(yīng)用盯捌,在這種模式下一也,Servlet負(fù)責(zé)處理用戶請求,JSP負(fù)責(zé)數(shù)據(jù)顯示蓬戚,JavaBean負(fù)責(zé)封裝數(shù)據(jù)夸楣。
基于JavaEE架構(gòu)模式下的MVC
在這種架構(gòu)模式下,模型層(Model)定義了數(shù)據(jù)模型和業(yè)務(wù)邏輯子漩。為了將數(shù)據(jù)訪問與業(yè)務(wù)邏輯分離豫喧,降低代碼之間的耦合,提高業(yè)務(wù)精度幢泼,模型層又具體劃分為了DAO層和業(yè)務(wù)層紧显,DAO即Data Access Object,其主要職能是將訪問數(shù)據(jù)庫的代碼封裝起來缕棵,讓這些代碼不會在其它層出現(xiàn)或者暴露出來給其它層鸟妙;業(yè)務(wù)層是整個系統(tǒng)最核心也是最具有價值的一層,該層封裝應(yīng)用程序的業(yè)務(wù)邏輯挥吵,處理數(shù)據(jù)重父,關(guān)注客戶需求,在業(yè)務(wù)處理過程中會訪問原始數(shù)據(jù)或產(chǎn)生新數(shù)據(jù)忽匈,DAO層提供的DAO類能很好地幫助業(yè)務(wù)層完成數(shù)據(jù)處理房午,業(yè)務(wù)層本身側(cè)重于對客戶需求的理解和業(yè)務(wù)規(guī)則的適應(yīng),總體說來丹允,DAO層不處理業(yè)務(wù)邏輯郭厌,只為業(yè)務(wù)層提供輔助,完成獲取原始數(shù)據(jù)或持久層數(shù)據(jù)等操作雕蔽。
JSP:JSP被用來產(chǎn)生Web的動態(tài)內(nèi)容折柠。這層把應(yīng)用數(shù)據(jù)以網(wǎng)頁的形式呈現(xiàn)給瀏覽器,然后數(shù)據(jù)按照在JSP中開發(fā)的預(yù)定的方式表示出來批狐,這層也可以稱之為布局層扇售。
Servlet:JSP建立在Servlet之上前塔,Servlet是J2EE的重要組成部分。Servlet負(fù)責(zé)處理用戶請求承冰,Java Web項目的所有配置都寫在了web.xml配置文件里华弓,當(dāng)項目運行的時候,web.xml會將http請求映射給對應(yīng)的Servlet類困乒。
JavaBean:由一些具有私有屬性的Java類組成寂屏,對外提供get和set方法。JavaBean負(fù)責(zé)數(shù)據(jù)娜搂,負(fù)責(zé)處理視圖層和業(yè)務(wù)邏輯之間的通信迁霎。
Service:業(yè)務(wù)處理類,對數(shù)據(jù)進行一些預(yù)處理百宇。
DAO:數(shù)據(jù)訪問層考廉,JDBC調(diào)用存儲過程,從數(shù)據(jù)庫(DataBase)那里獲取到數(shù)據(jù)恳谎,再封裝到Model實體類中去芝此。