內容簡介
第1篇為入門篇,內容包括Java Web開發概述等;第2篇為基礎篇,內容包括Servlet技術、JSP技術、會話跟蹤、過濾器Filter、監聽器Listener等;第3篇為高級篇,內容包括JSTL標籤庫的使用、如何自定義標籤、資源國際化、資料庫概述、JDBC詳解、XML概述等;第4篇為Struts框架篇,內容不僅包括Struts 1x的內容,也包括Struts 2x中的內容;第5篇為Hibernate框架篇;第6篇為Spring框架篇;第7篇為EJB與Web服務篇,內容包括EJB 3概述、JPA規範Web服務框架XFire等;第8篇為工具篇,內容包括在Java Web項目中常用的開源工具框架、主要有版本管理工具SVN、日誌工具commons-logging與Log4J、報表圖形引擎jfreechart、PDF組件Itext等;第9篇為實戰篇,內容為兩個典型的套用系統:論壇系統(Spring+Struts+Hibernate)、寵物商店(EJB 3+JPA+Struts 2)。
本書附1張DVD光碟,內容為本書汲及的原始碼和Java Web學習視頻。
本書內容全面,結構清晰,注重實戰,非常適合Java Web開發人員學習使用,同時也可以作為軟體公司的案頭必備參考書。
作者簡介
劉京華,畢業於山東大學計算機科學與技術學院。先後任職於用友軟體、IBM中國研究院、Symbian中國研究院等公司或機構。畢業後一直從事Java開發,有超過10年的Java開發經驗。精通JavaWeb開發的各種技術與框架,對圖形化開發、Eclipse外掛程式開發等各種技術也有深入研究。曾經開發過大型的分散式Web系統。參與開發過中國移動、中國聯通、中國電信的網關係統。參與開發過物流管理系統、供應鏈處理系統、聯想公司的RMS系統、IBM的SmartSCOR和Nokia Carbide平台。
圖書目錄
第1篇 入門篇
第1章 Java Web開發概述
第2章 搭建Java Web開發環境
第2篇 基礎篇
第3章 深入Servlet技術
第4章 深入JSP技術
第5章 會話跟蹤
第6章 過濾器Filter
第7章 監聽器Listener
第3篇 高級篇
第8章 JSTL標籤庫
第9章 自定義標籤
第10章 資源國際化
第11章 資料庫概述
第12章 JDBC詳解
第13章 XML概述
第4篇 Struts框架篇
第14章 Struts 1x概述
第15章 Struts 1x高級套用
第16章 Struts 2x概述
第17章 Struts 2x高級套用
第18章 Struts 2x標籤
第19章 Struts 2x攔截器與檔案上傳
第5篇 Hibernate框架篇
第20章 Hibernate入門
第21章 從巨觀上把握Hibernate
第23章 Hibernate實體關係映射
第24章 Hibernate查詢語言HQL
第25章 Hibernate高級查詢
第6篇 Spring框架篇
第26章 Spring概述
第27章 Spring的Core模組
第28章 Spring的AOP模組
第29章 Spring的DAO模組
第30章 Spring的ORM模組
第31章 Spring的Web模組
第32章 Spring的MVC模組
第33章 Spring開發實例(SSH、SSJ)
第7篇 EJB與Web服務篇
第34章 EJB 3概述
第35章 JPA規範
第36章 Web Service框架XFire
第8篇 工具篇
第37章 版本管理工具SVN
第38章 日誌工具commons- logging與Log4J
第39章 報表圖形引擎JFreeChart
第40章 PDF組件iText
第9篇 實戰篇
第41章 論壇系統(Spring+Struts+ Hibernate)
第42章 分散式寵物商店(EJB 3+JPA+ Struts 2)
前言
JSP、Servlet、Struts、Hibernate、AOP、WebWork、Spring、EJB……,好複雜,腦袋都大了!這么多技術到底都是乾什麼的?它們有什麼聯繫呢?.
近幾年,Web程式發展異常迅猛,不僅出現了形形色色的購物網站、交友網站、銀行自助系統等,還出現了像Palm OS Web作業系統、可以替代Office等傳統辦公軟體的Google Document等功能強大的Web程式。這些主要得益於Web程式的瘦客戶端的特點,即不需要客戶安裝任何軟體,只需要使用瀏覽器即可完成操作。
Web程式可以非常簡單,簡單到只有幾個HTML頁面、幾個圖片,例如小型企業的介紹性網站等。也可以非常複雜,例如Google Document網站,完全可以替代Word、Excel、PPT、PDF閱讀器等;Google talk也完全可以替代QQ、MSN等。實現這些Web程式所用到的技術也很多,最流行的有微軟的.NET技術和Java相關技術。
Java相關技術作為最流行的開發技術之一,在Web開發領域也有著非常廣泛的套用。但Java Web開發所涉及的技術比較繁雜,涉及了很多開發框架和工具,而且它們各有所長,並不完全是一個完善的體系。這對需要掌握Java Web開發的人來說,有一定的困難。筆者曾經任職於IBM中國研究院、諾基亞北京研發中心和用友軟體等公司,有幸系統地學習了Java Web開發的方方面面的技術,並從事了大量的實際項目,積累了豐富的開發經驗。為了幫助讀者更好、更快速地掌握Java Web開發,筆者花費一年多的時間寫作本書,把Java Web開發所涉及的方方面面的技術進行了歸納和總結,以最簡單易懂的實例進行講解。相信讀者學習完本書內容,可以很全面地掌握Java Web開發所涉及的技術,也會搞清楚它們之間的聯繫,也相信讀者一定會在本書的引導下極大地提升Java Web開發水平。
為了讓讀者對Java Web開發有一個整體認識,下面先對Java Web開發的背景知識、開發模式、開發框架和開發技術等做一個簡單介紹,然後再介紹本書內容特色、知識體系、讀者對象及本書學習建議等。
Java Web開發的背景知識
網站有靜態、動態之分。靜態網站的內容都是靜態的、不可變的,網站發布後,無論是誰、什麼時候訪問,得到的內容都是一樣的。靜態網站一般不涉及編程,只需要編寫幾個HTML檔案,連同圖片等放到伺服器上即可。靜態網站一般不稱為Web程式。
而動態網站的內容是可以變化的。動態網站一般配合資料庫使用,數據存儲在資料庫中,通過網站程式動態添加,顯示數據。而程式怎樣添加、顯示數據,便是本書要講解的內容。
動態網站可以用多種語言編寫,例如CGI、PHP、ASP、JSP(也是Java技術)、.NET、Perl等。其中套用最廣的就是Java。因為Java是一種開源的、跨平台的、面向對象的程式語言,有著眾多的免費資源和標準可供選擇,例如Struts、Hibernate、Spring等。
Java Web開發的模式簡介
因為Java Web的官方規範是由一個名為JCP的開放組織制定的,任何人都可以參與標準的制定,因此它的開發模式是走在時代前列的。Java Web提出了一些革命性的、顛覆傳統的開發模式,例如分層模式(Model 2模式)、AOP(面向切面編程)等。本書會詳細介紹這些模式。
除了JCP制定的官方規範,還有一些廣泛流行的非官方的模式和設計思想。大名鼎鼎的Struts、Spring、Hibernate等都是非官方的框架。這些非官方的開發模式甚至超越了官方提出的模式。
Java Web開發所涉及的框架及技術
Java Web編程包括兩部分:伺服器端執行的代碼和客戶端(即瀏覽器端)執行的代碼。伺服器端執行的代碼即Java,用於生成HTML、CSS、JavaScript等瀏覽器端可以執行的代碼。本書的Java Web編程指的就是伺服器端編程。伺服器端編程可用的技術有Servlet、JSP、Struts、Spring、Hibernate、EJB、Web Service等。
瀏覽器端能夠顯示HTML、CSS代碼,並能夠執行JavaScript腳本程式。注意,JavaScript與Java並不是一種語言,語法不一樣,運行的環境也不一樣。對於一般的動態網站,可以不使用JavaScript。
JavaScript能夠在瀏覽器中實現一些功能,例如數據校驗等,還可以實現Ajax(也就是所說的Web 2.0技術)等複雜功能。跟Java編程一樣,JavaScript編程也積累了一些流行的技術,例如Prototype、JQuery、DOJO等。使用這些技術能夠顯著提高開發效率。本書的一些章節也會用到這些框架和技術。
需要注意的是,本書側重於伺服器端Java的編程,客戶端JavaScript的編程也會涉及,但不是本書重點。
本書特色
本書的寫作原則是:避免囉里囉唆,長篇大論;而是抽絲剝繭,層層深入,給讀者提供大量高質量的代碼供讀者理解,那些無用的東西與本書無關,不作介紹。本書內容上的主要特色體現在以下幾個方面。
1.囊括多種主流技術
.本書第14~第34章詳細講解了多種主流的技術。例如Spring、Struts、Hibernate、Web Work、Web Service、EJB 3、JPA、SSH組合、SSH2組合等。95%的Java Web系統都採用這些技術構架程式,學會了這些技術,也就能勝任95%的Java Web開發工作。
2.豐富的原創實例
本書中含有豐富的原創實例,使用效果一目了然,一些實例是國內外教材上都少有的。例如,利用Filter實現給圖像動態添加Logo、使用Listener實現單點登錄及線上人數統計、利用Ajax實現帶進度條上傳檔案、利用Web Service構架自己的搜尋引擎等。
3.詳盡的工具講解..
本書詳細講解了SVN、Log4J、JFreeChart、iText等開發工具的使用。使用這些工具進行開發,可以極大地提高工作效率。
4.實戰案例豐富
本書實戰篇演示了書中所使用系統構架。例如,經典框架組合SSH(Struts+Spring+Hibernate)搭建論壇程式,比較新潮的組合SSJ(Struts 2+Spring 2+JPA)搭建部落格系統。
5.標準的分層模式
本書使用接口編程模式與分層模式。書中後面的章節大都使用標準的MVC(Model- View-Control)三層模式,而Control層又分了兩層:DAO層與Service層。這是比較科學的設計方式。
6.提供多媒體視頻講解
為了方便讀者學習本書內容,本書配書光碟中贈送了400多分鐘的Java Web開發學習視頻,內容涉及常用開發工具的下載、安裝和配置,同時還包括了Struts框架的核心用法。讀者通過這些視頻可以很直觀地學習。
本書內容及體系結構
本書共分為9篇,所涉及的內容與知識體系介紹如下。
第1篇(第1~2章):入門篇。講解Java Web開發的一些概念、搭建開發環境、並開發部署第一個Java Web程式。
第2篇(第3~7章):基礎篇。講解Servlet規範中的基礎技術,包括Servlet、JSP、Cookie、Session、Filter、Listener等,並用詳盡的實例演示其功能。本篇中有大量生動的演示實例。
第3篇(第8~13章):高級篇。講解JSTL標籤、自定義標籤、資源國際化等高級特性,並介紹資料庫的使用、JDBC編程、XML等相關知識。
第4篇(第14~19章):Struts框架篇。分別講解Struts 1.x、Struts 2.x這兩個截然不同的MVC框架,以及它們的高級套用,例如數據校驗、檔案上傳、錯誤處理等。
第5篇(第20~25章):Hibernate框架篇。講解Hibernate框架的原理,並使用@註解與XML兩種方式演示Hibernate的常用配置,包括單邊的及多邊的一對多、多對一、多對多等關係,還包括簡單的HQL查詢、Left Join、Right Join等複雜查詢。
第6篇(第26~33章):Spring框架篇。講解Spring的IoC、AOP特性,並逐一講解Spring的Core、AOP、DAO、ORM、Web、MVC等6大模組,演示Spring與Struts 1.x、Struts 2.x、Hibernate等框架的結合,以及使用Spring定時器、傳送HTML電子郵件等 功能。
第7篇(第34~36章):EJB與Web服務篇。講解Java EE規範中的EJB 3與JPA,以及Web Service實現。使用JBOSS伺服器作為重量級的EJB 3容器。
第8篇(第37~40篇):工具篇。講解Java EE開發中常用的工具,例如SVN版本控制工具、Log4J日誌記錄工具、JFreeChart報表引擎工具、iText電子文檔工具等。
第9篇(第41~42篇):實戰篇。講解綜合項目案例開發。使用輕量級框架組合Spring+Struts+Hibernate框架構建一個論壇系統;使用重量級框架組合EJB 3+JPA+Struts 2構建一個分散式的電子寵物商店系統。
本書讀者對象
需要全面學習Java Web開發技術的人員
廣大Web開發人員
Java程式設計師
J2EE開發工程師
希望提高系統設計水平的人員
專業培訓機構的學員
軟體開發項目經理
需要一本案頭必備查詢手冊的人員
本書學習建議
Java Web開發技術比較繁雜,所以本書所涉及的內容也多而繁雜。本書儘可能地覆蓋了主流開發技術。然而不同的軟體公司或個人所使用的開發技術也有所不同,所以針對不同的讀者應該有不同的學習路徑。
Java初學者:沒有Java語言基礎的人能直接學習J2EE么?當然可以。要學J2EE,不一定非要驚動Java的基礎語法,只要懂得開發原理,照樣能設計出高效的程式。學習的時候要注意從第1章開始學起,不要跳躍,一步步打好基礎。
即將畢業的學生:大學時學過Java,能編寫簡單的程式,應該怎么學呢?可以先學習本書的第1篇,掌握JSP開發基礎,然後根據企業需要,選擇學習後面章節,做到對每個技術都有所涉獵。
已經工作一兩年的程式設計師:做過一些項目,還有必要學習本書內容嗎?本書內容很豐富,可以作為參考手冊使用,遇到問題可隨時查閱。另外,本書涉及很多高級技術,如SVN、JfreeChart、iText等,在業餘時間可以隨便翻閱,增長見識。讀者可以學習本書第8篇。
想往系統構架師方面發展的人員:面對讓人眼花繚亂的框架,卻不知道選擇什麼好,擔心繫統的可擴展性太差,不能勝任海量用戶訪問。這些問題讀者可以通過學習本書第6、7篇內容得到解決。
項目經理:本書對項目經理有幫助嗎?本書可以幫助項目經理搭建協同工作環境(SVU),把握項目的進度(Spring),決定先開發哪一層,後開發哪一層,先開發哪一個模組,後開發哪一個模組(MVC)。讀者可以學習本書最後兩個案例。
本書作者及編委會成員
本書由劉京華主筆編寫。其他參與編寫的人員有武冬、郅曉娜、孫美芹、衛麗行、尹翠翠、蔡繼文、陳曉宇、遲劍、鄧薇、郭利魁、金貞姬、李敬才、李萍、劉敬、陳慧、劉艷飛、呂博、全哲、佘勇、宋學江、王浩、王康、王楠、楊宗芳、張嚴虎、周玉、張平、張靖波、周芳、楊罡、于海濱、張晶傑、張利峰、楊景鳳、陳鍇、鄭劍鋒、葉佩思、張濤、趙東彪、王雙。在此一併表示感謝!
本書編委會成員有歐振旭、陳杰、陳冠軍、頊宇峰、張帆、陳剛、程彩紅、毛紅娟、聶慶亮、王志娟、武文娟、顏盟盟、姚志娟、尹繼平、張昆、張薛。
最後要說的是,本書書名確定為《Java Web整合開發王者歸來》。感謝電影《指環王》第三部《王者歸來》給我們提供的書名創意!當然這個書名不是為了炫耀作者的資歷有多高,而是希望各位讀者通過閱讀本書,能很好地掌握Java Web開發技術,成為Java Web開發的“王者”。我將倍感欣慰!所學授之於人,不亦樂乎?...
本書作者