JavaEE是一套使用Java進行企業(yè)級Web應用開發(fā)的大家一致遵循的工業(yè)標準入问。
JavaEE平臺提供了一個基于組件的方法來加快設計、開發(fā)、裝配及部署企業(yè)應用程序。
相較于Microsoft的.NET,Sun公司的Java*E和一系列標準攻泼、技術及協(xié)議更接近或更滿足互聯(lián)網(wǎng)在智能化Web服務方面對開放性火架、分布性和平臺無關性的要求。
JavaEE軟件開發(fā)體系架構
兩層架構
傳統(tǒng)的客戶服務器系統(tǒng)僅只簡單地基于兩層體系來構建忙菠,即客戶端(前臺)和企業(yè)信息系統(tǒng)(后臺)何鸡,沒有任何中間件,業(yè)務邏輯層與表示層或數(shù)據(jù)層混在一起牛欢。這種兩層架構無論從開發(fā)骡男、部署、擴展傍睹、維護來說隔盛,綜其只有一個特點——成本高。
三層架構
三層架構自上而下將系統(tǒng)分為表示層拾稳、邏輯層吮炕、持久層。
表示層由處理用戶交互的客戶端組件及其容器所組成访得;
(業(yè)務)邏輯層由解決業(yè)務問題的組件組成龙亲;
數(shù)據(jù)層(持久層)由一個或多個數(shù)據(jù)庫組成,并可包含存儲過程悍抑。
這種三層架構鳄炉,在處理客戶端的請求時,使客戶端不用進行復雜的數(shù)據(jù)庫處理搜骡;透明地為客戶端執(zhí)行許多工作拂盯,如查詢數(shù)據(jù)庫、執(zhí)行業(yè)務規(guī)則和連接現(xiàn)有的應用程序记靡;并且能夠幫助開發(fā)人員創(chuàng)建適用于企業(yè)的大型分布式應用程序磕仅。
MVC
在MVC模式中,應用程序被劃分為模型層(Model)簸呈、視圖層(View)榕订、控制層(Controller)三部分。MVC模型就是把一個應用程序的開發(fā)按照業(yè)務邏輯蜕便、數(shù)據(jù)劫恒、視圖進行分離分層并組織代碼。MVC要求把應用的模型按一定的層次規(guī)則抽取出來,將業(yè)務邏輯聚集到一個部件里面两嘴,在改進和個性化定制界面及用戶交互的同時丛楚,不需要重新編寫業(yè)務邏輯。模型層負責封裝應用的狀態(tài)憔辫,并實現(xiàn)功能趣些,視圖層負責將內(nèi)容呈現(xiàn)給用戶,控制層負責控制視圖層發(fā)送的請求以及程序的流程贰您。
Servlet+JSP+JavaBean(MVC)這種模式比較適合開發(fā)復雜的web應用坏平,在這種模式下,Servlet負責處理用戶請求锦亦,JSP負責數(shù)據(jù)顯示舶替,JavaBean負責封裝數(shù)據(jù)。
基于JavaEE架構模式下的MVC
在這種架構模式下杠园,模型層(Model)定義了數(shù)據(jù)模型和業(yè)務邏輯顾瞪。為了將數(shù)據(jù)訪問與業(yè)務邏輯分離,降低代碼之間的耦合抛蚁,提高業(yè)務精度陈醒,模型層又具體劃分為了DAO層和業(yè)務層,DAO即Data Access Object瞧甩,其主要職能是將訪問數(shù)據(jù)庫的代碼封裝起來孵延,讓這些代碼不會在其它層出現(xiàn)或者暴露出來給其它層;業(yè)務層是整個系統(tǒng)最核心也是最具有價值的一層亲配,該層封裝應用程序的業(yè)務邏輯尘应,處理數(shù)據(jù),關注客戶需求吼虎,在業(yè)務處理過程中會訪問原始數(shù)據(jù)或產(chǎn)生新數(shù)據(jù)犬钢,DAO層提供的DAO類能很好地幫助業(yè)務層完成數(shù)據(jù)處理,業(yè)務層本身側重于對客戶需求的理解和業(yè)務規(guī)則的適應思灰,總體說來玷犹,DAO層不處理業(yè)務邏輯,只為業(yè)務層提供輔助洒疚,完成獲取原始數(shù)據(jù)或持久層數(shù)據(jù)等操作歹颓。
JSP:JSP被用來產(chǎn)生Web的動態(tài)內(nèi)容。這層把應用數(shù)據(jù)以網(wǎng)頁的形式呈現(xiàn)給瀏覽器油湖,然后數(shù)據(jù)按照在JSP中開發(fā)的預定的方式表示出來巍扛,這層也可以稱之為布局層。
Servlet:JSP建立在Servlet之上乏德,Servlet是J2EE的重要組成部分撤奸。Servlet負責處理用戶請求吠昭,Java Web項目的所有配置都寫在了web.xml配置文件里,當項目運行的時候胧瓜,web.xml會將http請求映射給對應的Servlet類矢棚。
JavaBean:由一些具有私有屬性的Java類組成,對外提供get和set方法府喳。JavaBean負責數(shù)據(jù)蒲肋,負責處理視圖層和業(yè)務邏輯之間的通信。
Service:業(yè)務處理類钝满,對數(shù)據(jù)進行一些預處理兜粘。
DAO:數(shù)據(jù)訪問層,JDBC調用存儲過程舱沧,從數(shù)據(jù)庫(DataBase)那里獲取到數(shù)據(jù),再封裝到Model實體類中去偶洋。