新一代Java Web開發(fā)框架JSF框架
Java Web編程始于Servlet,經(jīng)歷了JSP和Struts后,正朝著JSF前進。JSF憑借多項革命性的創(chuàng)新技術(shù),正***我們進入基于組件模型和事件驅(qū)動機制的、真正面向?qū)ο蟮腏ava Web編程新紀元。
按照官方的定義,JSF框架是Java Web表示層框架。通俗地說:
1.JSF是繼Servlet、JSP和Struts之后又一項Java Web應(yīng)用編程技術(shù);
2.JSF是編寫網(wǎng)頁的一種新方法。完整的Java Web應(yīng)用包括網(wǎng)頁、業(yè)務(wù)邏輯和數(shù)據(jù)庫,其中后兩者都有成熟的解決方案,例如EJB和JPA,唯獨網(wǎng)頁的編寫還停留在很原始的階段,需要處理諸多底層細節(jié)。JSF的出現(xiàn)正是為了解決網(wǎng)頁編寫的問題??梢哉f,JSF和EJB、JPA一起,構(gòu)筑了Java Web應(yīng)用***的三層體系結(jié)構(gòu)。
***的優(yōu)勢,就一句話,極大地簡化了網(wǎng)頁的編寫。在JSF之前,我們編寫網(wǎng)頁都是和tag、Http請求、http響應(yīng)等打交道,而JSF允許我們將網(wǎng)頁視為在Java桌面應(yīng)用中司空見慣的窗口,用類似編寫桌面應(yīng)用的方式編寫Java Web應(yīng)用。在JSF里,沒有tag、沒有http請求,也沒有http響應(yīng),取而代之的是UI組件、事件和事件處理例程這些普通Java程序員耳熟能詳?shù)母拍睢?/P>
當然,我這樣表述JSF框架,并不是說JSF不需要tag和http請求響應(yīng),在JSF框架內(nèi)部,真正支撐JSF運作的還是tag和http請求響應(yīng),只不過JSF屏蔽了細節(jié),讓程序員集中精力于業(yè)務(wù)邏輯代碼
與ASP.NET相比,JSF的優(yōu)勢我認為有這么兩點:
1)有些優(yōu)勢是JSF天生的,例如平臺無關(guān)性,這是從Java語言中繼承的優(yōu)勢。平臺無關(guān)性的好處大家都很清楚,我就不廢話了;
2)JSF是規(guī)范,而不是具體產(chǎn)品,這是Sun的聰明之處,也是Sun的厚道之處。事實上,Java的很多技術(shù)都是以規(guī)范的形式出現(xiàn)的,這與 Microsoft以具體產(chǎn)品的形式推出新技術(shù)截然不同。規(guī)范的好處是允許不同廠商在具體產(chǎn)品上展開競爭,使用戶受益。例如JSF,現(xiàn)在Sun自己的參考實現(xiàn)很少人用了,倒是一些開源的JSF實現(xiàn)如Apache的MyFaces等大行其道。Sun這樣做既鼓勵了競爭,又能騰出更多功夫致力于規(guī)范的改進,可謂一舉兩得。
3)從技術(shù)的角度看,JSF不但與平臺無關(guān),甚至與用來描述頁面的標記語言無關(guān)。換句話說,在PC上,我們現(xiàn)在通常以HTML為標記語言,實際上,在其他類型的終端上,如果描述頁面的標記語言不是HTML,JSF仍然可以勝任。當然,這個優(yōu)勢,對于普通程序員好像意義不大,但如果眼光放長遠一些,這種標記語言的無關(guān)性,是JSF技術(shù)前瞻性的具體表現(xiàn),它使得JSF的生命力更長久。
3.Java EE 5最重要的使命是簡化Java開發(fā),為此,Sun連續(xù)使出了三大絕招,一是推出JSF,二是推出EJB3,三是推出JPA。明眼人一看就知道,這三大技術(shù)分別涵蓋了三層體系結(jié)構(gòu)中的表示層、業(yè)務(wù)層和數(shù)據(jù)層,雖說不能一統(tǒng)天下,但在規(guī)范層面建立一個完整體系的目的非常明確。規(guī)范是技術(shù)的制高點,只要Sun不倒,JSF就有足夠硬的后臺支持它的發(fā)展。
【編輯推薦】