新書(shū)出版:Java Web開(kāi)發(fā)技術(shù)大全——JSP+Servlet+Struts 2+Hibernate+Spring+Ajax (附源代碼)
本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!
源代碼下載

作者:李寧
圖書(shū)詳細(xì)信息:
ISBN:9787302195757
定價(jià):79.8元
印次:1-1
裝幀:平裝
印刷日期:2009-4-23
圖書(shū)簡(jiǎn)介:
SSH是目前最流行的Java Web開(kāi)發(fā)技術(shù)。本書(shū)通過(guò)對(duì)SSH中的各種技術(shù)循序漸進(jìn)地講解,使讀者盡快掌握開(kāi)發(fā)基于SSH的Web程序的方法。本書(shū)內(nèi) 容包括Web客戶端技術(shù)、JSP/Servlet技術(shù)、Struts 2(攔截器、類型轉(zhuǎn)換、輸入校驗(yàn)、上傳和下載文件、Struts 2的各種標(biāo)簽、對(duì) AJAX的支持等)、Spring(Ioc容器、裝配Java Bean、Jdbc和Hibernate模板、事務(wù)管理、Spring AOP等)以及 Hibernate(會(huì)話、映射、標(biāo)準(zhǔn)查詢API、HQL、事務(wù)管理、鎖等)。除此之外,本書(shū)還提供了兩個(gè)完整的實(shí)例來(lái)講解開(kāi)發(fā)SSH的詳細(xì)步驟和方法。 通過(guò)對(duì)這兩個(gè)實(shí)例的學(xué)習(xí),讀者可以對(duì)SSH開(kāi)發(fā)模式有更透徹地理解和認(rèn)識(shí)。
本書(shū)適合廣大從事Java Web開(kāi)發(fā)工作的技術(shù)人員、對(duì)SSH開(kāi)發(fā)感興趣的人員以及大專院校學(xué)生閱讀,尤其是具有一定的Web開(kāi)發(fā)經(jīng)驗(yàn)的技術(shù)人員。
前 言
現(xiàn)在MVC模式已經(jīng)成為Web應(yīng)用的主流開(kāi)發(fā)模式。而Struts框架幾乎可以和MVC模式劃等號(hào),因?yàn)镾truts框架已經(jīng)成為了MVC模式的事實(shí)標(biāo)準(zhǔn)。隨著Struts 1.x的應(yīng)用浪潮席卷全球數(shù)年后,Struts 2又以嶄新的姿態(tài)與世人見(jiàn)面了。
Struts 2仍然可以繼承Struts 1.x的應(yīng)用模式(Struts + Spring + Hibernate),但關(guān)于 Struts 2+Spring+Hibernate整合的書(shū)卻并不多。為了使讀者盡快了解和掌握如何使用 Struts 2、Spring和Hibernate 3個(gè)框架整合的方式來(lái)開(kāi)發(fā)Web應(yīng)用系統(tǒng),筆者花費(fèi)了大量的時(shí)間來(lái)完成這本關(guān)于Struts 2 + Spring +Hibernate 整合的書(shū)。為了盡可能保證內(nèi)容的準(zhǔn)確和權(quán)威性,筆者查閱了大量的官方文檔,并針對(duì)關(guān)鍵部分閱讀了相應(yīng)的源代碼。
本書(shū)的寫(xiě)作目標(biāo)就是力爭(zhēng)讓讀者盡可能地掌握Struts 2、Spring和Hibernate,以及這3個(gè)框架整合的相關(guān)知識(shí)。并通過(guò)兩個(gè)完整實(shí)例的講解使讀者盡快融入SSH(Struts+Spring+ Hibernate)大家庭。
本書(shū)有何特色
1.從基礎(chǔ)開(kāi)始,由淺入深
JSP/Servlet技術(shù)是Java Web技術(shù)的基礎(chǔ),很多初學(xué)者在學(xué)習(xí)SSH之前并沒(méi)有很好地掌握該技術(shù),因此,本書(shū)考慮到這個(gè)原因,在第一篇講解了JSP/Servlet以及Web客戶端技術(shù)的基礎(chǔ)知識(shí)。除此之外,在第二~四篇的頭一章都以一個(gè)簡(jiǎn)單的例子開(kāi)始,以使讀者在學(xué)習(xí)每一篇所講的技術(shù)之前,對(duì)這種技術(shù)有一個(gè)初步的了解。并且每一篇的章節(jié)是按照由淺入深、循序漸進(jìn)的順序編排的,從而可以使讀者漸進(jìn)式地學(xué)習(xí)本書(shū)的知識(shí)。
2.各篇獨(dú)立,內(nèi)容完整
本書(shū)的每一篇都是相對(duì)獨(dú)立的。如第二篇講解了Struts 2的各種技術(shù);第三篇講解了Hibernate的主要技術(shù),而且每一篇講解的技術(shù)比較完整。這樣就會(huì)給想學(xué)習(xí)SSH整合技術(shù),但卻未掌握SSH中的一項(xiàng)或幾項(xiàng)技術(shù)的讀者帶來(lái)方便,至少不需要同時(shí)準(zhǔn)備幾本書(shū),從而給讀者節(jié)省了大量的時(shí)間和金錢(qián)。
3.各章實(shí)例豐富,使讀者更容易理解書(shū)中的知識(shí)
本書(shū)幾乎在每一章都提供了大量的實(shí)例。這些實(shí)例充分展現(xiàn)了相關(guān)知識(shí)點(diǎn)的實(shí)現(xiàn)細(xì)節(jié)。讀者可以在學(xué)習(xí)相關(guān)知識(shí)點(diǎn)后,通過(guò)上機(jī)實(shí)踐這些例子來(lái)更深入地了解并掌握這些知識(shí)點(diǎn)。
4.提供了完整的實(shí)例,使讀者更進(jìn)一步體會(huì)SSH開(kāi)發(fā)模式的精髓
在本章的最后還提供了兩個(gè)完整的實(shí)例(網(wǎng)絡(luò)硬盤(pán)和論壇系統(tǒng))。這兩個(gè)實(shí)例都采用了SSH模式進(jìn)行開(kāi)發(fā)。通過(guò)對(duì)這兩個(gè)實(shí)例的深入研究,讀者可以比較全面地掌握基于SSH模式的Web應(yīng)用程序的開(kāi)發(fā)步驟和開(kāi)發(fā)方法,并可將實(shí)例中所采用的技術(shù)應(yīng)用到自己的項(xiàng)目中。
5.使用最新版本的開(kāi)發(fā)工具和框架
本書(shū)所使用的開(kāi)發(fā)工具和相關(guān)的框架在筆者寫(xiě)作本書(shū)時(shí)都是最新版本,如MyEclipse 6.5、Struts 2.0.11.2等。讀者可以在學(xué)習(xí)SSH開(kāi)發(fā)技術(shù)的同時(shí),接觸到目前最新版本的開(kāi)發(fā)工具和框架。就算讀者目前所使用的軟件版本低于本書(shū)所使用的軟件版本,也可以為未來(lái)的工作奠定基礎(chǔ)。
6.配有源代碼與視頻光盤(pán),方便讀者使用
為了方便讀者實(shí)驗(yàn)本書(shū)提供的實(shí)例程序,特將所有的源代碼都收錄到了配書(shū)光盤(pán)中,以方便讀者使用。另外,作者特別為本書(shū)錄制了一些多媒體視頻演示,將本書(shū)中的一些相關(guān)操作直觀地展示給讀者,以達(dá)到更好的學(xué)習(xí)效果。
本書(shū)內(nèi)容
第1章:為了使讀者盡快搭建本書(shū)所使用的開(kāi)發(fā)環(huán)境。在這一章將詳細(xì)介紹本書(shū)所使用的開(kāi)發(fā)工具、框架的版本號(hào)以及下載、安裝和配置的過(guò)程。
第2章:本章介紹了Web技術(shù)的發(fā)展歷史,以及Java Web技術(shù)的基本組成。最后詳細(xì)描述了Java Web技術(shù)中常用的兩種開(kāi)發(fā)模式:JSP模型1和JSP模型2(MVC模式),以及目前常用的MVC框架。
第3章:本章介紹了在Web系統(tǒng)中常用的客戶端技術(shù),這些技術(shù)包括JavaScript、CSS和AJAX。在本章的開(kāi)始部分還介紹了一些開(kāi)發(fā)JavaScript的常用IDE。
第4章:本章介紹了Servlet的基礎(chǔ)知識(shí),如處理請(qǐng)求消息、響應(yīng)消息、Cookie和Session等,最后還詳細(xì)講解了Web開(kāi)發(fā)中所遇到的中文亂碼問(wèn)題的解決方案。
第5章:本章介紹了JSP的運(yùn)行原理、基本語(yǔ)法、JSP指令、JSP的內(nèi)置對(duì)象、JSP標(biāo)簽和JSTL。
第6章:本章以一個(gè)用戶注冊(cè)登錄系統(tǒng)為例,演示了如何綜合運(yùn)用JSP/Servlet技術(shù)開(kāi)發(fā)一個(gè)完整的Web應(yīng)用程序。
第7章:本章介紹了Struts 2中的MVC模式,以及Struts 2的體系結(jié)構(gòu)。最后給出了一個(gè)簡(jiǎn)單的例子來(lái)演示開(kāi)發(fā)基于Struts 2的Web應(yīng)用程序的步驟和方法。
第8章:本章介紹了如何配置Struts 2框架、Struts 2 Action、處理結(jié)果、模型驅(qū)動(dòng)和異常處理。
第9章:本章介紹了Struts 2的攔截器技術(shù),其中包括攔截器的實(shí)現(xiàn)原理、攔截器的配置、實(shí)現(xiàn)自定義攔截器以及內(nèi)建攔截器等內(nèi)容。
第10章:本章介紹了Struts 2中的各種類型轉(zhuǎn)換技術(shù)。如OGNL表達(dá)式、數(shù)組和集合類型轉(zhuǎn)換器、類型轉(zhuǎn)換的錯(cuò)誤處理等。
第11章:本章介紹了傳統(tǒng)的輸入校驗(yàn)和Struts 2中的輸入校驗(yàn)。
第12章:本章首先介紹了文件上傳的原理,以及如何使用Commons-FileUpload組件上傳文件。本章的重頭戲是講解Struts 2的上傳功能,其中包括上傳單個(gè)文件和上傳任意多個(gè)文件的方法。在最后介紹了如何使用Struts 2框架下載文件,主要包括使用stream結(jié)果下載文件以及下載文件的權(quán)限控制。
第13章:本章介紹了Struts 2在國(guó)際化方面的技術(shù)。為了更深入地理解Struts 2的國(guó)際化功能,在本章的開(kāi)始部分首先介紹了Java對(duì)國(guó)際化的支持。然后逐步深入介紹Struts 2的國(guó)際化技術(shù),主要包括訪問(wèn)資源文件、資源文件的加載順序等,最后給出了一個(gè)例子來(lái)演示如何將國(guó)際化功能加載到Web應(yīng)用程序中。
第14章:本章詳細(xì)講解了Struts 2框架中的標(biāo)簽。這些標(biāo)簽包括控制標(biāo)簽、數(shù)據(jù)標(biāo)簽、表單標(biāo)簽、非表單標(biāo)簽。
第15章:本章著重介紹了Struts 2框架對(duì)AJAX的支持,主要內(nèi)容包括支持AJAX的標(biāo)簽、基于AJAX的校驗(yàn)、發(fā)布-訂閱事件模型、JSON插件等。
第16章:本章使用了Struts 2技術(shù)重新實(shí)現(xiàn)了第6章的用戶注冊(cè)登錄系統(tǒng)。在本章實(shí)現(xiàn)的用戶注冊(cè)登錄系統(tǒng)的功能和第6章實(shí)現(xiàn)的該系統(tǒng)的功能相同,只是使用了Struts 2框架來(lái)實(shí)現(xiàn)相關(guān)的部分。讀者可以從中體會(huì)到使用JSP/Servlet和Struts 2在開(kāi)發(fā)Web應(yīng)用程序中的不同。
第17章:本章介紹了ORM的概念以及Hibernate和EJB的關(guān)系。最后給出一個(gè)例子來(lái)演示在MyEclipse中開(kāi)發(fā)基于Hibernate的系統(tǒng)的步驟和方法。
第18章:本章介紹了Hibernate的兩種配置方式:配置文件和注釋。在最后給出了一個(gè)例子重新實(shí)現(xiàn)了第17章的例子,只不過(guò)這個(gè)例子使用了注釋來(lái)配置Hibernate。
第19章:本章介紹了Hibernate會(huì)話的基本操作和O/R映射。其中O/R映射主要介紹了映射主鍵、映射復(fù)合主鍵、映射普通屬性、組件映射、基于注釋的組件映射、多對(duì)一、一對(duì)多、一對(duì)一的關(guān)系。
第20章:本章的第1節(jié)介紹了Hibernate的標(biāo)準(zhǔn)(Criteria)查詢API技術(shù),主要內(nèi)容包括約束條件、分頁(yè)、排序、聚合和分組以及QBE。在第2節(jié)介紹了Hibernate中的另外兩種查詢技術(shù):HQL和SQL。其中HQL主要介紹了From、Select、Where、Update、Insert以及Delete語(yǔ)句,還介紹了命名參數(shù)、排序和分組、關(guān)聯(lián)查詢、命名查詢等。
第21章:本章介紹了Hibernate的一些高級(jí)技術(shù),主要包括事務(wù)管理、鎖機(jī)制、查詢緩存、攔截器和事件與過(guò)濾器。
第22章:本章介紹了Spring的主要特性和核心技術(shù),在最后還給出了一個(gè)例子來(lái)演示使用Spring框架開(kāi)發(fā)程序的過(guò)程。
第23章:本章介紹了Spring框架的核心思想,反向控制(Ioc),同時(shí)還詳細(xì)講解了Spring框架中最常用的裝配Java Bean技術(shù)以及分散配置和定制屬性編輯器。
第24章:本章介紹了Spring中的數(shù)據(jù)庫(kù)技術(shù),主要包括在Spring中使用數(shù)據(jù)源連接數(shù)據(jù)庫(kù)、操作JDBC的JdbcTemplate;操作Hibernate的HibernateTemplate以及自增鍵和異常的處理。
第25章:本章主要介紹了Spring AOP技術(shù)的基礎(chǔ)知識(shí)以及事務(wù)管理。除此之外,還介紹了Spring的其他一些高級(jí)屬性,如建立和訪問(wèn)RMI服務(wù)、發(fā)送Email、調(diào)度任務(wù)等。
第26章:從本章開(kāi)始逐漸涉及到了SSH開(kāi)發(fā)的全過(guò)程。在本章主要介紹了Struts 2、Spring和Hibernate 3個(gè)框架整合的思路,以及基于SSH的系統(tǒng)的層次結(jié)構(gòu)。
第27、28章:在這兩章給出了兩個(gè)完整的使用SSH開(kāi)發(fā)的例子(網(wǎng)絡(luò)硬盤(pán)和論壇系統(tǒng))。在這兩個(gè)例子中詳細(xì)描述了開(kāi)發(fā)基于SSH的系統(tǒng)的步驟和其中所涉及到的技術(shù)。開(kāi)發(fā)這兩個(gè)例子的基本步驟類似,不過(guò)它們所涉及到的技術(shù)有一定的區(qū)別,如在論壇系統(tǒng)中涉及到了一個(gè)Web編輯器(FCKEditor)的安裝和使用。
適合閱讀本書(shū)的讀者
* 初步掌握J(rèn)ava技術(shù),想進(jìn)一步學(xué)習(xí)SSH整合開(kāi)發(fā)的讀者
* 對(duì)SSH整合技術(shù)有了一定的了解,想進(jìn)一步提高的讀者
* 正在使用SSH整合技術(shù)開(kāi)發(fā)項(xiàng)目,想查閱相關(guān)技術(shù)的讀者
* 大中專院校的學(xué)生
* 社會(huì)培訓(xùn)學(xué)生
目 錄
第1篇 Web開(kāi)發(fā)基礎(chǔ)篇
第1章 搭建開(kāi)發(fā)環(huán)境 2
1.1 本書(shū)使用的軟件和框架的版本 2
1.2 JDK6的下載與安裝 2
1.3 Eclipse 3.4的下載與安裝 3
1.4 MyEclipse 6.5的下載與安裝 3
1.5 Eclipse IDE for Java EE Developers的下載與安裝 4
1.6 Tomcat 6的下載與安裝 5
1.7 在MyEclipse中配置Tomcat 6
1.8 在Eclipse IDE for Java EE Developers中配置Tomcat 6
1.9 小結(jié) 7
第2章 Java Web應(yīng)用開(kāi)發(fā)基礎(chǔ) 8
2.1 Web技術(shù)的發(fā)展 8
2.2 Java Web技術(shù) 10
2.2.1 Java Web程序的基本組成 11
2.2.2 Java Web程序的目錄結(jié)構(gòu) 11
2.2.3 Java Web程序的配置文件 11
2.3 MVC模式與MVC框架 12
2.3.1 JSP模型1和JSP模型2 12
2.3.2 Web應(yīng)用程序需要的基礎(chǔ)服務(wù) 13
2.3.3 MVC模式概述 14
2.3.4 常用的MVC框架 15
2.4 小結(jié) 16
第3章 Web開(kāi)發(fā)中的客戶端技術(shù) 17
3.1 常用的JavaScript IDE簡(jiǎn)介 17
3.1.1 在MyEclipse中使用JavaScript 17
3.1.2 在Eclipse IDE for Java EE中使用JavaScript 18
3.1.3 在NetBeans中使用JavaScript 19
3.1.4 其他的JavaScript IDE 20
3.2 JavaScript語(yǔ)法基礎(chǔ) 20
3.2.1 實(shí)例:編寫(xiě)第一個(gè)JavaScript程序:Greet 21
3.2.2 變量 22
3.2.3 原始類型 22
3.2.4 類型轉(zhuǎn)換 26
3.2.5 函數(shù)與函數(shù)調(diào)用 28
3.2.6 類和對(duì)象 30
3.3 JavaScript高級(jí)技術(shù) 32
3.3.1 DOM技術(shù)概述 32
3.3.2 獲得HTML元素的3種方法 34
3.3.3 實(shí)例:圖像自動(dòng)切換 36
3.3.4 正則表達(dá)式 37
3.3.5 實(shí)例:表格排序 38
3.4 CSS基礎(chǔ) 41
3.4.1 CSS的基本語(yǔ)法 41
3.4.2 在Style屬性中定義樣式 42
3.4.3 在HTML中定義樣式 42
3.4.4 在外部文件中定義樣式 43
3.4.5 樣式的繼承 43
3.5 AJAX基礎(chǔ) 44
3.5.1 AJAX概述 44
3.5.2 實(shí)例:使用XMLHttpRequest獲得Web資源 45
3.5.3 實(shí)例:使用XMLHttpRequest跨域訪問(wèn)Web資源 46
3.5.4 實(shí)例:AJAX的3種交換數(shù)據(jù)方法 47
3.6 小結(jié) 49
第4章 Servlet技術(shù) 50
4.1 Servlet的Helloworld程序 50
4.1.1 實(shí)例:在MyEclipse中編寫(xiě)Helloworld程序 50
4.1.2 實(shí)例:手工編寫(xiě)Helloworld程序 53
4.2 Servlet基礎(chǔ) 54
4.2.1 配置數(shù)據(jù)庫(kù)連接池 55
4.2.2 數(shù)據(jù)庫(kù)連接池的應(yīng)用 56
4.2.3 實(shí)例:用doGet方法處理客戶端請(qǐng)求 58
4.2.4 實(shí)例:用doPost方法處理客戶端請(qǐng)求 60
4.2.5 實(shí)例:用service方法處理客戶端請(qǐng)求 60
4.2.6 實(shí)例:初始化(init)和銷(xiāo)毀(destroy)Servlet 62
4.2.7 實(shí)例:使用PrintWriter輸出響應(yīng)消息 64
4.2.8 實(shí)例:用ServletOutputStream顯示圖像 65
4.2.9 實(shí)例:使用RequestDispatcher包含Web資源 66
4.2.10 實(shí)例:使用RequestDispatcher轉(zhuǎn)發(fā)Web資源 68
4.3 HttpServletResponse類的其他功能 69
4.3.1 產(chǎn)生狀態(tài)響應(yīng)碼 70
4.3.2 設(shè)置響應(yīng)消息頭 71
4.3.3 實(shí)例:驗(yàn)證響應(yīng)頭設(shè)置情況 73
4..4 使用HttpServletRequest獲得請(qǐng)求消息 73
4.4.1 獲取請(qǐng)求行消息 74
4.4.2 獲取網(wǎng)絡(luò)連接消息 74
4.4.3 獲取請(qǐng)求頭消息 75
4.5 處理Cookie 76
4.5.1 什么是Cookie 76
4.5.2 Cookie類中的方法 76
4.5.3 實(shí)例:用Cookie讀寫(xiě)客戶端信息 77
4.5.4 實(shí)例:用Cookie讀寫(xiě)復(fù)雜數(shù)據(jù) 79
4.6 處理Session 81
4.6.1 什么是Session 81
4.6.2 HttpSession接口中的方法 81
4.6.3 HttpServletRequest接口中的Session方法 83
4.6.4 實(shí)例:通過(guò)Cookie跟蹤Session 83
4.6.5 實(shí)例:通過(guò)重寫(xiě)URL跟蹤Session 85
4.7 Web開(kāi)發(fā)的中文問(wèn)題 87
4.7.1 Java的編碼原理 87
4.7.2 實(shí)例:解決輸出中文亂碼問(wèn)題 89
4.7.3 實(shí)例:解決服務(wù)端程序讀取中文請(qǐng)求消息的亂碼問(wèn)題 90
4.7.4 實(shí)例:用AJAX技術(shù)發(fā)送和接收中文信息 92
4.7.5 實(shí)例:在請(qǐng)求消息頭和響應(yīng)消息頭中轉(zhuǎn)輸中文 95
4.8 小結(jié) 97
第5章 JSP技術(shù) 98
5.1 用MyEclipse編寫(xiě)第一個(gè)JSP程序 98
5.1.1 實(shí)例:編寫(xiě)顯示服務(wù)器當(dāng)前時(shí)間的JSP程序 98
5.1.2 調(diào)試JSP程序 100
5.1.3 改變JSP的訪問(wèn)路徑和擴(kuò)展名 101
5.1.4 手動(dòng)發(fā)布JSP程序 102
5.2 JSP的運(yùn)行原理 102
5.2.1 Tomcat如何處理JSP頁(yè) 103
5.2.2 分析由JSP生成的Servlet代碼 104
5.3 JSP基本語(yǔ)法 108
5.3.1 JSP表達(dá)式 109
5.3.2 在JSP中嵌入Java代碼 109
5.3.3 JSP聲明 111
5.3.4 JSP表達(dá)式語(yǔ)言(EL) 113
5.3.5 實(shí)例:用EL函數(shù)替換HTML中的特殊字符 115
5.3.6 JSP頁(yè)面中的注釋 117
5.4 JSP指令 118
5.4.1 JSP指令簡(jiǎn)介 118
5.4.2 page頁(yè)面指令 119
5.4.3 include加入指令 125
5.5 JSP的9個(gè)內(nèi)置對(duì)象 126
5.5.1 out輸出對(duì)象 126
5.5.2 pageContext封裝對(duì)象 128
5.5.3 其他的JSP內(nèi)置對(duì)象 129
5.6 JSP標(biāo)簽 132
5.6.1 <jsp:include>插入標(biāo)簽 132
5.6.2 <jsp:forward>轉(zhuǎn)發(fā)標(biāo)簽 134
5.6.3 <jsp:param>傳參標(biāo)簽 135
5.6.4 <jsp:useBean>創(chuàng)建Bean標(biāo)簽 136
5.6.5 <jsp:setProperty>設(shè)置屬性值標(biāo)簽 138
5.6.6 <jsp:getProperty>獲取屬性值標(biāo)簽 140
5.7 JSP的標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL) 140
5.7.1 如何使用JSTL 141
5.7.2 條件標(biāo)簽 142
5.7.3 循環(huán)標(biāo)簽 144
5.8 小結(jié) 147
第6章 用Servlet和JSP實(shí)現(xiàn)注冊(cè)登錄系統(tǒng) 148
6.1 系統(tǒng)概述 148
6.1.1 系統(tǒng)功能簡(jiǎn)介 148
6.1.2 系統(tǒng)總體結(jié)構(gòu) 149
6.2 設(shè)計(jì)數(shù)據(jù)庫(kù) 149
6.3 實(shí)現(xiàn)系統(tǒng)的基礎(chǔ)類 150
6.3.1 實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)的DBServlet類 150
6.3.2 實(shí)現(xiàn)MD5加密 152
6.3.3 實(shí)現(xiàn)圖形驗(yàn)證碼 152
6.4 實(shí)現(xiàn)注冊(cè)系統(tǒng) 155
6.4.1 實(shí)現(xiàn)注冊(cè)Servlet類 155
6.4.2 實(shí)現(xiàn)注冊(cè)系統(tǒng)的主頁(yè)面 157
6.4.3 實(shí)現(xiàn)結(jié)果JSP頁(yè)面 159
6.5 實(shí)現(xiàn)登錄系統(tǒng) 160
6.5.1 實(shí)現(xiàn)登錄Servlet 160
6.5.2 實(shí)現(xiàn)登錄系統(tǒng)主頁(yè)面 162
6.6 小結(jié) 163
第2篇 Struts 2篇
第7章 編寫(xiě)Struts 2的第一個(gè)程序 166
7.1 Struts 2中的MVC模式 166
7.2 Struts 2的體系結(jié)構(gòu) 167
7.2.1 Struts 2的工作流程 167
7.2.2 Struts 2的配置文件 167
7.2.3 Struts 2的控制器 169
7.3 實(shí)例:圖書(shū)查詢系統(tǒng) 170
7.3.1 下載和安裝Struts 2 170
7.3.2 編寫(xiě)數(shù)據(jù)處理類 171
7.3.3 編寫(xiě)和配置Action類 172
7.3.4 編寫(xiě)顯示查詢結(jié)果的JSP頁(yè)面 174
7.3.5 編寫(xiě)輸入查詢信息的JSP頁(yè)面 176
7.4 小結(jié) 177
第8章 Struts 2進(jìn)階 178
8.1 Struts 2的基本配置 178
8.1.1 配置web.xml 178
8.1.2 配置struts.xml 179
8.1.3 配置struts.properties 183
8.1.4 Struts 2的DTD 186
8.2 深入理解Struts 2的配置元素 188
8.2.1 配置Bean 188
8.2.2 配置常量(constant) 190
8.2.3 配置包含(include) 191
8.2.4 配置包(package) 192
8.2.5 配置命名空間 193
8.2.6 配置攔截器 194
8.3 Struts 2注釋(Annotation) 195
8.3.1 ParentPackage注釋:設(shè)置當(dāng)前包的父包 195
8.3.2 Namespace注釋:指定當(dāng)前包的命名空間 196
8.3.3 Results與Result注釋:指定當(dāng)前Action結(jié)果 197
8.3.4 實(shí)例:用注釋配置Action 197
8.4 Struts 2的Action 200
8.4.1 Action類的getter和setter方法 200
8.4.2 實(shí)現(xiàn)Action接口 202
8.4.3 繼承ActionSupport類 203
8.4.4 實(shí)例:用ActionContext訪問(wèn)Servlet API 205
8.4.5 實(shí)例:通過(guò)aware攔截器訪問(wèn)Servlet API 209
8.4.6 實(shí)例:利用動(dòng)態(tài)方法處理多個(gè)提交請(qǐng)求 211
8.4.7 實(shí)例:利用method屬性處理多個(gè)提交請(qǐng)求 213
8.4.8 使用通配符 214
8.4.9 默認(rèn)Action 218
8.5 處理結(jié)果 218
8.5.1 配置結(jié)果 218
8.5.2 Struts 2支持的處理結(jié)果類型 219
8.5.3 用通配符指定結(jié)果 222
8.5.4 用請(qǐng)求參數(shù)指定結(jié)果 223
8.6 模型驅(qū)動(dòng) 224
8.6.1 ModelDriven概述 224
8.6.2 實(shí)例:使用模型驅(qū)動(dòng)改進(jìn)登錄程序 226
8.7 處理異常 228
8.7.1 Struts 2處理異常的原理 229
8.7.2 實(shí)例:登錄系統(tǒng)的異常處理 230
8.8 小結(jié) 233
第9章 Struts 2的攔截器 234
9.1 理解攔截器 234
9.1.1 攔截器的實(shí)現(xiàn)原理 234
9.1.2 實(shí)例:模擬Struts 2實(shí)現(xiàn)一個(gè)攔截器系統(tǒng) 237
9.2 配置Struts 2攔截器 242
9.2.1 配置攔截器 242
9.2.2 使用攔截器 244
9.2.3 默認(rèn)攔截器 245
9.3 實(shí)例:自定義攔截器 247
9.3.1 編寫(xiě)攔截器類 247
9.3.2 配置自定義攔截器 249
9.4 攔截器的高級(jí)技術(shù) 251
9.4.1 過(guò)濾指定的方法 251
9.4.2 攔截器執(zhí)行順序 254
9.4.3 攔截器結(jié)果監(jiān)聽(tīng)器 255
9.5 Struts 2內(nèi)建的攔截器 258
9.5.1 內(nèi)建攔截器 258
9.5.2 內(nèi)建攔截器的配置 260
9.6 實(shí)例:編寫(xiě)權(quán)限驗(yàn)證攔截器 262
9.6.1 編寫(xiě)權(quán)限驗(yàn)證攔截器類 263
9.6.2 配置權(quán)限控制攔截器 263
9.7 小結(jié) 265
第10章 Struts 2的類型轉(zhuǎn)換 266
10.1 為什么要進(jìn)行類型轉(zhuǎn)換 266
10.1.1 客戶端和服務(wù)端之間的數(shù)據(jù)處理過(guò)程 266
10.1.2 傳統(tǒng)的類型轉(zhuǎn)換 267
10.2 使用Struts 2類型轉(zhuǎn)換器 270
10.2.1 Struts 2內(nèi)建的類型轉(zhuǎn)換器 271
10.2.2 實(shí)例:實(shí)現(xiàn)基于OGNL的類型轉(zhuǎn)換器 274
10.2.3 配置全局類型轉(zhuǎn)換器 278
10.2.4 實(shí)例:實(shí)現(xiàn)基于Struts 2的類型轉(zhuǎn)換器 280
10.2.5 實(shí)例:實(shí)現(xiàn)數(shù)組類型轉(zhuǎn)換器 282
10.2.6 實(shí)例:實(shí)現(xiàn)集合類型轉(zhuǎn)換器 284
10.3 實(shí)例:使用OGNL表達(dá)式進(jìn)行類型轉(zhuǎn)換 287
10.4 Struts 2對(duì)Collection和Map的支持 289
10.4.1 指定集合元素的類型 289
10.4.2 Set和索引屬性 291
10.5 類型轉(zhuǎn)換的錯(cuò)誤處理 292
10.6 小結(jié) 294
第11章 Struts 2的輸入校驗(yàn) 295
11.1 傳統(tǒng)的數(shù)據(jù)校驗(yàn)方法 295
11.1.1 用JavaScript進(jìn)行客戶端校驗(yàn) 295
11.1.2 手工進(jìn)行服務(wù)端校驗(yàn) 300
11.2 Struts 2的數(shù)據(jù)校驗(yàn) 303
11.2.1 Struts 2使用validate方法校驗(yàn)數(shù)據(jù)的原理 303
11.2.2 實(shí)例:使用validate方法進(jìn)行輸入校驗(yàn) 305
11.2.3 實(shí)例:使用validateXxx方法進(jìn)行輸入校驗(yàn) 308
11.2.4 Struts 2的輸入校驗(yàn)流程 311
11.3 使用Validation框架進(jìn)行輸入校驗(yàn) 312
11.3.1 實(shí)例:服務(wù)端校驗(yàn) 313
11.3.2 字段校驗(yàn)器和非字段校驗(yàn)器 315
11.3.3 國(guó)際化錯(cuò)誤提示信息 317
11.3.4 實(shí)例:客戶端校驗(yàn) 319
11.3.5 校驗(yàn)文件的命名規(guī)則 323
11.3.6 短路校驗(yàn)器 325
11.4 Validation框架的內(nèi)建校驗(yàn)器 327
11.4.1 注冊(cè)和引用校驗(yàn)器 327
11.4.2 轉(zhuǎn)換(conversion)校驗(yàn)器 328
11.4.3 日期(date)校驗(yàn)器 329
11.4.4 雙精度浮點(diǎn)數(shù)(double)校驗(yàn)器 330
11.4.5 郵件地址(email)校驗(yàn)器 331
11.4.6 表達(dá)式(expression)校驗(yàn)器 332
11.4.7 字段表達(dá)式(fieldexpression)校驗(yàn)器 332
11.4.8 整數(shù)(int)校驗(yàn)器 333
11.4.9 正則表達(dá)式(regex)校驗(yàn)器 334
11.4.10 必填(required)校驗(yàn)器 335
11.4.11 必填字符串(requiredstring)校驗(yàn)器 335
11.4.12 字符串長(zhǎng)度(stringlength)校驗(yàn)器 336
11.4.13 網(wǎng)址(url)校驗(yàn)器 337
11.4.14 visitor校驗(yàn)器 337
11.5 小結(jié) 341
第12章 文件的上傳和下載 342
12.1 文件上傳原理 342
12.1.1 表單數(shù)據(jù)的編碼方式 342
12.1.2 applicaiton/x-www.form-urlencoded編碼方式 343
12.1.3 multipart/form-data編碼方式 345
12.2 使用Commons-FileUpload上傳文件 348
12.2.1 下載和安裝Commons-FileUpload組件 348
12.2.2 實(shí)例:上傳單個(gè)文件 349
12.2.3 實(shí)例:上傳任意多個(gè)文件 352
12.3 實(shí)例:Struts 2的文件上傳 355
12.3.1 Struts 2對(duì)上傳文件的支持 355
12.3.2 編寫(xiě)上傳文件的JSP頁(yè) 355
12.3.3 編寫(xiě)上傳文件的Action類 356
12.3.4 配置上傳文件的Action類 358
12.3.5 手工過(guò)濾上傳文件的類型 359
12.3.6 用fileUpload攔截器過(guò)濾上傳文件的類型 361
12.4 在Struts 2中上傳多個(gè)文件 363
12.4.1 實(shí)例:用數(shù)組上傳固定數(shù)目的文件 363
12.4.2 實(shí)例:用List上傳任意數(shù)目的文件 366
12.5 文件下載 368
12.5.1 下載文件的中文問(wèn)題 368
12.5.2 用stream結(jié)果下載文件 369
12.5.3 下載文件的授權(quán)控制 371
12.6 小結(jié) 372
第13章 國(guó)際化 373
13.1 國(guó)際化基礎(chǔ) 373
13.1.1 程序?yàn)槭裁葱枰獓?guó)際化 373
13.1.2 Java國(guó)際化中的資源文件 374
13.1.3 Java支持的語(yǔ)言和國(guó)家 375
13.1.4 資源文件的中文支持 376
13.1.5 編寫(xiě)國(guó)際化程序 377
13.1.6 帶占位符的國(guó)際化信息 379
13.1.7 實(shí)例:使用資源文件編寫(xiě)國(guó)際化程序 380
13.1.8 Java國(guó)際化中的資源類 383
13.1.9 實(shí)例:使用資源類編寫(xiě)國(guó)際化程序 384
13.2 Struts 2的國(guó)際化基礎(chǔ) 385
13.2.1 Struts 2中的全局資源文件 386
13.2.2 在Struts 2中訪問(wèn)國(guó)際化信息 386
13.2.3 在Struts 2中輸出帶占位符的國(guó)際化信息 389
13.3 資源文件的作用范圍和加載順序 391
13.3.1 包范圍資源文件 391
13.3.2 接口范圍資源文件 393
13.3.3 Action基類范圍資源文件 395
13.3.3 Action范圍資源文件 396
13.3.5 臨時(shí)資源文件 397
13.3.6 加載資源文件的順序 398
13.4 實(shí)例:編寫(xiě)支持多國(guó)語(yǔ)言的Web應(yīng)用程序 399
13.4.1 通過(guò)i18n攔截器實(shí)現(xiàn)國(guó)際化 400
13.4.2 為register.jsp頁(yè)面增加語(yǔ)言選擇列表 401
13.4.3 將register.jsp頁(yè)面映射成Action 402
13.5 小結(jié) 404
第14章 Struts 2的標(biāo)簽庫(kù) 405
14.1 Struts 2標(biāo)簽基礎(chǔ) 405
14.1.1 Struts 2標(biāo)簽的分類 405
14.1.2 使用Struts 2標(biāo)簽 406
14.1.3 Struts 2中的OGNL表達(dá)式 408
14.1.4 用OGNL表達(dá)式訪問(wèn)內(nèi)置對(duì)象 411
14.1.5 用OGNL表達(dá)式操作集合 412
14.1.6 Lamdba(λ)表達(dá)式 414
14.2 控制標(biāo)簽 415
14.2.1 if/elseif/else標(biāo)簽:條件邏輯控制 415
14.2.2 iterator標(biāo)簽:數(shù)組、集合迭代 418
14.2.3 append標(biāo)簽:將集合以追加方式合并為新集合 422
14.2.4 generator標(biāo)簽:將字符串分割成多個(gè)子串 424
14.2.5 merge標(biāo)簽:將集合以交替方式合并為新集合 427
14.2.6 subset標(biāo)簽:獲得集合的子集 428
14.2.7 sort標(biāo)簽:對(duì)集合進(jìn)行排序 430
14.3 數(shù)據(jù)標(biāo)簽 432
14.3.1 action標(biāo)簽:在JSP頁(yè)面中直接訪問(wèn)Action 432
14.3.2 bean標(biāo)簽:創(chuàng)建JavaBean的對(duì)象實(shí)例 434
14.3.3 date標(biāo)簽:格式化日期/時(shí)間 436
14.3.4 debug標(biāo)簽:顯示調(diào)試信息 438
14.3.5 include標(biāo)簽:包含Web資源 439
14.3.6 param標(biāo)簽:為其他的標(biāo)簽提供參數(shù) 440
14.3.7 property標(biāo)簽:輸出指定的值 440
14.3.8 push標(biāo)簽:將指定值放到ValueStack棧頂 441
14.3.9 set標(biāo)簽:將某個(gè)值保存在指定的范圍 442
14.3.10 url標(biāo)簽:生成URL地址 444
14.4 表單標(biāo)簽 446
14.4.1 表單標(biāo)簽的通用屬性 446
14.4.2 表單標(biāo)簽的name和value屬性 447
14.4.3 form、submit和reset標(biāo)簽:表單、提交和重置 449
14.4.4 checkboxlist標(biāo)簽:生成多個(gè)復(fù)選框 449
14.4.5 combobox標(biāo)簽:組合單行文本框和下拉列表框 452
14.4.6 datetimespicker標(biāo)簽:組合文本框和日期、時(shí)間選擇框 454
14.4.7 doubleselect標(biāo)簽:生成級(jí)聯(lián)列表框 457
14.4.8 head標(biāo)簽:添加CSS和JavaScript 458
14.4.9 optiontransferselect 標(biāo)簽:生成可交互的兩個(gè)列表框 459
14.4.10 select標(biāo)簽:生成列表框 461
14.4.11 optgroup標(biāo)簽:生成下拉列表框選項(xiàng)組 462
14.4.12 radio標(biāo)簽:生成多個(gè)單選框 463
14.4.13 token標(biāo)簽:防止多次提交表單 464
14.4.14 updownselect標(biāo)簽:生成高級(jí)列表框 465
14.4.15 其他的表單標(biāo)簽 467
14.5 非表單標(biāo)簽 467
14.5.1 fielderror標(biāo)簽:顯示字段錯(cuò)誤信息 467
14.5.2 actionerror和actionmessage標(biāo)簽:顯示動(dòng)作錯(cuò)誤和動(dòng)作消息 468
14.5.3 component標(biāo)簽:使用模板 469
14.6 小結(jié) 471
第15章 Struts 2對(duì)AJAX的支持 472
15.1 Struts 2的AJAX主題 472
15.2 基于AJAX的輸入校驗(yàn) 474
15.2.1 下載和安裝DWR框架 474
15.2.2 編寫(xiě)具有AJAX校驗(yàn)功能的注冊(cè)頁(yè)面 475
15.2.3 編寫(xiě)Action類 476
15.2.4 設(shè)置校驗(yàn)規(guī)則 477
15.3 在表單中使用AJAX 479
15.3.1 實(shí)現(xiàn)可異步提交的表單 479
15.3.2 實(shí)現(xiàn)Action類 479
15.3.3 實(shí)現(xiàn)結(jié)果處理頁(yè)面 480
15.3.4 執(zhí)行JavaScript代碼 481
15.4 發(fā)布-訂閱(pub-sub)事件模型 483
15.4.1 pub-sub事件模型的原理 483
15.4.2 pub-sub事件模型演示 484
15.4.3 阻止請(qǐng)求服務(wù)端資源 487
15.5 使用Struts 2中的AJAX標(biāo)簽 488
15.5.1 div標(biāo)簽的基本應(yīng)用 488
15.5.2 使用div標(biāo)簽執(zhí)行JavaScript 491
15.5.3 手動(dòng)控制div標(biāo)簽的更新 493
15.5.4 submit標(biāo)簽:發(fā)送異步請(qǐng)求 496
15.5.5 a標(biāo)簽:可異步提交請(qǐng)求的鏈接 498
15.5.6 autocompleter標(biāo)簽:帶自運(yùn)完成功能的文本框 501
15.5.7 tabbedPanel標(biāo)簽:生成Tab頁(yè) 507
15.5.8 treenode和tree標(biāo)簽:樹(shù)節(jié)點(diǎn)和樹(shù)組件 511
15.6 使用JSON插件實(shí)現(xiàn)AJAX 513
15.6.1 下載和安裝JSON插件 513
15.6.2 下載和安裝prototype.js 513
15.6.3 實(shí)現(xiàn)Action類 514
15.6.4 在JSP頁(yè)面中通過(guò)Prototype請(qǐng)求Action 515
15.7 小結(jié) 517
第16章 用Struts 2實(shí)現(xiàn)注冊(cè)登錄系統(tǒng) 518
16.1 系統(tǒng)總體結(jié)構(gòu) 518
16.2 實(shí)現(xiàn)DAO層 518
16.2.1 實(shí)現(xiàn)DAOSupport類 519
16.2.2 實(shí)現(xiàn)UserDAO接口 520
16.2.3 實(shí)現(xiàn)UserDAOImpl類 520
16.3 實(shí)現(xiàn)Action類 522
16.3.1 實(shí)現(xiàn)模型類(User) 522
16.3.2 實(shí)現(xiàn)LoginAction類 523
16.3.3 實(shí)現(xiàn)RegisterAction類 525
16.4 輸入校驗(yàn) 526
16.4.1 校驗(yàn)登錄頁(yè)面 526
16.4.2 校驗(yàn)注冊(cè)頁(yè)面 527
16.5 實(shí)現(xiàn)表現(xiàn)層頁(yè)面 528
16.5.1 實(shí)現(xiàn)登錄頁(yè)面(login.jsp) 528
16.5.2 實(shí)現(xiàn)注冊(cè)頁(yè)面(register.jsp) 530
16.5.3 實(shí)現(xiàn)主頁(yè)面(main.jsp) 531
16.6 實(shí)現(xiàn)其他的功能 532
16.6.1 使用Action類生成驗(yàn)證碼圖像 532
16.6.2 使用攔截器驗(yàn)證頁(yè)面訪問(wèn)權(quán)限 534
16.7 小結(jié) 536
第3篇 Hibernate篇
第17章 Hibernate的Helloworld程序 538
17.1 Hibernate概述 538
17.1.1 為什么要使用ORM 538
17.1.2 Hibernate和EJB的關(guān)系 539
17.2 在應(yīng)用程序中使用Hibernate 3 539
17.2.1 MyEclipse對(duì)Hibernate 3的支持 540
17.2.2 下載和安裝新版本的Hibernate 3 542
17.3 第1個(gè)Hibernate程序 543
17.3.1 開(kāi)發(fā)Hibernate程序的基本步驟 543
17.3.2 建立數(shù)據(jù)表 543
17.3.3 建立Hibernate配置文件 543
17.3.4 建立會(huì)話工廠(SessionFactory)類 544
17.3.5 建立實(shí)體Bean和Struts 2的模型類 547
17.3.6 建立映射文件 548
17.3.7 建立添加記錄的Action類 548
17.3.8 建立錄入信息的JSP頁(yè)面 550
17.4 小結(jié) 552
第18章 配置Hibernate 553
18.1 用傳統(tǒng)的方法配置Hibernate 553
18.1.1 用XML文件配置Hibernate 553
18.1.2 用屬性文件配置Hibernate 556
18.1.3 用編程的方式配置Hibernate 556
18.1.4 Hibernate框架的配置屬性 557
18.1.5 SQL方言(Dialect) 561
18.1.6 使用JNDI數(shù)據(jù)源 562
18.1.7 配置映射文件 563
18.2 使用注釋(Annotations)配置Hibernate 564
18.2.1 Hibernate注釋簡(jiǎn)介 564
18.2.2 安裝Hibernate注釋 564
18.2.3 使用@Entity注釋實(shí)體Bean 565
18.2.4 使用@Table注釋實(shí)體Bean 565
18.2.5 使用@Id注釋主鍵 566
18.2.6 使用@GenericGenerator注釋產(chǎn)生主鍵值 567
18.2.7 使用@Basic和@Transient注釋 568
18.2.8 更高級(jí)的Hibernate注釋 568
18.3 使用注釋重新實(shí)現(xiàn)Helloworld程序 569
18.3.1 使用注釋配置實(shí)體Bean 569
18.3.2 在Hibernate配置文件中指定實(shí)體Bean的位置 570
18.3.3 使用AnnotationConfiguration類處理annotation.cfg.xml文件 570
18.3.4 通過(guò)AnnotationSessionFactory類獲得Session對(duì)象 571
18.4 小結(jié) 572
第19章 Hibernate的會(huì)話與O/R映射 573
19.1 會(huì)話(Session)的基本應(yīng)用 573
19.1.1 保存持久化對(duì)象 573
19.1.2 判斷持久化對(duì)象之間的關(guān)系 574
19.1.3 裝載持久化對(duì)象 575
19.1.4 刷新持久化對(duì)象 577
19.1.5 更新持久化對(duì)象 578
19.1.6 刪除持久化對(duì)象 579
19.2 建立O/R映射 579
19.2.1 映射主鍵 579
19.2.2 映射復(fù)合主鍵 580
19.2.3 實(shí)例:主鍵和復(fù)合主鍵的查詢和更新 581
19.2.4 映射普通屬性 586
19.2.5 建立組件(Component)映射 587
19.2.6 實(shí)例:組件映射的應(yīng)用 588
19.2.7 基于注釋的組件映射 592
19.2.8 建立多對(duì)一(many-to-one)單向關(guān)聯(lián)關(guān)系 593
19.2.9 實(shí)例:多對(duì)一關(guān)系的演示 593
19.2.10 基于注釋的多對(duì)一關(guān)系映射 597
19.2.11 建立一對(duì)多(one-to-many)的雙向關(guān)聯(lián)關(guān)系 598
19.2.12 實(shí)例:一對(duì)多雙向關(guān)聯(lián)的演示 598
19.2.13 基于注釋的一對(duì)多映射 601
19.2.14 建立基于外鍵的一對(duì)一(one-to-one)的關(guān)系映射 602
19.2.15 實(shí)例:基于外鍵的一對(duì)一關(guān)系演示 603
19.2.16 建立基于主鍵的一對(duì)一的關(guān)系映射 606
19.2.17 實(shí)例:基于主鍵的一對(duì)一關(guān)系映射 607
19.3 小結(jié) 610
第20章 Hibernate的查詢與更新技術(shù) 612
20.1 標(biāo)準(zhǔn)(Criteria)查詢API 612
20.1.1 實(shí)例:一個(gè)簡(jiǎn)單的例子 612
20.1.2 查詢的約束條件 613
20.1.3 對(duì)查詢結(jié)果進(jìn)行分頁(yè) 615
20.1.4 實(shí)例:實(shí)現(xiàn)Web分頁(yè)功能 617
20.1.5 只獲得一個(gè)持久化對(duì)象 620
20.1.6 對(duì)查詢結(jié)果進(jìn)行排序 621
20.1.7 多個(gè)Criteria之間的關(guān)聯(lián) 621
20.1.8 聚合和分組 622
20.1.9 使用QBE(Query By Example) 624
20.2 HQL和SQL技術(shù) 625
20.2.1 實(shí)例:使用HQL的第一個(gè)例子 625
20.2.2 From子句:簡(jiǎn)化實(shí)體Bean類名 626
20.2.3 Select子句:選擇返回屬性 628
20.2.4 Where子句:指定條件 629
20.2.5 使用命名參數(shù) 630
20.2.6 使用Query進(jìn)行分頁(yè) 631
20.2.7 實(shí)例:使用HQL實(shí)現(xiàn)Web分頁(yè)功能 631
20.2.8 使用HQL進(jìn)行排序和分組 632
20.2.9 關(guān)聯(lián)查詢 633
20.2.10 聚合函數(shù) 635
20.2.11 Update和Delete語(yǔ)句:更新持久化對(duì)象 636
20.2.12 Insert語(yǔ)句:插入記錄 637
20.2.13 命名查詢 638
20.2.14 使用SQL 639
20.3 小結(jié) 640
第21章 Hibernate的高級(jí)技術(shù) 641
21.1 事務(wù)管理 641
21.1.1 事務(wù)概述 641
21.1.2 事務(wù)的隔離等級(jí) 642
21.1.3 Hibernate的事務(wù)管理 643
21.1.4 基于JDBC的事務(wù)管理 643
21.1.5 基于JTA的事務(wù)管理 644
21.2 鎖(Locking) 644
21.2.1 悲觀鎖(Pessimistic Locking) 644
21.2.2 樂(lè)觀鎖(Optimistic Locking) 646
21.3 查詢緩存(Query Cache) 648
21.4 攔截器和事件 649
21.4.1 攔截器(Interceptors)概述 649
21.4.2 實(shí)例:編寫(xiě)一個(gè)Hibernate攔截器 649
21.4.3 事件(Events)概述 653
21.4.4 實(shí)例:編寫(xiě)和注冊(cè)事件類 654
21.5 過(guò)濾器 656
21.6 小結(jié) 657
第4篇 Spring篇
第22章 Spring的Helloworld程序 660
22.1 Spring簡(jiǎn)介 660
22.1.1 Spring的主要特性 660
22.1.2 Spring的核心技術(shù) 661
22.2 在應(yīng)用程序中使用Spring 662
22.2.1 MyEclipse 6.5對(duì)Spring的支持 662
22.2.2 下載和安裝Spring 663
22.3 實(shí)例:開(kāi)發(fā)一個(gè)Helloworld程序 664
22.3.1 編寫(xiě)HelloService接口 664
22.3.2 編寫(xiě)HelloServiceImpl類 664
22.3.3 裝配HelloServiceImpl類 665
22.3.4 通過(guò)裝配Bean的方式獲得HelloService對(duì)象 665
22.4 小結(jié) 666
第23章 反向控制(Ioc)與裝配JavaBean 667
23.1 反向控制(Ioc) 667
23.1.1 什么是依賴注入 667
23.1.2 傳統(tǒng)解決方案的缺陷 668
23.1.3 用Ioc降低耦合度 669
23.2 手動(dòng)裝配JavaBean 670
23.2.1 裝配Bean的方法 670
23.2.2 與Bean相關(guān)的接口 671
23.2.3 <bean>標(biāo)簽的常用屬性 672
23.2.4 裝配普通屬性 673
23.2.5 裝配集合屬性 676
23.2.6 設(shè)置屬性值為null 680
23.2.7 裝配構(gòu)造方法 680
23.3 自動(dòng)裝配JavaBean 683
23.4 分散配置 685
23.5 定制屬性編輯器 687
23.6 小結(jié) 690
第24章 Spring中的數(shù)據(jù)庫(kù)技術(shù) 691
24.1 獲得DataSource 691
24.1.1 通過(guò)JNDI獲得DataSource 691
24.1.2 從第三方的連接池獲得DataSource 692
24.1.3 使用DriverManagerDataSource 693
24.2 在Spring中使用JDBC 693
24.2.1 裝配JdbcTemplate類 693
24.2.2 向數(shù)據(jù)庫(kù)中寫(xiě)數(shù)據(jù) 694
24.2.3 從數(shù)據(jù)庫(kù)中讀數(shù)據(jù) 696
24.2.4 調(diào)用存儲(chǔ)過(guò)程 699
24.3 自增鍵 700
24.4 異常處理 701
24.5 在Spring中使用Hibernate 702
24.5.1 集成Spring和Hibernate 702
24.5.2 使用HibernateTemplate 703
24.6 小結(jié) 705
第25章 Spring的其他高級(jí)技術(shù) 706
25.1 Spring AOP 706
25.1.1 AOP概述 706
25.1.2 AOP術(shù)語(yǔ)簡(jiǎn)介 707
25.1.3 4種通知(Advice)的作用 708
25.1.4 通過(guò)Advisor指定切入點(diǎn) 714
25.1.5 使用控制流切入點(diǎn) 716
25.2 Spring 的事務(wù)管理 718
25.2.1 實(shí)例:使用程序控制事務(wù) 718
25.2.2 聲明式事務(wù) 720
25.2.3 事務(wù)屬性的種類 722
25.2.4 設(shè)置事務(wù)屬性 724
25.2.5 設(shè)置特定方法的事務(wù)屬性 725
25.3 實(shí)例:建立和訪問(wèn)RMI服務(wù) 727
25.4 實(shí)例:發(fā)送E-mail 729
25.5 調(diào)度任務(wù) 731
25.6 小結(jié) 732
第5篇 綜合實(shí)例篇
第26章 Struts 2與Hibernate、Spring的整合 734
26.1 整合Struts 2和Hibernate框架 734
26.1.1 整合的思路 734
26.1.2 整合后的系統(tǒng)層次 735
26.1.3 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 735
26.1.4 實(shí)現(xiàn)業(yè)務(wù)邏輯層 737
26.1.5 Struts 2和Hibernate共享實(shí)體Bean 739
26.2 整合Spring框架 740
26.2.1 裝配數(shù)據(jù)訪問(wèn)層 740
26.2.2 裝配業(yè)務(wù)邏輯層 742
26.2.3 使用Struts 2的Spring插件 742
26.3 小結(jié) 743
第27章 網(wǎng)絡(luò)硬盤(pán) 744
27.1 系統(tǒng)概述 744
27.1.1 系統(tǒng)功能簡(jiǎn)介 744
27.1.2 系統(tǒng)架構(gòu)設(shè)計(jì) 746
27.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 746
27.3 實(shí)現(xiàn)持久對(duì)象層 748
27.3.1 實(shí)現(xiàn)用戶實(shí)體Bean 749
27.3.2 實(shí)現(xiàn)目錄實(shí)體Bean 750
27.3.3 實(shí)現(xiàn)文件實(shí)體Bean 751
27.3.4 映射MySQL存儲(chǔ)過(guò)程 752
27.3.5 配置hibernate.cfg.xml 753
27.4 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 754
27.4.1 實(shí)現(xiàn)DAOSupport類 754
27.4.2 實(shí)現(xiàn)UserDAO接口和UserDAOImpl類 754
27.4.3 實(shí)現(xiàn)DirectoryDAO接口和DirectoryDAOImpl類 755
27.4.4 實(shí)現(xiàn)FileDAO接口和FileDAOImpl類 757
27.5 實(shí)現(xiàn)業(yè)務(wù)邏輯層 758
27.5.1 實(shí)現(xiàn)UserService接口和UserServiceImpl類 758
27.5.2 實(shí)現(xiàn)DirectoryService接口和DirectoryServiceImpl類 760
27.5.3 實(shí)現(xiàn)FileService接口和FileServiceImpl類 762
27.5.4 實(shí)現(xiàn)服務(wù)管理類 764
27.5.5 配置Spring 765
27.6 實(shí)現(xiàn)Web表現(xiàn)層 767
27.6.1 實(shí)現(xiàn)基礎(chǔ)動(dòng)作類(BaseAction) 768
27.6.2 實(shí)現(xiàn)用戶登錄頁(yè)面和處理登錄的Action類 769
27.6.3 實(shí)現(xiàn)注冊(cè)登錄頁(yè)面和處理注冊(cè)的Action類 771
27.6.4 實(shí)現(xiàn)網(wǎng)絡(luò)硬盤(pán)主頁(yè)面 771
27.6.5 建立目錄 773
27.6.6 實(shí)現(xiàn)文件上傳 774
27.6.7 實(shí)現(xiàn)文件和目錄下載 775
27.6.8 使用攔截器控制頁(yè)面訪問(wèn)權(quán)限 779
27.6.9 其他功能的實(shí)現(xiàn) 780
27.7 小結(jié) 780
第28章 論壇系統(tǒng) 782
28.1 系統(tǒng)功能簡(jiǎn)介 782
28.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 783
28.3 實(shí)現(xiàn)持久對(duì)象層 785
28.3.1 實(shí)現(xiàn)主題實(shí)體Bean 785
28.3.2 實(shí)現(xiàn)回復(fù)實(shí)體Bean 787
28.3.3 配置hibernate.cfg.xml 788
28.4 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 788
28.4.1 實(shí)現(xiàn)TopicDAO接口和TopicDAOImpl類 789
28.4.2 實(shí)現(xiàn)ReviewDAO接口和ReviewDAOImpl類 790
28.5 實(shí)現(xiàn)業(yè)務(wù)邏輯層 791
28.5.1 實(shí)現(xiàn)TopicService接口和TopicServiceImpl類 791
28.5.2 實(shí)現(xiàn)ReviewService接口和ReviewServiceImpl類 793
28.5.3 實(shí)現(xiàn)服務(wù)管理類 795
28.5.4 配置Spring 795
28.6 整合FCKEditor組件 796
28.6.1 安裝FCKEditor 796
28.6.2 配置FCKEditor 797
28.6.3 修改FCKEditor自帶的Servlet 800
28.6.4 產(chǎn)生FCKEditor的客戶端腳本 800
28.7 實(shí)現(xiàn)Web表現(xiàn)層 801
28.7.1 瀏覽論壇的主題列表 801
28.7.2 發(fā)布新主題 804
28.7.3 瀏覽主題和回復(fù)內(nèi)容 805
28.7.4 回復(fù)主題 806
28.8 小結(jié) 807
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
源代碼下載

