也許你學習了那么久的Java了,但如果有人問你什么是JavaEE?你會怎么回答他呢?在此我來談談關於JavaEE的相關技術。(僅是個人見解)
在談JavaEE時,我們首先來了解一下Java平台。目前,Java平台有3個版本:適用於小型設備和智能卡的JavaME(Java Platform Micro Edition,Java微型版)、適用於桌面系統的JavaSE(Java Platform Standard Edition,Java標准版)和適用於企業級應用的JavaEE(Java Platform Enterprise Edition)。而JavaEE是一個開發企業級應用的規范和標准,在現在的企業級開發中最為常用,最受人開發者的青睞。
JavaEE應用程序是由組件構成的,也就是說它是基於組件開發的。組件是具有獨立功能的單元,它們通過相關的類和文件組裝成JavaEE應用程序,並與其它組件相交互。一個組件的更改不會影響其它組件,代碼重復減少,重用率高。有利於良好的分工與協作,實現並行開發。如果是用三層結構開發,那么表示層與數據訪問層相互獨立,因此美工可以更方便的擴充表示層,使系統具有良好的可擴展性。
在JavaEE的技術體系中,也融合了多種框架技術。其中以SSH(Struts+Hibernate+Spring)框架技術最為出名,這些框架技術代表當前企業(公司)級開發的趨勢。當然,也有些比較出名的框架技術,如:Webwork、JSF、EJB、iBATs等等。各種框架技術是在JavaEE的基礎上形成的,應用程序是在框架技術創建的。因此,要想學好JavaEE,必先學好基於Servlet技術的JavaEE。如果一入門就學SSH框架技術來搭建,就好像一個人還小時就先學走,不是先學爬,這多少有點趕鴨子上架的“味道”。
JavaEE的技術結構也體現了分層的原理,與C#三層結構差不多。只是“換湯不換葯”而已,形式變了,核心的技術內容還是沒有變。我們在設計一個系統時,通常都會把系統設計成多層(一般是三層)。設計成三層有什么好處呢?因為任何一個軟件或是系統,有80%左右的時間都是處在后期維護的階段,設計成三層,有利於今后的維護和擴展,也有利於程序的控制和頁面的顯示。
JavaEE的技術結構分為三層,那么這三層分別是什么呢?其實與C#差不多,分別是表示層、中間層、數據層。C#中的三層分別是表示層,業務邏輯層、數據訪問層,只是不一樣的說法,但表達的是同一個意思而已。表示層是用戶界面,中間層包含各種業務邏輯,數據層是完成對數據的存取和封裝。在這三層中,你認為哪層是最重要的呢?也許你認為是業務邏輯層,但是答案是錯誤的,正確的答案是表示層。試想,你做出的一個Web系統,界面不美觀、不友好,用戶用都不想用,那還談什么業務邏輯啊。所以在此我推薦大家,在用三層結構開發一個項目時,首先從表示層入手,先把表示層做好。然后一分析業務邏輯,之后數據訪問的思路也就有了。呵呵……
說了那么久的JavaEE技術,那它有什么內容呢?各層又是用什么技術來實現的?我先從表示層說起。
表示層技術是在JSP頁面中用HTML標簽、JavaScript腳本、Ajax。需要注意的是,Ajax並不是一種技術,而是幾種技術的整合。它采用異步請求的方式,主要功能是向服務器端發送請求,處理數據或者根據返回的數據重新顯示頁面。
中間層技術主要是JSP、Servlet、JSTL、JavaBean、Struts框架。其中JSP是顯示動態內容的服務器網頁,Servlet是接收客戶端的請求並作出響應,JSTL是幫助JSP顯示動態內容的標准標簽庫,JavaBean是JavaEE的模型組件。需要注意的是,Struts框架技術主要是擴充了Servlet。在中間層中,Servlet是重要的組成部分,它控制着其它的組件。
數據層技術用的是JDBC、JNDI、Hibernate框架。其中,JDBC是傳統的數據庫連接方式,JNDI和Hibernate只是擴展了功能,並沒有完全替代了JDBC。現在流行的是關系型的數據庫,我們所用的大多數都是,如:SQL Server、Oracle、MySQL等,Hibernate框架技術是以對象的方式操作關系型的數據庫,以減少內存的使用。
另外,還有系統集成技術。當你做Web Service時,就不可避免了。在現在階段,我們如果用SSH框架技術開發,那么Spring就是一個系統集成的框架技術,也是在現階段用的最多的系統集成技術。系統集成的JAX-WS技術是JavaEE平台的重要組成部分,它簡化了使用Java技術開發Web服務的工作。不過,我有點遺憾,不了解JAX-WS技術。
說了那么久了,如果真有時候,有人問你JavaEE是什么呢時,希望我的見解你看后能用上場