天天看點

JSF是初學者進入Java Web世界的跳闆

初學Java Web程式設計的程式員,現在不必像以前一樣,非得從JSP入手了,因為JSF為初學者提供了進入Java Web世界的跳闆。JSF站在比其他Java Web架構更高的高度,用統一的眼光看待桌面程式設計和Web程式設計,模糊了桌面程式設計和Web程式設計的界限,使得具備有限桌面程式設計經驗的程式員,也能夠用JSF編寫功能強大的Web應用。

    1. 抛開JSP,直接從JSF入手 

    曾幾何時,學Java Web程式設計必從JSP開始,成了Java Web程式員們公認的定律。好比少林寺的武僧,習武之初一定先蹲幾年馬步一樣。在論壇上,我經常看到“過來人”以先知的口吻教導初來乍到的菜鳥,想搞Java Web程式設計的話,必須先從JSP入手,然後再研究某某架構雲雲。兩年前,這是正确的,但現在,這樣的教條已經過時了。

    1840年的第一次鴉片戰争,當英國人敲開清政府閉關鎖國的大門時,據我所知,少林寺的武僧恐怕沒有幫上什麼忙吧。縱然武藝高強,下盤穩固,可是在槍炮面前,血肉之軀如何抵擋得了呢?技術在進步,時代不同了,現在,JSP已經不是Java Web的必經之路了,如果你是初學者,别聽信那些“過來人”三年前的經驗,直接以JSF作為你Java Web的跳闆,站在巨人的肩膀上,也許用不了多久,你就能超越曾經教導過你的前輩了。 

    這不是作者信口雌黃,嘩衆取寵,從JSF入手,是你不甘人後、敢為人先的絕佳機會。你沒有必要再為什麼JSP費神了。如果說三年前JSF剛剛誕生時,稚嫩的JSF1.0尚需JSP扶上馬送一程、尚需借助JSP的名義和程式員們“混個臉熟”的話,那麼,三年後的今天,當JSF已經發展到1.2版本時,JSP也許到了該退休的時候了。即便JSP生命力頑強,還能撐幾年,發揮點餘熱,也已經不值得你費九牛二虎之力,苦苦追随了。在我看來,JSP更适合作為一種底層技術,退到幕後,像Servlet一樣,默默奉獻,把發展的空間讓給更能提高程式員生産力的後起之秀。 

    不必擔心有人說你眼高手低,好高骛遠,JSF是一個新的架構,它并不需要你有深厚的技術底子,你隻需知道元件、事件、JavaBean這些基本概念,就可以放手去幹了。玩過網絡遊戲的人都知道,在遊戲中,裝備有着舉足輕重的作用。同樣,作為一個程式員,選擇一項領先的程式設計技術,對于你的生産力也是至關重要的。

    從JSP開始學習Java Web程式設計,就像笨人玩網絡遊戲,把自己當成一架機器,在網吧裡無休止地打怪練級,隻有苦勞,沒有功勞;聰明的玩家花錢買一個裝備,瞬間就把自己送入強手的行列。JSF就是這樣的裝備,能夠讓你馬上成為Java Web程式設計的熟手,而且,JSF還是免費的。 

    2. JSF對程式員技能的要求

    初學Java Web程式設計的程式員,能否跳過JSP,從JSF直接入手,隻要看看JSF對于程式員的技能有什麼基本要求就明白了。前文提到過,JSF是一個Java Web使用者界面的架構,JSF的設計目标是填平桌面程式設計和Java Web程式設計之間的鴻溝,模糊桌面程式設計和Web程式設計的界限,讓有着桌面程式設計經驗的程式員,能夠快速地進入Web程式設計的領域,并以他們熟悉的方式編寫代碼,用他們慣常的思維考慮問題,甚至用完全類似的工具設計界面、調試程式。

    事實上,經過這麼多年的發展,桌面程式設計不論是在Java下還是在C++下,已經沒有什麼差別了,是以,隻要你有過桌面程式設計的經曆,不管是Java的還是C++的,你都可以借助JSF,立即着手編寫功能強大的Java Web程式。

    是以,有限的桌面程式設計經驗,就是JSF對程式員的要求。概括起來,所謂桌面程式設計經驗,其實就是:第一,了解UI元件的概念,知道如何拖放元件到界面上,如何設定元件的屬性;第二,了解事件和事件驅動,知道如何編寫事件例程,對事件作出響應;第三,掌握面向對象的基本知識,以便了解JavaBean的技術(這其實很簡單,隻是符合一定規範的Java類而已);第四,熟悉HTTP協定的一些基礎知識,為你進入JSF進階程式設計作好準備。

    這就是全部。對于一般的Java Web程式設計,JSF要求具備這些技能就足夠了,至于Web應用和桌面應用的不同之處,JSF會為你處理,無需你費心。站在更高的高度,用同樣的眼光看待桌面應用和Web應用,是JSF領先于其他Java Web架構的根源所在。