作者:李寧
圖書(shū)詳細(xì)信息:
ISBN:9787302195757
定價(jià):79.8元
印次:1-1
裝幀:平裝
印刷日期:2009-4-23
SSH是目前最流行的Java Web開(kāi)發(fā)技術(shù)。本書(shū)通過(guò)對(duì)SSH中的各種技術(shù)循序漸進(jìn)地講解,使讀者盡快掌握開(kāi)發(fā)基于SSH的Web程序的方法。本書(shū)內(nèi) 容包括Web客戶端技術(shù)、JSP/Servlet技術(shù)、Struts 2(攔截器、類型轉(zhuǎn)換、輸入校驗(yàn)、上傳和下載文件、Struts 2的各種標(biāo)簽、對(duì) AJAX的支持等)、Spring(Ioc容器、裝配Java Bean、Jdbc和Hibernate模板、事務(wù)管理、Spring AOP等)以及 Hibernate(會(huì)話、映射、標(biāo)準(zhǔn)查詢API、HQL、事務(wù)管理、鎖等)。除此之外,本書(shū)還提供了兩個(gè)完整的實(shí)例來(lái)講解開(kāi)發(fā)SSH的詳細(xì)步驟和方法。 通過(guò)對(duì)這兩個(gè)實(shí)例的學(xué)習(xí),讀者可以對(duì)SSH開(kāi)發(fā)模式有更透徹地理解和認(rèn)識(shí)。
本書(shū)適合廣大從事Java Web開(kāi)發(fā)工作的技術(shù)人員、對(duì)SSH開(kāi)發(fā)感興趣的人員以及大專院校學(xué)生閱讀,尤其是具有一定的Web開(kāi)發(fā)經(jīng)驗(yàn)的技術(shù)人員。
前 言
現(xiàn)在MVC模式已經(jīng)成為Web應(yīng)用的主流開(kāi)發(fā)模式。而Struts框架幾乎可以和MVC模式劃等號(hào),因?yàn)镾truts框架已經(jīng)成為了MVC模式的事實(shí)標(biāo)準(zhǔn)。隨著Struts 1.x的應(yīng)用浪潮席卷全球數(shù)年后,Struts 2又以嶄新的姿態(tài)與世人見(jiàn)面了。
Struts 2仍然可以繼承Struts 1.x的應(yīng)用模式(Struts + Spring + Hibernate),但關(guān)于 Struts 2+Spring+Hibernate整合的書(shū)卻并不多。為了使讀者盡快了解和掌握如何使用 Struts 2、Spring和Hibernate 3個(gè)框架整合的方式來(lái)開(kāi)發(fā)Web應(yīng)用系統(tǒng),筆者花費(fèi)了大量的時(shí)間來(lái)完成這本關(guān)于Struts 2 + Spring +Hibernate 整合的書(shū)。為了盡可能保證內(nèi)容的準(zhǔn)確和權(quán)威性,筆者查閱了大量的官方文檔,并針對(duì)關(guān)鍵部分閱讀了相應(yīng)的源代碼。
本書(shū)的寫(xiě)作目標(biāo)就是力爭(zhēng)讓讀者盡可能地掌握Struts 2、Spring和Hibernate,以及這3個(gè)框架整合的相關(guān)知識(shí)。并通過(guò)兩個(gè)完整實(shí)例的講解使讀者盡快融入SSH(Struts+Spring+ Hibernate)大家庭。
本書(shū)有何特色
1.從基礎(chǔ)開(kāi)始,由淺入深
JSP/Servlet技術(shù)是Java Web技術(shù)的基礎(chǔ),很多初學(xué)者在學(xué)習(xí)SSH之前并沒(méi)有很好地掌握該技術(shù),因此,本書(shū)考慮到這個(gè)原因,在第一篇講解了JSP/Servlet以及Web客戶端技術(shù)的基礎(chǔ)知識(shí)。除此之外,在第二~四篇的頭一章都以一個(gè)簡(jiǎn)單的例子開(kāi)始,以使讀者在學(xué)習(xí)每一篇所講的技術(shù)之前,對(duì)這種技術(shù)有一個(gè)初步的了解。并且每一篇的章節(jié)是按照由淺入深、循序漸進(jìn)的順序編排的,從而可以使讀者漸進(jìn)式地學(xué)習(xí)本書(shū)的知識(shí)。
2.各篇獨(dú)立,內(nèi)容完整
本書(shū)的每一篇都是相對(duì)獨(dú)立的。如第二篇講解了Struts 2的各種技術(shù);第三篇講解了Hibernate的主要技術(shù),而且每一篇講解的技術(shù)比較完整。這樣就會(huì)給想學(xué)習(xí)SSH整合技術(shù),但卻未掌握SSH中的一項(xiàng)或幾項(xiàng)技術(shù)的讀者帶來(lái)方便,至少不需要同時(shí)準(zhǔn)備幾本書(shū),從而給讀者節(jié)省了大量的時(shí)間和金錢(qián)。
3.各章實(shí)例豐富,使讀者更容易理解書(shū)中的知識(shí)
本書(shū)幾乎在每一章都提供了大量的實(shí)例。這些實(shí)例充分展現(xiàn)了相關(guān)知識(shí)點(diǎn)的實(shí)現(xiàn)細(xì)節(jié)。讀者可以在學(xué)習(xí)相關(guān)知識(shí)點(diǎn)后,通過(guò)上機(jī)實(shí)踐這些例子來(lái)更深入地了解并掌握這些知識(shí)點(diǎn)。
4.提供了完整的實(shí)例,使讀者更進(jìn)一步體會(huì)SSH開(kāi)發(fā)模式的精髓
在本章的最后還提供了兩個(gè)完整的實(shí)例(網(wǎng)絡(luò)硬盤(pán)和論壇系統(tǒng))。這兩個(gè)實(shí)例都采用了SSH模式進(jìn)行開(kāi)發(fā)。通過(guò)對(duì)這兩個(gè)實(shí)例的深入研究,讀者可以比較全面地掌握基于SSH模式的Web應(yīng)用程序的開(kāi)發(fā)步驟和開(kāi)發(fā)方法,并可將實(shí)例中所采用的技術(shù)應(yīng)用到自己的項(xiàng)目中。
5.使用最新版本的開(kāi)發(fā)工具和框架
本書(shū)所使用的開(kāi)發(fā)工具和相關(guān)的框架在筆者寫(xiě)作本書(shū)時(shí)都是最新版本,如MyEclipse 6.5、Struts 2.0.11.2等。讀者可以在學(xué)習(xí)SSH開(kāi)發(fā)技術(shù)的同時(shí),接觸到目前最新版本的開(kāi)發(fā)工具和框架。就算讀者目前所使用的軟件版本低于本書(shū)所使用的軟件版本,也可以為未來(lái)的工作奠定基礎(chǔ)。
6.配有源代碼與視頻光盤(pán),方便讀者使用
為了方便讀者實(shí)驗(yàn)本書(shū)提供的實(shí)例程序,特將所有的源代碼都收錄到了配書(shū)光盤(pán)中,以方便讀者使用。另外,作者特別為本書(shū)錄制了一些多媒體視頻演示,將本書(shū)中的一些相關(guān)操作直觀地展示給讀者,以達(dá)到更好的學(xué)習(xí)效果。
本書(shū)內(nèi)容
第1章:為了使讀者盡快搭建本書(shū)所使用的開(kāi)發(fā)環(huán)境。在這一章將詳細(xì)介紹本書(shū)所使用的開(kāi)發(fā)工具、框架的版本號(hào)以及下載、安裝和配置的過(guò)程。
第2章:本章介紹了Web技術(shù)的發(fā)展歷史,以及Java Web技術(shù)的基本組成。最后詳細(xì)描述了Java Web技術(shù)中常用的兩種開(kāi)發(fā)模式:JSP模型1和JSP模型2(MVC模式),以及目前常用的MVC框架。
第3章:本章介紹了在Web系統(tǒng)中常用的客戶端技術(shù),這些技術(shù)包括JavaScript、CSS和AJAX。在本章的開(kāi)始部分還介紹了一些開(kāi)發(fā)JavaScript的常用IDE。
第4章:本章介紹了Servlet的基礎(chǔ)知識(shí),如處理請(qǐng)求消息、響應(yīng)消息、Cookie和Session等,最后還詳細(xì)講解了Web開(kāi)發(fā)中所遇到的中文亂碼問(wèn)題的解決方案。
第5章:本章介紹了JSP的運(yùn)行原理、基本語(yǔ)法、JSP指令、JSP的內(nèi)置對(duì)象、JSP標(biāo)簽和JSTL。
第6章:本章以一個(gè)用戶注冊(cè)登錄系統(tǒng)為例,演示了如何綜合運(yùn)用JSP/Servlet技術(shù)開(kāi)發(fā)一個(gè)完整的Web應(yīng)用程序。
第7章:本章介紹了Struts 2中的MVC模式,以及Struts 2的體系結(jié)構(gòu)。最后給出了一個(gè)簡(jiǎn)單的例子來(lái)演示開(kāi)發(fā)基于Struts 2的Web應(yīng)用程序的步驟和方法。
第8章:本章介紹了如何配置Struts 2框架、Struts 2 Action、處理結(jié)果、模型驅(qū)動(dòng)和異常處理。
第9章:本章介紹了Struts 2的攔截器技術(shù),其中包括攔截器的實(shí)現(xiàn)原理、攔截器的配置、實(shí)現(xiàn)自定義攔截器以及內(nèi)建攔截器等內(nèi)容。
第10章:本章介紹了Struts 2中的各種類型轉(zhuǎn)換技術(shù)。如OGNL表達(dá)式、數(shù)組和集合類型轉(zhuǎn)換器、類型轉(zhuǎn)換的錯(cuò)誤處理等。
第11章:本章介紹了傳統(tǒng)的輸入校驗(yàn)和Struts 2中的輸入校驗(yàn)。
第12章:本章首先介紹了文件上傳的原理,以及如何使用Commons-FileUpload組件上傳文件。本章的重頭戲是講解Struts 2的上傳功能,其中包括上傳單個(gè)文件和上傳任意多個(gè)文件的方法。在最后介紹了如何使用Struts 2框架下載文件,主要包括使用stream結(jié)果下載文件以及下載文件的權(quán)限控制。
第13章:本章介紹了Struts 2在國(guó)際化方面的技術(shù)。為了更深入地理解Struts 2的國(guó)際化功能,在本章的開(kāi)始部分首先介紹了Java對(duì)國(guó)際化的支持。然后逐步深入介紹Struts 2的國(guó)際化技術(shù),主要包括訪問(wèn)資源文件、資源文件的加載順序等,最后給出了一個(gè)例子來(lái)演示如何將國(guó)際化功能加載到Web應(yīng)用程序中。
第14章:本章詳細(xì)講解了Struts 2框架中的標(biāo)簽。這些標(biāo)簽包括控制標(biāo)簽、數(shù)據(jù)標(biāo)簽、表單標(biāo)簽、非表單標(biāo)簽。
第15章:本章著重介紹了Struts 2框架對(duì)AJAX的支持,主要內(nèi)容包括支持AJAX的標(biāo)簽、基于AJAX的校驗(yàn)、發(fā)布-訂閱事件模型、JSON插件等。
第16章:本章使用了Struts 2技術(shù)重新實(shí)現(xiàn)了第6章的用戶注冊(cè)登錄系統(tǒng)。在本章實(shí)現(xiàn)的用戶注冊(cè)登錄系統(tǒng)的功能和第6章實(shí)現(xiàn)的該系統(tǒng)的功能相同,只是使用了Struts 2框架來(lái)實(shí)現(xiàn)相關(guān)的部分。讀者可以從中體會(huì)到使用JSP/Servlet和Struts 2在開(kāi)發(fā)Web應(yīng)用程序中的不同。
第17章:本章介紹了ORM的概念以及Hibernate和EJB的關(guān)系。最后給出一個(gè)例子來(lái)演示在MyEclipse中開(kāi)發(fā)基于Hibernate的系統(tǒng)的步驟和方法。
第18章:本章介紹了Hibernate的兩種配置方式:配置文件和注釋。在最后給出了一個(gè)例子重新實(shí)現(xiàn)了第17章的例子,只不過(guò)這個(gè)例子使用了注釋來(lái)配置Hibernate。
第19章:本章介紹了Hibernate會(huì)話的基本操作和O/R映射。其中O/R映射主要介紹了映射主鍵、映射復(fù)合主鍵、映射普通屬性、組件映射、基于注釋的組件映射、多對(duì)一、一對(duì)多、一對(duì)一的關(guān)系。
第20章:本章的第1節(jié)介紹了Hibernate的標(biāo)準(zhǔn)(Criteria)查詢API技術(shù),主要內(nèi)容包括約束條件、分頁(yè)、排序、聚合和分組以及QBE。在第2節(jié)介紹了Hibernate中的另外兩種查詢技術(shù):HQL和SQL。其中HQL主要介紹了From、Select、Where、Update、Insert以及Delete語(yǔ)句,還介紹了命名參數(shù)、排序和分組、關(guān)聯(lián)查詢、命名查詢等。
第21章:本章介紹了Hibernate的一些高級(jí)技術(shù),主要包括事務(wù)管理、鎖機(jī)制、查詢緩存、攔截器和事件與過(guò)濾器。
第22章:本章介紹了Spring的主要特性和核心技術(shù),在最后還給出了一個(gè)例子來(lái)演示使用Spring框架開(kāi)發(fā)程序的過(guò)程。
第23章:本章介紹了Spring框架的核心思想,反向控制(Ioc),同時(shí)還詳細(xì)講解了Spring框架中最常用的裝配Java Bean技術(shù)以及分散配置和定制屬性編輯器。
第24章:本章介紹了Spring中的數(shù)據(jù)庫(kù)技術(shù),主要包括在Spring中使用數(shù)據(jù)源連接數(shù)據(jù)庫(kù)、操作JDBC的JdbcTemplate;操作Hibernate的HibernateTemplate以及自增鍵和異常的處理。
第25章:本章主要介紹了Spring AOP技術(shù)的基礎(chǔ)知識(shí)以及事務(wù)管理。除此之外,還介紹了Spring的其他一些高級(jí)屬性,如建立和訪問(wèn)RMI服務(wù)、發(fā)送Email、調(diào)度任務(wù)等。
第26章:從本章開(kāi)始逐漸涉及到了SSH開(kāi)發(fā)的全過(guò)程。在本章主要介紹了Struts 2、Spring和Hibernate 3個(gè)框架整合的思路,以及基于SSH的系統(tǒng)的層次結(jié)構(gòu)。
第27、28章:在這兩章給出了兩個(gè)完整的使用SSH開(kāi)發(fā)的例子(網(wǎng)絡(luò)硬盤(pán)和論壇系統(tǒng))。在這兩個(gè)例子中詳細(xì)描述了開(kāi)發(fā)基于SSH的系統(tǒng)的步驟和其中所涉及到的技術(shù)。開(kāi)發(fā)這兩個(gè)例子的基本步驟類似,不過(guò)它們所涉及到的技術(shù)有一定的區(qū)別,如在論壇系統(tǒng)中涉及到了一個(gè)Web編輯器(FCKEditor)的安裝和使用。
適合閱讀本書(shū)的讀者
* 初步掌握J(rèn)ava技術(shù),想進(jìn)一步學(xué)習(xí)SSH整合開(kāi)發(fā)的讀者
* 對(duì)SSH整合技術(shù)有了一定的了解,想進(jìn)一步提高的讀者
* 正在使用SSH整合技術(shù)開(kāi)發(fā)項(xiàng)目,想查閱相關(guān)技術(shù)的讀者
* 大中專院校的學(xué)生
* 社會(huì)培訓(xùn)學(xué)生
目 錄
第1篇 Web開(kāi)發(fā)基礎(chǔ)篇
第1章 搭建開(kāi)發(fā)環(huán)境 2
1.1 本書(shū)使用的軟件和框架的版本 2
1.2 JDK6的下載與安裝 2
1.3 Eclipse 3.4的下載與安裝 3
1.4 MyEclipse 6.5的下載與安裝 3
1.5 Eclipse IDE for Java EE Developers的下載與安裝 4
1.6 Tomcat 6的下載與安裝 5
1.7 在MyEclipse中配置Tomcat 6
1.8 在Eclipse IDE for Java EE Developers中配置Tomcat 6
1.9 小結(jié) 7
第2章 Java Web應(yīng)用開(kāi)發(fā)基礎(chǔ) 8
2.1 Web技術(shù)的發(fā)展 8
2.2 Java Web技術(shù) 10
2.2.1 Java Web程序的基本組成 11
2.2.2 Java Web程序的目錄結(jié)構(gòu) 11
2.2.3 Java Web程序的配置文件 11
2.3 MVC模式與MVC框架 12
2.3.1 JSP模型1和JSP模型2 12
2.3.2 Web應(yīng)用程序需要的基礎(chǔ)服務(wù) 13
2.3.3 MVC模式概述 14
2.3.4 常用的MVC框架 15
2.4 小結(jié) 16
第3章 Web開(kāi)發(fā)中的客戶端技術(shù) 17
3.1 常用的JavaScript IDE簡(jiǎn)介 17
3.1.1 在MyEclipse中使用JavaScript 17
3.1.2 在Eclipse IDE for Java EE中使用JavaScript 18
3.1.3 在NetBeans中使用JavaScript 19
3.1.4 其他的JavaScript IDE 20
3.2 JavaScript語(yǔ)法基礎(chǔ) 20
3.2.1 實(shí)例:編寫(xiě)第一個(gè)JavaScript程序:Greet 21
3.2.2 變量 22
3.2.3 原始類型 22
3.2.4 類型轉(zhuǎn)換 26
3.2.5 函數(shù)與函數(shù)調(diào)用 28
3.2.6 類和對(duì)象 30
3.3 JavaScript高級(jí)技術(shù) 32
3.3.1 DOM技術(shù)概述 32
3.3.2 獲得HTML元素的3種方法 34
3.3.3 實(shí)例:圖像自動(dòng)切換 36
3.3.4 正則表達(dá)式 37
3.3.5 實(shí)例:表格排序 38
3.4 CSS基礎(chǔ) 41
3.4.1 CSS的基本語(yǔ)法 41
3.4.2 在Style屬性中定義樣式 42
3.4.3 在HTML中定義樣式 42
3.4.4 在外部文件中定義樣式 43
3.4.5 樣式的繼承 43
3.5 AJAX基礎(chǔ) 44
3.5.1 AJAX概述 44
3.5.2 實(shí)例:使用XMLHttpRequest獲得Web資源 45
3.5.3 實(shí)例:使用XMLHttpRequest跨域訪問(wèn)Web資源 46
3.5.4 實(shí)例:AJAX的3種交換數(shù)據(jù)方法 47
3.6 小結(jié) 49
第4章 Servlet技術(shù) 50
4.1 Servlet的Helloworld程序 50
4.1.1 實(shí)例:在MyEclipse中編寫(xiě)Helloworld程序 50
4.1.2 實(shí)例:手工編寫(xiě)Helloworld程序 53
4.2 Servlet基礎(chǔ) 54
4.2.1 配置數(shù)據(jù)庫(kù)連接池 55
4.2.2 數(shù)據(jù)庫(kù)連接池的應(yīng)用 56
4.2.3 實(shí)例:用doGet方法處理客戶端請(qǐng)求 58
4.2.4 實(shí)例:用doPost方法處理客戶端請(qǐng)求 60
4.2.5 實(shí)例:用service方法處理客戶端請(qǐng)求 60
4.2.6 實(shí)例:初始化(init)和銷(xiāo)毀(destroy)Servlet 62
4.2.7 實(shí)例:使用PrintWriter輸出響應(yīng)消息 64
4.2.8 實(shí)例:用ServletOutputStream顯示圖像 65
4.2.9 實(shí)例:使用RequestDispatcher包含Web資源 66
4.2.10 實(shí)例:使用RequestDispatcher轉(zhuǎn)發(fā)Web資源 68
4.3 HttpServletResponse類的其他功能 69
4.3.1 產(chǎn)生狀態(tài)響應(yīng)碼 70
4.3.2 設(shè)置響應(yīng)消息頭 71
4.3.3 實(shí)例:驗(yàn)證響應(yīng)頭設(shè)置情況 73
4..4 使用HttpServletRequest獲得請(qǐng)求消息 73
4.4.1 獲取請(qǐng)求行消息 74
4.4.2 獲取網(wǎng)絡(luò)連接消息 74
4.4.3 獲取請(qǐng)求頭消息 75
4.5 處理Cookie 76
4.5.1 什么是Cookie 76
4.5.2 Cookie類中的方法 76
4.5.3 實(shí)例:用Cookie讀寫(xiě)客戶端信息 77
4.5.4 實(shí)例:用Cookie讀寫(xiě)復(fù)雜數(shù)據(jù) 79
4.6 處理Session 81
4.6.1 什么是Session 81
4.6.2 HttpSession接口中的方法 81
4.6.3 HttpServletRequest接口中的Session方法 83
4.6.4 實(shí)例:通過(guò)Cookie跟蹤Session 83
4.6.5 實(shí)例:通過(guò)重寫(xiě)URL跟蹤Session 85
4.7 Web開(kāi)發(fā)的中文問(wèn)題 87
4.7.1 Java的編碼原理 87
4.7.2 實(shí)例:解決輸出中文亂碼問(wèn)題 89
4.7.3 實(shí)例:解決服務(wù)端程序讀取中文請(qǐng)求消息的亂碼問(wèn)題 90
4.7.4 實(shí)例:用AJAX技術(shù)發(fā)送和接收中文信息 92
4.7.5 實(shí)例:在請(qǐng)求消息頭和響應(yīng)消息頭中轉(zhuǎn)輸中文 95
4.8 小結(jié) 97
第5章 JSP技術(shù) 98
5.1 用MyEclipse編寫(xiě)第一個(gè)JSP程序 98
5.1.1 實(shí)例:編寫(xiě)顯示服務(wù)器當(dāng)前時(shí)間的JSP程序 98
5.1.2 調(diào)試JSP程序 100
5.1.3 改變JSP的訪問(wèn)路徑和擴(kuò)展名 101
5.1.4 手動(dòng)發(fā)布JSP程序 102
5.2 JSP的運(yùn)行原理 102
5.2.1 Tomcat如何處理JSP頁(yè) 103
5.2.2 分析由JSP生成的Servlet代碼 104
5.3 JSP基本語(yǔ)法 108
5.3.1 JSP表達(dá)式 109
5.3.2 在JSP中嵌入Java代碼 109
5.3.3 JSP聲明 111
5.3.4 JSP表達(dá)式語(yǔ)言(EL) 113
5.3.5 實(shí)例:用EL函數(shù)替換HTML中的特殊字符 115
5.3.6 JSP頁(yè)面中的注釋 117
5.4 JSP指令 118
5.4.1 JSP指令簡(jiǎn)介 118
5.4.2 page頁(yè)面指令 119
5.4.3 include加入指令 125
5.5 JSP的9個(gè)內(nèi)置對(duì)象 126
5.5.1 out輸出對(duì)象 126
5.5.2 pageContext封裝對(duì)象 128
5.5.3 其他的JSP內(nèi)置對(duì)象 129
5.6 JSP標(biāo)簽 132
5.6.1 <jsp:include>插入標(biāo)簽 132
5.6.2 <jsp:forward>轉(zhuǎn)發(fā)標(biāo)簽 134
5.6.3 <jsp:param>傳參標(biāo)簽 135
5.6.4 <jsp:useBean>創(chuàng)建Bean標(biāo)簽 136
5.6.5 <jsp:setProperty>設(shè)置屬性值標(biāo)簽 138
5.6.6 <jsp:getProperty>獲取屬性值標(biāo)簽 140
5.7 JSP的標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL) 140
5.7.1 如何使用JSTL 141
5.7.2 條件標(biāo)簽 142
5.7.3 循環(huán)標(biāo)簽 144
5.8 小結(jié) 147
第6章 用Servlet和JSP實(shí)現(xiàn)注冊(cè)登錄系統(tǒng) 148
6.1 系統(tǒng)概述 148
6.1.1 系統(tǒng)功能簡(jiǎn)介 148
6.1.2 系統(tǒng)總體結(jié)構(gòu) 149
6.2 設(shè)計(jì)數(shù)據(jù)庫(kù) 149
6.3 實(shí)現(xiàn)系統(tǒng)的基礎(chǔ)類 150
6.3.1 實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)的DBServlet類 150
6.3.2 實(shí)現(xiàn)MD5加密 152
6.3.3 實(shí)現(xiàn)圖形驗(yàn)證碼 152
6.4 實(shí)現(xiàn)注冊(cè)系統(tǒng) 155
6.4.1 實(shí)現(xiàn)注冊(cè)Servlet類 155
6.4.2 實(shí)現(xiàn)注冊(cè)系統(tǒng)的主頁(yè)面 157
6.4.3 實(shí)現(xiàn)結(jié)果JSP頁(yè)面 159
6.5 實(shí)現(xiàn)登錄系統(tǒng) 160
6.5.1 實(shí)現(xiàn)登錄Servlet 160
6.5.2 實(shí)現(xiàn)登錄系統(tǒng)主頁(yè)面 162
6.6 小結(jié) 163
第2篇 Struts 2篇
第7章 編寫(xiě)Struts 2的第一個(gè)程序 166
7.1 Struts 2中的MVC模式 166
7.2 Struts 2的體系結(jié)構(gòu) 167
7.2.1 Struts 2的工作流程 167
7.2.2 Struts 2的配置文件 167
7.2.3 Struts 2的控制器 169
7.3 實(shí)例:圖書(shū)查詢系統(tǒng) 170
7.3.1 下載和安裝Struts 2 170
7.3.2 編寫(xiě)數(shù)據(jù)處理類 171
7.3.3 編寫(xiě)和配置Action類 172
7.3.4 編寫(xiě)顯示查詢結(jié)果的JSP頁(yè)面 174
7.3.5 編寫(xiě)輸入查詢信息的JSP頁(yè)面 176
7.4 小結(jié) 177
第8章 Struts 2進(jìn)階 178
8.1 Struts 2的基本配置 178
8.1.1 配置web.xml 178
8.1.2 配置struts.xml 179
8.1.3 配置struts.properties 183
8.1.4 Struts 2的DTD 186
8.2 深入理解Struts 2的配置元素 188
8.2.1 配置Bean 188
8.2.2 配置常量(constant) 190
8.2.3 配置包含(include) 191
8.2.4 配置包(package) 192
8.2.5 配置命名空間 193
8.2.6 配置攔截器 194
8.3 Struts 2注釋(Annotation) 195
8.3.1 ParentPackage注釋:設(shè)置當(dāng)前包的父包 195
8.3.2 Namespace注釋:指定當(dāng)前包的命名空間 196
8.3.3 Results與Result注釋:指定當(dāng)前Action結(jié)果 197
8.3.4 實(shí)例:用注釋配置Action 197
8.4 Struts 2的Action 200
8.4.1 Action類的getter和setter方法 200
8.4.2 實(shí)現(xiàn)Action接口 202
8.4.3 繼承ActionSupport類 203
8.4.4 實(shí)例:用ActionContext訪問(wèn)Servlet API 205
8.4.5 實(shí)例:通過(guò)aware攔截器訪問(wèn)Servlet API 209
8.4.6 實(shí)例:利用動(dòng)態(tài)方法處理多個(gè)提交請(qǐng)求 211
8.4.7 實(shí)例:利用method屬性處理多個(gè)提交請(qǐng)求 213
8.4.8 使用通配符 214
8.4.9 默認(rèn)Action 218
8.5 處理結(jié)果 218
8.5.1 配置結(jié)果 218
8.5.2 Struts 2支持的處理結(jié)果類型 219
8.5.3 用通配符指定結(jié)果 222
8.5.4 用請(qǐng)求參數(shù)指定結(jié)果 223
8.6 模型驅(qū)動(dòng) 224
8.6.1 ModelDriven概述 224
8.6.2 實(shí)例:使用模型驅(qū)動(dòng)改進(jìn)登錄程序 226
8.7 處理異常 228
8.7.1 Struts 2處理異常的原理 229
8.7.2 實(shí)例:登錄系統(tǒng)的異常處理 230
8.8 小結(jié) 233
第9章 Struts 2的攔截器 234
9.1 理解攔截器 234
9.1.1 攔截器的實(shí)現(xiàn)原理 234
9.1.2 實(shí)例:模擬Struts 2實(shí)現(xiàn)一個(gè)攔截器系統(tǒng) 237
9.2 配置Struts 2攔截器 242
9.2.1 配置攔截器 242
9.2.2 使用攔截器 244
9.2.3 默認(rèn)攔截器 245
9.3 實(shí)例:自定義攔截器 247
9.3.1 編寫(xiě)攔截器類 247
9.3.2 配置自定義攔截器 249
9.4 攔截器的高級(jí)技術(shù) 251
9.4.1 過(guò)濾指定的方法 251
9.4.2 攔截器執(zhí)行順序 254
9.4.3 攔截器結(jié)果監(jiān)聽(tīng)器 255
9.5 Struts 2內(nèi)建的攔截器 258
9.5.1 內(nèi)建攔截器 258
9.5.2 內(nèi)建攔截器的配置 260
9.6 實(shí)例:編寫(xiě)權(quán)限驗(yàn)證攔截器 262
9.6.1 編寫(xiě)權(quán)限驗(yàn)證攔截器類 263
9.6.2 配置權(quán)限控制攔截器 263
9.7 小結(jié) 265
第10章 Struts 2的類型轉(zhuǎn)換 266
10.1 為什么要進(jìn)行類型轉(zhuǎn)換 266
10.1.1 客戶端和服務(wù)端之間的數(shù)據(jù)處理過(guò)程 266
10.1.2 傳統(tǒng)的類型轉(zhuǎn)換 267
10.2 使用Struts 2類型轉(zhuǎn)換器 270
10.2.1 Struts 2內(nèi)建的類型轉(zhuǎn)換器 271
10.2.2 實(shí)例:實(shí)現(xiàn)基于OGNL的類型轉(zhuǎn)換器 274
10.2.3 配置全局類型轉(zhuǎn)換器 278
10.2.4 實(shí)例:實(shí)現(xiàn)基于Struts 2的類型轉(zhuǎn)換器 280
10.2.5 實(shí)例:實(shí)現(xiàn)數(shù)組類型轉(zhuǎn)換器 282
10.2.6 實(shí)例:實(shí)現(xiàn)集合類型轉(zhuǎn)換器 284
10.3 實(shí)例:使用OGNL表達(dá)式進(jìn)行類型轉(zhuǎn)換 287
10.4 Struts 2對(duì)Collection和Map的支持 289
10.4.1 指定集合元素的類型 289
10.4.2 Set和索引屬性 291
10.5 類型轉(zhuǎn)換的錯(cuò)誤處理 292
10.6 小結(jié) 294
第11章 Struts 2的輸入校驗(yàn) 295
11.1 傳統(tǒng)的數(shù)據(jù)校驗(yàn)方法 295
11.1.1 用JavaScript進(jìn)行客戶端校驗(yàn) 295
11.1.2 手工進(jìn)行服務(wù)端校驗(yàn) 300
11.2 Struts 2的數(shù)據(jù)校驗(yàn) 303
11.2.1 Struts 2使用validate方法校驗(yàn)數(shù)據(jù)的原理 303
11.2.2 實(shí)例:使用validate方法進(jìn)行輸入校驗(yàn) 305
11.2.3 實(shí)例:使用validateXxx方法進(jìn)行輸入校驗(yàn) 308
11.2.4 Struts 2的輸入校驗(yàn)流程 311
11.3 使用Validation框架進(jìn)行輸入校驗(yàn) 312
11.3.1 實(shí)例:服務(wù)端校驗(yàn) 313
11.3.2 字段校驗(yàn)器和非字段校驗(yàn)器 315
11.3.3 國(guó)際化錯(cuò)誤提示信息 317
11.3.4 實(shí)例:客戶端校驗(yàn) 319
11.3.5 校驗(yàn)文件的命名規(guī)則 323
11.3.6 短路校驗(yàn)器 325
11.4 Validation框架的內(nèi)建校驗(yàn)器 327
11.4.1 注冊(cè)和引用校驗(yàn)器 327
11.4.2 轉(zhuǎn)換(conversion)校驗(yàn)器 328
11.4.3 日期(date)校驗(yàn)器 329
11.4.4 雙精度浮點(diǎn)數(shù)(double)校驗(yàn)器 330
11.4.5 郵件地址(email)校驗(yàn)器 331
11.4.6 表達(dá)式(expression)校驗(yàn)器 332
11.4.7 字段表達(dá)式(fieldexpression)校驗(yàn)器 332
11.4.8 整數(shù)(int)校驗(yàn)器 333
11.4.9 正則表達(dá)式(regex)校驗(yàn)器 334
11.4.10 必填(required)校驗(yàn)器 335
11.4.11 必填字符串(requiredstring)校驗(yàn)器 335
11.4.12 字符串長(zhǎng)度(stringlength)校驗(yàn)器 336
11.4.13 網(wǎng)址(url)校驗(yàn)器 337
11.4.14 visitor校驗(yàn)器 337
11.5 小結(jié) 341
第12章 文件的上傳和下載 342
12.1 文件上傳原理 342
12.1.1 表單數(shù)據(jù)的編碼方式 342
12.1.2 applicaiton/x-www.form-urlencoded編碼方式 343
12.1.3 multipart/form-data編碼方式 345
12.2 使用Commons-FileUpload上傳文件 348
12.2.1 下載和安裝Commons-FileUpload組件 348
12.2.2 實(shí)例:上傳單個(gè)文件 349
12.2.3 實(shí)例:上傳任意多個(gè)文件 352
12.3 實(shí)例:Struts 2的文件上傳 355
12.3.1 Struts 2對(duì)上傳文件的支持 355
12.3.2 編寫(xiě)上傳文件的JSP頁(yè) 355
12.3.3 編寫(xiě)上傳文件的Action類 356
12.3.4 配置上傳文件的Action類 358
12.3.5 手工過(guò)濾上傳文件的類型 359
12.3.6 用fileUpload攔截器過(guò)濾上傳文件的類型 361
12.4 在Struts 2中上傳多個(gè)文件 363
12.4.1 實(shí)例:用數(shù)組上傳固定數(shù)目的文件 363
12.4.2 實(shí)例:用List上傳任意數(shù)目的文件 366
12.5 文件下載 368
12.5.1 下載文件的中文問(wèn)題 368
12.5.2 用stream結(jié)果下載文件 369
12.5.3 下載文件的授權(quán)控制 371
12.6 小結(jié) 372
第13章 國(guó)際化 373
13.1 國(guó)際化基礎(chǔ) 373
13.1.1 程序?yàn)槭裁葱枰獓?guó)際化 373
13.1.2 Java國(guó)際化中的資源文件 374
13.1.3 Java支持的語(yǔ)言和國(guó)家 375
13.1.4 資源文件的中文支持 376
13.1.5 編寫(xiě)國(guó)際化程序 377
13.1.6 帶占位符的國(guó)際化信息 379
13.1.7 實(shí)例:使用資源文件編寫(xiě)國(guó)際化程序 380
13.1.8 Java國(guó)際化中的資源類 383
13.1.9 實(shí)例:使用資源類編寫(xiě)國(guó)際化程序 384
13.2 Struts 2的國(guó)際化基礎(chǔ) 385
13.2.1 Struts 2中的全局資源文件 386
13.2.2 在Struts 2中訪問(wèn)國(guó)際化信息 386
13.2.3 在Struts 2中輸出帶占位符的國(guó)際化信息 389
13.3 資源文件的作用范圍和加載順序 391
13.3.1 包范圍資源文件 391
13.3.2 接口范圍資源文件 393
13.3.3 Action基類范圍資源文件 395
13.3.3 Action范圍資源文件 396
13.3.5 臨時(shí)資源文件 397
13.3.6 加載資源文件的順序 398
13.4 實(shí)例:編寫(xiě)支持多國(guó)語(yǔ)言的Web應(yīng)用程序 399
13.4.1 通過(guò)i18n攔截器實(shí)現(xiàn)國(guó)際化 400
13.4.2 為register.jsp頁(yè)面增加語(yǔ)言選擇列表 401
13.4.3 將register.jsp頁(yè)面映射成Action 402
13.5 小結(jié) 404
第14章 Struts 2的標(biāo)簽庫(kù) 405
14.1 Struts 2標(biāo)簽基礎(chǔ) 405
14.1.1 Struts 2標(biāo)簽的分類 405
14.1.2 使用Struts 2標(biāo)簽 406
14.1.3 Struts 2中的OGNL表達(dá)式 408
14.1.4 用OGNL表達(dá)式訪問(wèn)內(nèi)置對(duì)象 411
14.1.5 用OGNL表達(dá)式操作集合 412
14.1.6 Lamdba(λ)表達(dá)式 414
14.2 控制標(biāo)簽 415
14.2.1 if/elseif/else標(biāo)簽:條件邏輯控制 415
14.2.2 iterator標(biāo)簽:數(shù)組、集合迭代 418
14.2.3 append標(biāo)簽:將集合以追加方式合并為新集合 422
14.2.4 generator標(biāo)簽:將字符串分割成多個(gè)子串 424
14.2.5 merge標(biāo)簽:將集合以交替方式合并為新集合 427
14.2.6 subset標(biāo)簽:獲得集合的子集 428
14.2.7 sort標(biāo)簽:對(duì)集合進(jìn)行排序 430
14.3 數(shù)據(jù)標(biāo)簽 432
14.3.1 action標(biāo)簽:在JSP頁(yè)面中直接訪問(wèn)Action 432
14.3.2 bean標(biāo)簽:創(chuàng)建JavaBean的對(duì)象實(shí)例 434
14.3.3 date標(biāo)簽:格式化日期/時(shí)間 436
14.3.4 debug標(biāo)簽:顯示調(diào)試信息 438
14.3.5 include標(biāo)簽:包含Web資源 439
14.3.6 param標(biāo)簽:為其他的標(biāo)簽提供參數(shù) 440
14.3.7 property標(biāo)簽:輸出指定的值 440
14.3.8 push標(biāo)簽:將指定值放到ValueStack棧頂 441
14.3.9 set標(biāo)簽:將某個(gè)值保存在指定的范圍 442
14.3.10 url標(biāo)簽:生成URL地址 444
14.4 表單標(biāo)簽 446
14.4.1 表單標(biāo)簽的通用屬性 446
14.4.2 表單標(biāo)簽的name和value屬性 447
14.4.3 form、submit和reset標(biāo)簽:表單、提交和重置 449
14.4.4 checkboxlist標(biāo)簽:生成多個(gè)復(fù)選框 449
14.4.5 combobox標(biāo)簽:組合單行文本框和下拉列表框 452
14.4.6 datetimespicker標(biāo)簽:組合文本框和日期、時(shí)間選擇框 454
14.4.7 doubleselect標(biāo)簽:生成級(jí)聯(lián)列表框 457
14.4.8 head標(biāo)簽:添加CSS和JavaScript 458
14.4.9 optiontransferselect 標(biāo)簽:生成可交互的兩個(gè)列表框 459
14.4.10 select標(biāo)簽:生成列表框 461
14.4.11 optgroup標(biāo)簽:生成下拉列表框選項(xiàng)組 462
14.4.12 radio標(biāo)簽:生成多個(gè)單選框 463
14.4.13 token標(biāo)簽:防止多次提交表單 464
14.4.14 updownselect標(biāo)簽:生成高級(jí)列表框 465
14.4.15 其他的表單標(biāo)簽 467
14.5 非表單標(biāo)簽 467
14.5.1 fielderror標(biāo)簽:顯示字段錯(cuò)誤信息 467
14.5.2 actionerror和actionmessage標(biāo)簽:顯示動(dòng)作錯(cuò)誤和動(dòng)作消息 468
14.5.3 component標(biāo)簽:使用模板 469
14.6 小結(jié) 471
第15章 Struts 2對(duì)AJAX的支持 472
15.1 Struts 2的AJAX主題 472
15.2 基于AJAX的輸入校驗(yàn) 474
15.2.1 下載和安裝DWR框架 474
15.2.2 編寫(xiě)具有AJAX校驗(yàn)功能的注冊(cè)頁(yè)面 475
15.2.3 編寫(xiě)Action類 476
15.2.4 設(shè)置校驗(yàn)規(guī)則 477
15.3 在表單中使用AJAX 479
15.3.1 實(shí)現(xiàn)可異步提交的表單 479
15.3.2 實(shí)現(xiàn)Action類 479
15.3.3 實(shí)現(xiàn)結(jié)果處理頁(yè)面 480
15.3.4 執(zhí)行JavaScript代碼 481
15.4 發(fā)布-訂閱(pub-sub)事件模型 483
15.4.1 pub-sub事件模型的原理 483
15.4.2 pub-sub事件模型演示 484
15.4.3 阻止請(qǐng)求服務(wù)端資源 487
15.5 使用Struts 2中的AJAX標(biāo)簽 488
15.5.1 div標(biāo)簽的基本應(yīng)用 488
15.5.2 使用div標(biāo)簽執(zhí)行JavaScript 491
15.5.3 手動(dòng)控制div標(biāo)簽的更新 493
15.5.4 submit標(biāo)簽:發(fā)送異步請(qǐng)求 496
15.5.5 a標(biāo)簽:可異步提交請(qǐng)求的鏈接 498
15.5.6 autocompleter標(biāo)簽:帶自運(yùn)完成功能的文本框 501
15.5.7 tabbedPanel標(biāo)簽:生成Tab頁(yè) 507
15.5.8 treenode和tree標(biāo)簽:樹(shù)節(jié)點(diǎn)和樹(shù)組件 511
15.6 使用JSON插件實(shí)現(xiàn)AJAX 513
15.6.1 下載和安裝JSON插件 513
15.6.2 下載和安裝prototype.js 513
15.6.3 實(shí)現(xiàn)Action類 514
15.6.4 在JSP頁(yè)面中通過(guò)Prototype請(qǐng)求Action 515
15.7 小結(jié) 517
第16章 用Struts 2實(shí)現(xiàn)注冊(cè)登錄系統(tǒng) 518
16.1 系統(tǒng)總體結(jié)構(gòu) 518
16.2 實(shí)現(xiàn)DAO層 518
16.2.1 實(shí)現(xiàn)DAOSupport類 519
16.2.2 實(shí)現(xiàn)UserDAO接口 520
16.2.3 實(shí)現(xiàn)UserDAOImpl類 520
16.3 實(shí)現(xiàn)Action類 522
16.3.1 實(shí)現(xiàn)模型類(User) 522
16.3.2 實(shí)現(xiàn)LoginAction類 523
16.3.3 實(shí)現(xiàn)RegisterAction類 525
16.4 輸入校驗(yàn) 526
16.4.1 校驗(yàn)登錄頁(yè)面 526
16.4.2 校驗(yàn)注冊(cè)頁(yè)面 527
16.5 實(shí)現(xiàn)表現(xiàn)層頁(yè)面 528
16.5.1 實(shí)現(xiàn)登錄頁(yè)面(login.jsp) 528
16.5.2 實(shí)現(xiàn)注冊(cè)頁(yè)面(register.jsp) 530
16.5.3 實(shí)現(xiàn)主頁(yè)面(main.jsp) 531
16.6 實(shí)現(xiàn)其他的功能 532
16.6.1 使用Action類生成驗(yàn)證碼圖像 532
16.6.2 使用攔截器驗(yàn)證頁(yè)面訪問(wèn)權(quán)限 534
16.7 小結(jié) 536
第3篇 Hibernate篇
第17章 Hibernate的Helloworld程序 538
17.1 Hibernate概述 538
17.1.1 為什么要使用ORM 538
17.1.2 Hibernate和EJB的關(guān)系 539
17.2 在應(yīng)用程序中使用Hibernate 3 539
17.2.1 MyEclipse對(duì)Hibernate 3的支持 540
17.2.2 下載和安裝新版本的Hibernate 3 542
17.3 第1個(gè)Hibernate程序 543
17.3.1 開(kāi)發(fā)Hibernate程序的基本步驟 543
17.3.2 建立數(shù)據(jù)表 543
17.3.3 建立Hibernate配置文件 543
17.3.4 建立會(huì)話工廠(SessionFactory)類 544
17.3.5 建立實(shí)體Bean和Struts 2的模型類 547
17.3.6 建立映射文件 548
17.3.7 建立添加記錄的Action類 548
17.3.8 建立錄入信息的JSP頁(yè)面 550
17.4 小結(jié) 552
第18章 配置Hibernate 553
18.1 用傳統(tǒng)的方法配置Hibernate 553
18.1.1 用XML文件配置Hibernate 553
18.1.2 用屬性文件配置Hibernate 556
18.1.3 用編程的方式配置Hibernate 556
18.1.4 Hibernate框架的配置屬性 557
18.1.5 SQL方言(Dialect) 561
18.1.6 使用JNDI數(shù)據(jù)源 562
18.1.7 配置映射文件 563
18.2 使用注釋(Annotations)配置Hibernate 564
18.2.1 Hibernate注釋簡(jiǎn)介 564
18.2.2 安裝Hibernate注釋 564
18.2.3 使用@Entity注釋實(shí)體Bean 565
18.2.4 使用@Table注釋實(shí)體Bean 565
18.2.5 使用@Id注釋主鍵 566
18.2.6 使用@GenericGenerator注釋產(chǎn)生主鍵值 567
18.2.7 使用@Basic和@Transient注釋 568
18.2.8 更高級(jí)的Hibernate注釋 568
18.3 使用注釋重新實(shí)現(xiàn)Helloworld程序 569
18.3.1 使用注釋配置實(shí)體Bean 569
18.3.2 在Hibernate配置文件中指定實(shí)體Bean的位置 570
18.3.3 使用AnnotationConfiguration類處理annotation.cfg.xml文件 570
18.3.4 通過(guò)AnnotationSessionFactory類獲得Session對(duì)象 571
18.4 小結(jié) 572
第19章 Hibernate的會(huì)話與O/R映射 573
19.1 會(huì)話(Session)的基本應(yīng)用 573
19.1.1 保存持久化對(duì)象 573
19.1.2 判斷持久化對(duì)象之間的關(guān)系 574
19.1.3 裝載持久化對(duì)象 575
19.1.4 刷新持久化對(duì)象 577
19.1.5 更新持久化對(duì)象 578
19.1.6 刪除持久化對(duì)象 579
19.2 建立O/R映射 579
19.2.1 映射主鍵 579
19.2.2 映射復(fù)合主鍵 580
19.2.3 實(shí)例:主鍵和復(fù)合主鍵的查詢和更新 581
19.2.4 映射普通屬性 586
19.2.5 建立組件(Component)映射 587
19.2.6 實(shí)例:組件映射的應(yīng)用 588
19.2.7 基于注釋的組件映射 592
19.2.8 建立多對(duì)一(many-to-one)單向關(guān)聯(lián)關(guān)系 593
19.2.9 實(shí)例:多對(duì)一關(guān)系的演示 593
19.2.10 基于注釋的多對(duì)一關(guān)系映射 597
19.2.11 建立一對(duì)多(one-to-many)的雙向關(guān)聯(lián)關(guān)系 598
19.2.12 實(shí)例:一對(duì)多雙向關(guān)聯(lián)的演示 598
19.2.13 基于注釋的一對(duì)多映射 601
19.2.14 建立基于外鍵的一對(duì)一(one-to-one)的關(guān)系映射 602
19.2.15 實(shí)例:基于外鍵的一對(duì)一關(guān)系演示 603
19.2.16 建立基于主鍵的一對(duì)一的關(guān)系映射 606
19.2.17 實(shí)例:基于主鍵的一對(duì)一關(guān)系映射 607
19.3 小結(jié) 610
第20章 Hibernate的查詢與更新技術(shù) 612
20.1 標(biāo)準(zhǔn)(Criteria)查詢API 612
20.1.1 實(shí)例:一個(gè)簡(jiǎn)單的例子 612
20.1.2 查詢的約束條件 613
20.1.3 對(duì)查詢結(jié)果進(jìn)行分頁(yè) 615
20.1.4 實(shí)例:實(shí)現(xiàn)Web分頁(yè)功能 617
20.1.5 只獲得一個(gè)持久化對(duì)象 620
20.1.6 對(duì)查詢結(jié)果進(jìn)行排序 621
20.1.7 多個(gè)Criteria之間的關(guān)聯(lián) 621
20.1.8 聚合和分組 622
20.1.9 使用QBE(Query By Example) 624
20.2 HQL和SQL技術(shù) 625
20.2.1 實(shí)例:使用HQL的第一個(gè)例子 625
20.2.2 From子句:簡(jiǎn)化實(shí)體Bean類名 626
20.2.3 Select子句:選擇返回屬性 628
20.2.4 Where子句:指定條件 629
20.2.5 使用命名參數(shù) 630
20.2.6 使用Query進(jìn)行分頁(yè) 631
20.2.7 實(shí)例:使用HQL實(shí)現(xiàn)Web分頁(yè)功能 631
20.2.8 使用HQL進(jìn)行排序和分組 632
20.2.9 關(guān)聯(lián)查詢 633
20.2.10 聚合函數(shù) 635
20.2.11 Update和Delete語(yǔ)句:更新持久化對(duì)象 636
20.2.12 Insert語(yǔ)句:插入記錄 637
20.2.13 命名查詢 638
20.2.14 使用SQL 639
20.3 小結(jié) 640
第21章 Hibernate的高級(jí)技術(shù) 641
21.1 事務(wù)管理 641
21.1.1 事務(wù)概述 641
21.1.2 事務(wù)的隔離等級(jí) 642
21.1.3 Hibernate的事務(wù)管理 643
21.1.4 基于JDBC的事務(wù)管理 643
21.1.5 基于JTA的事務(wù)管理 644
21.2 鎖(Locking) 644
21.2.1 悲觀鎖(Pessimistic Locking) 644
21.2.2 樂(lè)觀鎖(Optimistic Locking) 646
21.3 查詢緩存(Query Cache) 648
21.4 攔截器和事件 649
21.4.1 攔截器(Interceptors)概述 649
21.4.2 實(shí)例:編寫(xiě)一個(gè)Hibernate攔截器 649
21.4.3 事件(Events)概述 653
21.4.4 實(shí)例:編寫(xiě)和注冊(cè)事件類 654
21.5 過(guò)濾器 656
21.6 小結(jié) 657
第4篇 Spring篇
第22章 Spring的Helloworld程序 660
22.1 Spring簡(jiǎn)介 660
22.1.1 Spring的主要特性 660
22.1.2 Spring的核心技術(shù) 661
22.2 在應(yīng)用程序中使用Spring 662
22.2.1 MyEclipse 6.5對(duì)Spring的支持 662
22.2.2 下載和安裝Spring 663
22.3 實(shí)例:開(kāi)發(fā)一個(gè)Helloworld程序 664
22.3.1 編寫(xiě)HelloService接口 664
22.3.2 編寫(xiě)HelloServiceImpl類 664
22.3.3 裝配HelloServiceImpl類 665
22.3.4 通過(guò)裝配Bean的方式獲得HelloService對(duì)象 665
22.4 小結(jié) 666
第23章 反向控制(Ioc)與裝配JavaBean 667
23.1 反向控制(Ioc) 667
23.1.1 什么是依賴注入 667
23.1.2 傳統(tǒng)解決方案的缺陷 668
23.1.3 用Ioc降低耦合度 669
23.2 手動(dòng)裝配JavaBean 670
23.2.1 裝配Bean的方法 670
23.2.2 與Bean相關(guān)的接口 671
23.2.3 <bean>標(biāo)簽的常用屬性 672
23.2.4 裝配普通屬性 673
23.2.5 裝配集合屬性 676
23.2.6 設(shè)置屬性值為null 680
23.2.7 裝配構(gòu)造方法 680
23.3 自動(dòng)裝配JavaBean 683
23.4 分散配置 685
23.5 定制屬性編輯器 687
23.6 小結(jié) 690
第24章 Spring中的數(shù)據(jù)庫(kù)技術(shù) 691
24.1 獲得DataSource 691
24.1.1 通過(guò)JNDI獲得DataSource 691
24.1.2 從第三方的連接池獲得DataSource 692
24.1.3 使用DriverManagerDataSource 693
24.2 在Spring中使用JDBC 693
24.2.1 裝配JdbcTemplate類 693
24.2.2 向數(shù)據(jù)庫(kù)中寫(xiě)數(shù)據(jù) 694
24.2.3 從數(shù)據(jù)庫(kù)中讀數(shù)據(jù) 696
24.2.4 調(diào)用存儲(chǔ)過(guò)程 699
24.3 自增鍵 700
24.4 異常處理 701
24.5 在Spring中使用Hibernate 702
24.5.1 集成Spring和Hibernate 702
24.5.2 使用HibernateTemplate 703
24.6 小結(jié) 705
第25章 Spring的其他高級(jí)技術(shù) 706
25.1 Spring AOP 706
25.1.1 AOP概述 706
25.1.2 AOP術(shù)語(yǔ)簡(jiǎn)介 707
25.1.3 4種通知(Advice)的作用 708
25.1.4 通過(guò)Advisor指定切入點(diǎn) 714
25.1.5 使用控制流切入點(diǎn) 716
25.2 Spring 的事務(wù)管理 718
25.2.1 實(shí)例:使用程序控制事務(wù) 718
25.2.2 聲明式事務(wù) 720
25.2.3 事務(wù)屬性的種類 722
25.2.4 設(shè)置事務(wù)屬性 724
25.2.5 設(shè)置特定方法的事務(wù)屬性 725
25.3 實(shí)例:建立和訪問(wèn)RMI服務(wù) 727
25.4 實(shí)例:發(fā)送E-mail 729
25.5 調(diào)度任務(wù) 731
25.6 小結(jié) 732
第5篇 綜合實(shí)例篇
第26章 Struts 2與Hibernate、Spring的整合 734
26.1 整合Struts 2和Hibernate框架 734
26.1.1 整合的思路 734
26.1.2 整合后的系統(tǒng)層次 735
26.1.3 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 735
26.1.4 實(shí)現(xiàn)業(yè)務(wù)邏輯層 737
26.1.5 Struts 2和Hibernate共享實(shí)體Bean 739
26.2 整合Spring框架 740
26.2.1 裝配數(shù)據(jù)訪問(wèn)層 740
26.2.2 裝配業(yè)務(wù)邏輯層 742
26.2.3 使用Struts 2的Spring插件 742
26.3 小結(jié) 743
第27章 網(wǎng)絡(luò)硬盤(pán) 744
27.1 系統(tǒng)概述 744
27.1.1 系統(tǒng)功能簡(jiǎn)介 744
27.1.2 系統(tǒng)架構(gòu)設(shè)計(jì) 746
27.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 746
27.3 實(shí)現(xiàn)持久對(duì)象層 748
27.3.1 實(shí)現(xiàn)用戶實(shí)體Bean 749
27.3.2 實(shí)現(xiàn)目錄實(shí)體Bean 750
27.3.3 實(shí)現(xiàn)文件實(shí)體Bean 751
27.3.4 映射MySQL存儲(chǔ)過(guò)程 752
27.3.5 配置hibernate.cfg.xml 753
27.4 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 754
27.4.1 實(shí)現(xiàn)DAOSupport類 754
27.4.2 實(shí)現(xiàn)UserDAO接口和UserDAOImpl類 754
27.4.3 實(shí)現(xiàn)DirectoryDAO接口和DirectoryDAOImpl類 755
27.4.4 實(shí)現(xiàn)FileDAO接口和FileDAOImpl類 757
27.5 實(shí)現(xiàn)業(yè)務(wù)邏輯層 758
27.5.1 實(shí)現(xiàn)UserService接口和UserServiceImpl類 758
27.5.2 實(shí)現(xiàn)DirectoryService接口和DirectoryServiceImpl類 760
27.5.3 實(shí)現(xiàn)FileService接口和FileServiceImpl類 762
27.5.4 實(shí)現(xiàn)服務(wù)管理類 764
27.5.5 配置Spring 765
27.6 實(shí)現(xiàn)Web表現(xiàn)層 767
27.6.1 實(shí)現(xiàn)基礎(chǔ)動(dòng)作類(BaseAction) 768
27.6.2 實(shí)現(xiàn)用戶登錄頁(yè)面和處理登錄的Action類 769
27.6.3 實(shí)現(xiàn)注冊(cè)登錄頁(yè)面和處理注冊(cè)的Action類 771
27.6.4 實(shí)現(xiàn)網(wǎng)絡(luò)硬盤(pán)主頁(yè)面 771
27.6.5 建立目錄 773
27.6.6 實(shí)現(xiàn)文件上傳 774
27.6.7 實(shí)現(xiàn)文件和目錄下載 775
27.6.8 使用攔截器控制頁(yè)面訪問(wèn)權(quán)限 779
27.6.9 其他功能的實(shí)現(xiàn) 780
27.7 小結(jié) 780
第28章 論壇系統(tǒng) 782
28.1 系統(tǒng)功能簡(jiǎn)介 782
28.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 783
28.3 實(shí)現(xiàn)持久對(duì)象層 785
28.3.1 實(shí)現(xiàn)主題實(shí)體Bean 785
28.3.2 實(shí)現(xiàn)回復(fù)實(shí)體Bean 787
28.3.3 配置hibernate.cfg.xml 788
28.4 實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)層 788
28.4.1 實(shí)現(xiàn)TopicDAO接口和TopicDAOImpl類 789
28.4.2 實(shí)現(xiàn)ReviewDAO接口和ReviewDAOImpl類 790
28.5 實(shí)現(xiàn)業(yè)務(wù)邏輯層 791
28.5.1 實(shí)現(xiàn)TopicService接口和TopicServiceImpl類 791
28.5.2 實(shí)現(xiàn)ReviewService接口和ReviewServiceImpl類 793
28.5.3 實(shí)現(xiàn)服務(wù)管理類 795
28.5.4 配置Spring 795
28.6 整合FCKEditor組件 796
28.6.1 安裝FCKEditor 796
28.6.2 配置FCKEditor 797
28.6.3 修改FCKEditor自帶的Servlet 800
28.6.4 產(chǎn)生FCKEditor的客戶端腳本 800
28.7 實(shí)現(xiàn)Web表現(xiàn)層 801
28.7.1 瀏覽論壇的主題列表 801
28.7.2 發(fā)布新主題 804
28.7.3 瀏覽主題和回復(fù)內(nèi)容 805
28.7.4 回復(fù)主題 806
28.8 小結(jié) 807
《Android開(kāi)發(fā)完全講義(第2版)》(本書(shū)版權(quán)已輸出到臺(tái)灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
posted on 2009-05-06 08:52 銀河使者 閱讀(5199) 評(píng)論(2) 編輯 收藏 所屬分類: 原創(chuàng) 、 圖書(shū)