拋開JSP,直接從JSF入手
拋開JSP,直接從JSF入手
曾幾何時,學Java Web編程必從JSP開始,成了Java Web程序員們公認的定律。好比少林寺的武僧,習武之初一定先蹲幾年馬步一樣。在論壇上,我經(jīng)常看到“過來人”以先知的口吻教導初來乍到的菜鳥,想搞Java Web編程的話,必須先從JSP入手,然后再研究某某框架云云。兩年前,這是正確的,但現(xiàn)在,這樣的教條已經(jīng)過時了。
1840年的第一次鴉片戰(zhàn)爭,當英國人敲開清政府閉關鎖國的大門時,據(jù)我所知,少林寺的武僧恐怕沒有幫上什么忙吧??v然武藝高強,下盤穩(wěn)固,可是在槍炮面前,血肉之軀如何抵擋得了呢?技術在進步,時代不同了,現(xiàn)在,JSP已經(jīng)不是 Java Web的必經(jīng)之路了,如果你是初學者,別聽信那些“過來人”三年前的經(jīng)驗,直接以JSF作為你Java Web的跳板,站在巨人的肩膀上,也許用不了多久,你就能超越曾經(jīng)教導過你的前輩了。
這不是作者信口雌黃,嘩眾取寵,從JSF入手,是你不甘人后、敢為人先的絕佳機會。你沒有必要再為什么JSP費神了。如果說三年前JSF剛剛誕生時,稚嫩的JSF1.0尚需JSP扶上馬送一程、尚需借助JSP的名義和程序員們“混個臉熟”的話,那么,三年后的今天,當JSF已經(jīng)發(fā)展到1.2版本時,JSP也許到了該退休的時候了。即便JSP生命力頑強,還能撐幾年,發(fā)揮點余熱,也已經(jīng)不值得你費九牛二虎之力,苦苦追隨了。在我看來,JSP更適合作為一種底層技術,退到幕后,像Servlet一樣,默默奉獻,把發(fā)展的空間讓給更能提高程序員生產(chǎn)力的后起之秀。
不必擔心有人說你眼高手低,好高騖遠,JSF是一個新的框架,它并不需要你有深厚的技術底子,你只需知道組件、事件、JavaBean這些基本概念,就可以放手去干了。玩過網(wǎng)絡游戲的人都知道,在游戲中,裝備有著舉足輕重的作用。同樣,作為一個程序員,選擇一項領先的編程技術,對于你的生產(chǎn)力也是至關重要的。
從JSP開始學習Java Web編程,就像笨人玩網(wǎng)絡游戲,把自己當成一架機器,在網(wǎng)吧里無休止地打怪練級,只有苦勞,沒有功勞;聰明的玩家花錢買一個裝備,瞬間就把自己送入強手的行列。JSF就是這樣的裝備,能夠讓你馬上成為Java Web編程的熟手,而且,JSF還是免費的。
JSF對程序員技能的要求
初學Java Web編程的程序員,能否跳過JSP,從JSF入手,只要看看JSF對于程序員的技能有什么基本要求就明白了。前文提到過,JSF是一個Java Web用戶界面的框架,JSF的設計目標是填平桌面編程和Java Web編程之間的鴻溝,模糊桌面編程和Web編程的界限,讓有著桌面編程經(jīng)驗的程序員,能夠快速地進入Web編程的領域,并以他們熟悉的方式編寫代碼,用他們慣常的思維考慮問題,甚至用完全類似的工具設計界面、調(diào)試程序。
事實上,經(jīng)過這么多年的發(fā)展,桌面編程不論是在Java下還是在C++下,已經(jīng)沒有什么區(qū)別了,所以,只要你有過桌面編程的經(jīng)歷,不管是Java的還是C++的,你都可以借助JSF,立即著手編寫功能強大的Java Web程序。
所以,有限的桌面編程經(jīng)驗,就是JSF對程序員的要求。概括起來,所謂桌面編程經(jīng)驗,其實就是:
第一,理解UI組件的概念,知道如何拖放組件到界面上,如何設置組件的屬性;
第二,理解事件和事件驅動,知道如何編寫事件例程,對事件作出響應;
第三,掌握面向對象的基本知識,以便理解JavaBean的技術(這其實很簡單,只是符合一定規(guī)范的Java類而已);
第四,熟悉HTTP協(xié)議的一些基礎知識,為你進入JSF高級編程作好準備。
這就是全部。對于一般的Java Web編程,JSF要求具備這些技能就足夠了,至于Web應用和桌面應用的不同之處,JSF會為你處理,無需你費心。站在更高的高度,用同樣的眼光看待桌面應用和Web應用,是JSF領先于其他Java Web框架的根源所在。
【編輯推薦】