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