- 企業級Web開發實戰
- 雨虹等編著
- 1842字
- 2018-12-27 14:19:34
前言
作為一線的技術開發人員,在從業的十年間,我經歷過從十幾個人的小型項目到數百人的大型項目。閑暇時我常常細細回味這些經歷,感覺技術的演化和發展真是層出不窮,表示層的技術更是日新月異,從最初的CGI、Perl、ASP、PHP到Servlet、JSP,再到豐富的表示層框架。現如今,客戶端技術主要有Applet、Swing、SWT/JFace、Flex、AIR、Silverlight、JavaFX等,每個都有自己的優缺點,很難真正分出高低。在Java的企業級應用開發領域,以JSP/Servelet為基礎也產生了許多流行一時的Web框架,大家耳熟能詳的有Struts、WebWork(后來合并到Struts 2項目)、Spring MVC等。每個框架也都有自己的優缺點,產生了一種百家爭鳴的局面,幸好Java社區有JCP的存在,雖然有點官僚,但是在瘦客戶端開發規范方面推出了統一的Web Framework——JSF。隨著Ajax和RIA技術的流行,許多大家以前認為不大可能成為主流的編程語言又獲得了新的生命力,最出彩的是JavaScript,伴隨著“舊瓶新裝”Ajax的流行,涌現出了一大批的JavaScript框架,如Prototype、script.aculo.us、jQuery、YUI、ExtJS等。面對林林總總的開發框架,總是讓人難以選擇,例如:
■ 我的技術水平不高,面對這些框架,我應該從什么技術開始學起呢?
■ 我想用ExtJS的界面,但我不熟悉JavaScript語法,有沒有辦法像使用JSP的方法一樣封裝ExtJS?
■ JSF真是太好了,但是在上面加一個Ajax功能怎么那么困難呢?有沒有一個合適的框架?
■ 有沒有一個辦法讓Ajax請求也經過一個JSF生命周期?
■ Struts統一的異常處理機制真是太棒了,JSF應用中如何實現這樣的機制呢?
■ JSF的DataTable如何實現翻頁時從數據庫加載數據?
■ 為什么一次翻頁實現在JSF生命周期中會被調用兩次?如何能避免這樣導致性能下降的問題?
■ JSF組件思想是不錯,但開發一個組件太難了!寫一大堆無用的東西,真是麻煩,有辦法快速定制開發JSF組件嗎?
…………
本書針對上述問題,結合筆者在項目中的實踐給出了行之有效的解決方案,能助你破除重重障礙;與此同時,也針對JavaScript相關的RIA開發做了專題描述。書中匯集了許多大型企業級Web開發的優秀實踐經驗,內容包含了大量詳實的實例:從Web開發基礎,到JSF組件(RichFaces),再到純JavaScript框架(ExtJS),以及二者的結合ExtFaces。其中很多解決方案和樣例代碼稍作修改就可以直接應用于項目開發之中。結合書中的內容,讀者可以根據自己項目的特點,采用一種或者多種技術靈活地制定實際項目的解決方案。
本書內容廣泛,深入淺出,可以作為初學者的入門教材,適合于開發人員作為多種Web UI技術的入門指導,也適合架構師作為技術選型的參考手冊。
本書結構
本書內容包含4 大部分共10 章,所涉及的內容按照學習的層次由淺到深。已經具備Web基礎知識的讀者可以從第Ⅱ部分開始閱讀;喜愛ExtJS的讀者則可以從第Ⅲ部分開始探險。本書的第Ⅳ部分主要是介紹ExtFaces,這個框架是筆者實踐的總結,是在某大型企業內的成功應用,其結果遠遠超出了客戶的預期,獲得了巨大的成功。

緣起
2007年年末的時候,我們雖然有一些項目采用Struts,但是大部分項目都還是用MyFaces JSF進行開發。很明顯JSF的重用組件思想迅速地征服了大部分開發者,雖然剛開始的時候他們還在抱怨那個所謂的“生命周期”只會提供各種各樣的麻煩。在隨后的過程中,我們將RichFaces引入了項目,獲得了巨大的成功。ExtJS在此時已經逐漸流行,敏銳的雨虹迅速地捕捉到這一信息,但可惜的是沒有一種成熟的方案可以將ExtJS和JSF完美地結合在一起,充分發揮兩者的長處。在隨后的研究過程中,我們找到了一種行之有效的解決方案,并成功地應用在隨后的項目中。此時已經是2008年的6月了,我們幾個人聚在一起萌生出與廣大讀者分享這個解決方案的想法,經過4個人半年多的努力,這本書終于要和大家見面了。
本書作者
本書作者都是來自于知名企業的一線人員,他們同時也是Java社區資深的專家,現在共同創辦了藍光(BlueLight)社區,主要從事IT技術咨詢與服務,其范圍包括Java/JEE活躍的開源框架、IBM SOA產品、Sun主流產品、Oracle主流產品和Linux/UNIX 6等。全書由4位作者編寫,其中第1章和第10章由雨虹編寫,第2~5章由王冠宇編寫,第6章和第7章由齊天編寫,第8章和第9章由秋實編寫。
致謝
本書承Sun中國專業服務部門首席架構師、Sun中國工程研究院軟件經理梅其波的審閱,他們的指點對本書的改進和完善起了很大作用,在此深表感謝。
本書在編寫過程中得到了多家IT培訓機構的熱情支持和幫助,他們是國信藍點的尹德樹(創始人)、程式先峰的黃井洋(創始人)和嘉木華科技的王建中(創始人),在此一并感謝。
本書的出版,絕不僅僅是作者付出辛苦的勞動就能實現的,幕后工作者的名字不應該被埋沒。感謝博文視點的編輯李雨來、葛娜以及為本書順利出版做過貢獻的人。
本書中用到的開源軟件,讀者可以到www.broadview.com.cn/08476下載。
由于作者水平所限,書中肯定存在許多不足之處,敬請讀者批評指正,聯系郵箱:bluelight.org@gmail.com
- 現代測控系統典型應用實例
- 自動控制工程設計入門
- R Machine Learning By Example
- 西門子S7-200 SMART PLC從入門到精通
- Hands-On Data Science with SQL Server 2017
- CSS全程指南
- Ceph:Designing and Implementing Scalable Storage Systems
- CompTIA Linux+ Certification Guide
- ASP.NET 2.0 Web開發入門指南
- Introduction to R for Business Intelligence
- INSTANT Adobe Story Starter
- Machine Learning with Spark(Second Edition)
- Moodle 2.0 Course Conversion(Second Edition)
- Hands-On Geospatial Analysis with R and QGIS
- 工業機器人應用系統三維建模