本文主要針對Java EE涉及的一些概念作一些整理。程序員
-------------------------------------------------------------------------------web
1.中間件數據庫
中間件是企業級開發中經常使用的術語,一聽貌似很難懂,不着急,咱們就解決兩個問題:編程
爲何須要中間件?瀏覽器
什麼是中間件?安全
早先企業級應用程序的體系結構爲兩層體系結構,兩層體系結構分爲客戶層與服務器層,即經常被提到的C/S模式。服務器
在C/S模式中,客戶層幾乎包攬了除數據服務以外的其餘全部職能,包括用戶交互、應用邏輯、數據訪問等,而服務器層僅提供數據服務。jsp
明顯這樣的體系結構分工不合理嘛,存在的缺陷有n,這裏列舉三點:spa
1.客戶端應用程序通常體積肥大,部署極其麻煩,業務需求稍有變動就得更新客戶層。中間件
2.客戶端直接與數據庫交互,上來就直接剛,極不安全。
3.大量客戶端與數據庫服務器交互,服務器表示壓力山大。
啊?兩層不行就多加一層嘛。0.0簡單粗暴
因而因而,就有了三層體系結構應用程序,不要看到三層就說什麼MVC啊,我只能說,你太天真了。
這裏的三層體系結構,就是在前面的客戶層與數據庫服務層之間加了一層,應用服務器,主要用於實現應用邏輯、數據訪問。這樣客戶端就不能直接接觸到數據庫,安全性大大提升啦,又因爲客戶端常是由計算機的瀏覽器扮演,因此客戶端的部署基本就不關應用程序什麼事了。更有其餘優勢本身百度啦。
那麼,重點來啦,在三層體系結構中,應用服務器層又被稱爲「中間件服務器」或「中間件」。
固然,在後續的發展中人們又將中間件按應用邏輯劃分爲若干個子層,這樣就有了多層體系結構的應用程序。
(這裏補充一點,所謂的體系結構,就是指應用程序中各個組件之間的組織方式)
2.Java EE
首先,JavaEE是一個標準中間件體系結構,說到底,J2EE就是一套規範中間件的標準,那麼問題來了
爲何須要JavaEE這套標準呢?
JavaEE這套標準到底規範了些什麼?
剛剛也提到了中間件爲什麼存在,可是咱們說的中間件這時候仍是個抽象概念,像一個未被實例化的類,首先咱們須要定義一個類,其次咱們須要去實例化。
因而,咱們也須要去定義「一個」中間件,其次咱們才能去實現這個中間件。
任何人任何廠商均可以實現本身的中間件,本身搗鼓幾下,讓程序跑起來不就得了。
確實,在J2EE未被提出以前,存在幾家主要的中間件開發商各自爲政,你整一套中間件我整一套中間件,互不兼容。
因而,J2EE出現了,J2EE就是爲了統一中間件的開發標準而出現的。
典型的J2EE結構的應用程序包括四層:客戶層,表示邏輯層(web層),業務邏輯層和企業信息系統層。
J2EE定義了一些標準組件,如jsp,jsf,servlet,EJB等,這些組件運行在實現了J2EE標準的應用服務器上,如JBoss,Tomcat,Websphere,GlassFish等,同時也是J2EE中的「容器」。
組件運行在容器之中,容器由各個廠商根據J2EE標準各自實現,組件由程序員根據業務邏輯需求自行實現。這也是J2EE的一個「組件-容器」編程思想。