-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java Web編程實戰寶典——JSP+Servlet+Struts 2+Hibernate+Spring+Ajax

( 簡體 字)
作者:李寧、劉巖、張國平 等類別:1. -> 程式設計 -> 網路編程 -> JSP
譯者:
出版社:清華大學出版社Java Web編程實戰寶典——JSP+Servlet+Struts 2+Hibernate+Spring+Ajax 3dWoo書號: 39220
詢問書籍請說出此書號!

缺書
NT售價: 500

出版日:7/25/2014
頁數:868
光碟數:1 (含視頻教學)
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302347958
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

  在前幾年JSP+Servlet+JavaBean是采用Java語言進行Web開發的常用技術,但后來Struts 2框架逐漸流行起來,再后來Spring框架成了當仁不讓的霸主,而Hibernate框架則成了持久層處理技術的代表。如果細細比較,可以發現這幾種技術各有千秋,因此 Struts 2+Spring+Hibernate的組合成了采用Java語言進行Web開發的主流。為了使讀者盡快了解和掌握如何使用Struts 2+Spring+Hibernate 這3個框架整合的方式來開發Web應用系統,筆者花費了大量的時間來完成這本關于Struts 2 + Spring +Hibernate 整合的書。為了盡可能保證內容的準確和權威性,筆者查閱了大量的官方文檔,并針對關鍵部分閱讀了相應的源代碼。
  本書的寫作目標就是力爭讓讀者盡可能地掌握JSP+Servlet+JavaBean和Struts 2+ Spring+Hibernate這兩個解決方案,以及相關框架整合的相關知識。本書以現實職場中經典模塊和完整系統的項目為背景,通過多種前臺技術和后臺技術的不同組合,讓讀者深入地了解這些流行架構的使用方法。
本書有何特色
  1.從基礎開始,由淺入深
  JSP/Servlet技術是Java Web技術的基礎,很多初學者在學習SSH之前并沒有很好地掌握該技術,因此本書考慮這個原因,在第1篇講解了如何搭建Java Web開發環境,第2篇介紹了JSP+Servlet+JavaBean技術解決方案,使讀者對Java Web開發技術有一個初步的了解。同時每一篇的章節按照由淺入深、循序漸進的順序編排,從而可以使讀者漸進式地學習本書的知識。
  2.各篇獨立,內容完整
  本書的每一篇都是相對獨立的。如第3篇講解了Struts 2的各種技術;第4篇講解了Hibernate的主要技術,而且每一篇講解的技術比較完整。這樣就會給想學習SSH整合技術,但卻未掌握SSH中的一項或幾項技術的讀者帶來方便,至少不需要同時準備幾本書,從而給讀者節省了大量的時間和金錢。
  3.各章實例豐富,使讀者更容易理解書中的知識
  本書幾乎在每一章都提供了大量的實例。這些實例充分展現了相關知識點的實現細節。讀者可以在學習相關知識點后,通過上機實踐這些例子來更深入地了解并掌握這些知識點。
  4.提供了完整的實例,使讀者更進一步體會SSH開發模式的精髓
  本書以現實職場中經典模塊和完整系統的項目為背景,結合當前Java Web技術的主流開發技能需求,組織和編寫最后兩個完整的實例(網絡硬盤和論壇系統)。這兩個實例都采用了SSH模式進行開發。通過對這兩個實例的深入研究,讀者可以比較全面地掌握基于SSH模式的Web應用程序的開發步驟和開發方法,并可將實例中所采用的技術應用到自己的項目中。
  5.使用最新版本的開發工具和框架
  本書所使用的開發工具和相關的框架在筆者寫作本書時都是最新版本,如MyEclipse 10.6、Struts 2.3、Hibernate 4.1和Spring 3.2等。讀者可以在學習SSH開發技術的同時,接觸到目前最新版本的開發工具和框架。即使讀者目前所使用的軟件版本低于本書所使用的軟件版本,也可以為未來的工作奠定基礎。
  6.配有源代碼與視頻光盤,方便讀者使用
  為了方便讀者實驗本書提供的實例程序,特將所有的源代碼都收錄到了配書光盤中,以方便讀者使用。另外,作者特別為本書錄制了近20小時高清教學視頻,將書中的一些相關操作直觀地展示給讀者,以達到更好的學習效果。另外,光盤中還贈送了大量的進階學習視頻和實例源代碼。
本書內容
  本書共28章,分為5篇,結合目前最新軟件開發環境MyEclipse 10.6,全方位介紹了關于Java Web開發的基本概念和各種解決方案。從搭建Java Web環境講起,然后詳細介紹了JSP+Servelt+JavaBean解決方案、Struts 2框架、Hibernate框架和Spring框架,最后結合筆者的經驗,利用Struts 2+Spring+Hibernate解決方案講解了兩個完整項目。
  第1篇 Web開發基礎篇(第1∼6章)
  本篇首先介紹了Java Web環境的搭建過程,包括JDK 7、Eclipse 4、MyEclipse 10、Eclipse IDE for Java EE Developers和Tomcat 7等軟件的下載、安裝和配置,然后詳細講解了Windows平臺下數據庫MySQL軟件和數據庫客戶端SQLyog軟件的安裝和配置過程。接著重點介紹了JSP+Servlet+JavaBean技術解決方案和通過該方案實現項目的過程。其中前者首先介紹了Web技術的發展歷史和JSP的兩種模型,然后詳細介紹了Java Web的客戶端技術、Servlet技術和JSP技術。為了便于讀者掌握JSP+Servlet+JavaBean技術解決方案,最后以用戶注冊登錄系統為例,詳細講解了其開發過程。
  第2篇 Struts 2篇(第7∼16章)
  本篇主要介紹了Struts 2框架和通過該框架實現項目的過程。其中前者首先介紹了Struts 2框架的體系結構、MVC模式和相關基礎知識,例如Struts 2 Action、處理結果、模型驅動和異常處理;然后詳細介紹了Struts 2框架的各種高級知識,如攔截器技術、類型轉換器、輸入校驗技術、文件上傳技術、國際化技術和Struts 2標簽。為了便于讀者掌握Struts 2框架,最后以用戶注冊登錄系統為例,詳細講解了其開發過程。
  第3篇 Hibernate篇(第17∼21章)
  本篇主要介紹了Hibernate框架的基礎知識和高級知識。其中前者首先介紹了Hibernate框架基礎知識,例如ORM技術、Hibernate與EJB關系等;然后詳細介紹了Hibernate框架的各種核心知識,通過配置文件和注釋,對Hibernate進行配置、O/R映射、會話的基本操作、標準(Criteria)查詢API技術等。最后又簡單介紹了Hibernate框架的一些高級技術,例如事務、鎖、攔截器、事件和過濾器。
  第4篇 Spring篇(第22∼25章)
  本篇主要介紹了Spring框架和通過該框架實現項目的過程。其中前者首先介紹了Spring框架的主要特性和核心技術;然后詳細介紹了Spring框架的各種核心知識,如反向控制技術(Ioc)、數據庫技術和AOP技術。
  第5篇 綜合實例篇(第26∼28章)
  本篇首先介紹了SSH 5三大框架的整合思路和流程,然后重點介紹了Java Web技術的應用和實戰開發。其中,用Struts 2+Hibernate 4+Spring 3技術解決方案實現網絡硬盤項目。為了便于讀者掌握該項目,在具體講解時按照面向應用的方式對該系統分成4層,即持久對象層、數據訪問層、業務邏輯層和Web表示層,然后詳細介紹了各層。最后介紹了一個網絡論壇系統的實現,該系統不僅使用Struts 2+Hibernate 4+Spring 3技術解決方案實現,而且還涉及一個Web編輯器(FCKEditor)的安裝和使用。
本書超值DVD光盤內容
* 本書各章涉及的實例源文件;
* 19.4小時本書配套教學視頻;
* 15.5小時Struts 2+Hibernate+Spring整合開發教學視頻;
* 19個Java Web典型模塊源程序及9.2小時教學視頻;
* 5個Java Web項目案例源程序及1.3小時教學視頻。
適合閱讀本書的讀者
* 需要全面學習Java Web開發技術的讀者;
* 初步掌握Java技術,想進一步學習Java Web開發的讀者;
* 對SSH整合技術有了一定的了解,想進一步提高的讀者;
* 正在使用SSH整合技術開發項目,想作為參考的程序員;
* 大中專院校的學生;
* 社會培訓學生;
* 需要作為案頭必備手冊的程序員。
本書作者
  本書第1~8章主要由李寧編寫,第9~16章主要由南陽理工學院的劉巖編寫,第17~28章主要由張國平編寫。其他參與編寫的人員有陳一東、高陽、蔣欣、盧曉洋、秦婧、張婉婉、周萌、祝翠、賓光富、陳非凡、陳泓石、陳曦、崔曉明、房偉、高素芳、高志雷、郭靖、郭曉博、胡敏、黃翌、姜艷麗、黎敬碩、李海濤、李槐、李銳、林映紅、馬航、寧偉斌、邵明洋、孫瀏毅、唐頌侃、王倩、王永靜。
  本書的編寫對筆者而言是一個“浩大的工程”。雖然作者投入了大量的精力和時間,但只怕百密難免一疏。若有任何疑問或疏漏,請發郵件至bookservice2008@163.com。最后祝讀者讀書快樂!
  
  編著者
  
 
  
內容簡介:

  本書全面介紹了如何使用Java Web中的流行技術開發Java EE應用程序,書中對JSP+Servlet+JavaBean和Struts 2+Spring+Hibernate這兩種解決方案進行了詳細介紹。另外,為了讓讀者更加直觀、高效地學習,作者專門為本書錄制了近20小時多媒體教學視頻。這些視頻與本書涉及的源程序及贈送的進階學習視頻和源代碼一起收錄于配書DVD光盤中。
  本書共28章,分為5篇。主要內容包括:搭建Java Web開發環境;掌握Java Web技術基礎,重點介紹Web客戶端技術和JSP+Servlet+JavaBean解決方案;深入剖析Struts 2框架技術,重點介紹攔截器、類型轉換、輸入校驗、上傳和下載文件的各種標簽和Struts 2對AJAX的支持等;詳細講解Hibernate框架技術,重點介紹會話、映射、標準查詢API、HQL、事務管理和鎖等;全面介紹Spring框架技術,重點介紹Ioc容器、裝配Java Bean、Jdbc和Hibernate模板、事務管理和Spring AOP等;最后詳細介紹了兩個利用Struts 2+Spring+Hibernate解決方案開發實際項目應用的完整過程。
  本書適合廣大從事Java Web開發工作的技術人員和對SSH開發感興趣的人員閱讀,尤其是具有一定Web開發經驗的技術人員,也適合廣大大中專院校的學生作為軟件開發的實踐讀物進行閱讀。

目錄:

第1篇 Web開發基礎篇
第1章 搭建開發環境( 教學視頻:23分鐘) 2
1.1 各種軟件和框架的版本 2
1.2 下載與安裝JDK 7 2
1.3 下載與安裝Eclipse 4 3
1.4 下載與安裝MyEclipse 10 4
1.5 下載與安裝Eclipse IDE for Java EE Developers 5
1.6 下載與安裝Tomcat 7 5
1.7 在MyEclipse中配置Tomcat 7
1.8 在Eclipse IDE for Java EE Developers中配置Tomcat 8
1.9 下載與安裝MySQL 5數據庫 8
1.10 下載與安裝數據庫客戶端軟件SQLyog 9
1.11 小結 10
1.12 實戰練習 10
第2章 Java Web應用開發基礎( 教學視頻:14分鐘) 11
2.1 Web技術的發展 11
2.2 了解Java Web技術 14
2.2.1 認識Java Web程序的基本組成 14
2.2.2 認識Java Web程序的目錄結構 14
2.2.3 了解Java Web程序的配置文件 15
2.3 了解MVC模式與MVC框架 15
2.3.1 認識JSP模型1和JSP模型2 15
2.3.2 認識Web應用程序的基礎服務 16
2.3.3 MVC模式概述 17
2.3.4 了解常用的MVC框架 18
2.4 小結 19
2.5 實戰練習 19
第3章 Web開發必會的客戶端技術( 教學視頻:82分鐘) 20
3.1 學習客戶端技術的開發工具 20
3.1.1 在MyEclipse中使用HTML技術 20
3.1.2 在MyEclipse中使用JavaScript技術 21
3.1.3 在MyEclipse中使用CSS技術 22
3.2 學習超文本標簽語言HTML 23
3.2.1 HTML基本構成 24
3.2.2 HTML基本標簽——段落格式設置標簽 25
3.2.3 HTML基本標簽——超級鏈接標簽 26
3.2.4 HTML基本標簽——圖像標簽 27
3.2.5 HTML基本標簽——表格標簽 29
3.2.6 HTML基本標簽——框架標簽 30
3.2.7 HTML基本標簽——表單標簽 32
3.3 學習JavaScript技術 34
3.3.1 實例:編寫第一個JavaScript程序:Greet 34
3.3.2 學習變量 35
3.3.3 學習原始類型 36
3.3.4 掌握類型轉換 40
3.3.5 學習函數與函數調用 42
3.3.6 學習類和對象 44
3.4 其他客戶端技術 46
3.4.1 了解DOM 46
3.4.2 獲得HTML元素的3種方法 48
3.4.3 實例:圖像自動切換 50
3.4.4 了解正則表達式 52
3.4.5 實例:表格排序 53
3.5 學習CSS技術 56
3.5.1 了解CSS 56
3.5.2 在Style屬性中定義樣式 57
3.5.3 在HTML中定義樣式 57
3.5.4 在外部文件中定義樣式 58
3.5.5 實現樣式的繼承 59
3.6 學習AJAX技術 59
3.6.1 了解AJAX技術 59
3.6.2 實例:使用XMLHttpRequest獲得Web資源 60
3.6.3 實例:使用XMLHttpRequest跨域訪問Web資源 61
3.6.4 實例:AJAX的3種交換數據方法 62
3.7 小結 64
3.8 實戰練習 65
第4章 Java Web的核心技術——Servlet( 教學視頻:79分鐘) 66
4.1 編寫Servlet的Helloworld程序 66
4.1.1 實例:用MyEclipse工具編寫第一個Servlet程序——Helloworld 66
4.1.2 實例:手工編寫第一個Servlet程序——Helloworld 70
4.2 學習Servlet技術 72
4.2.1 配置Tomcat 7服務器的數據庫連接池 72
4.2.2 實例:通過數據庫連接池連接MySQL數據庫 74
4.2.3 實例:處理客戶端HTTP GET請求——doGet方法 76
4.2.4 實例:處理客戶端HTTP POST請求——doPost方法 77
4.2.5 實例:處理客戶端各種請求——service方法 78
4.2.6 實例:初始化(init)和銷毀(destroy)Servlet 80
4.2.7 實例:輸出字符流響應消息——PrintWriter類 82
4.2.8 實例:輸出字節流響應消息——ServletOutputStream類 83
4.2.9 實例:包含Web資源——RequestDispatcher.include方法 84
4.2.10 實例:轉發Web資源——RequestDispatcher.forward方法 86
4.3 掌握HttpServletResponse類 88
4.3.1 產生狀態響應碼 88
4.3.2 設置響應消息頭 89
4.3.3 實例:驗證響應消息頭設置情況 91
4.4 掌握HttpServletRequest類 92
4.4.1 獲取請求行消息 92
4.4.2 獲取網絡連接消息 93
4.4.3 獲取請求頭消息 94
4.5 處理Cookie 94
4.5.1 什么是Cookie 94
4.5.2 認識操作Cookie的方法 95
4.5.3 實例:通過Cookie技術讀寫客戶端信息 96
4.5.4 實例:通過Cookie技術讀寫復雜數據 98
4.6 處理Session 100
4.6.1 什么是Session 100
4.6.2 認識操作Session的方法 101
4.6.3 創建Session對象 102
4.6.4 實例:通過Cookie跟蹤Session 103
4.6.5 實例:通過重寫URL跟蹤Session 104
4.7 解決Web開發的亂碼問題 106
4.7.1 認識Java語言編碼原理 106
4.7.2 實例:解決輸出亂碼問題 108
4.7.3 實例:解決服務端程序讀取中文請求消息的亂碼問題 110
4.7.4 實例:用AJAX技術發送和接收中文信息 112
4.7.5 實例:實現請求消息頭和響應消息頭中轉輸中文 115
4.8 小結 116
4.9 實戰練習 117
第5章 JSP技術( 教學視頻:62分鐘) 119
5.1 通過MyEclipse工具編寫第一個JSP程序 119
5.1.1 實例:編寫顯示服務器當前時間的JSP程序 119
5.1.2 調試JSP程序 122
5.1.3 改變JSP的訪問路徑和擴展名 123
5.1.4 手動發布JSP程序 124
5.2 了解JSP的運行原理 124
5.2.1 了解Tomcat處理JSP頁過程 124
5.2.2 分析由JSP生成的Servlet代碼 127
5.3 學習JSP基本語法 130
5.3.1 學習JSP表達式 131
5.3.2 實現在JSP中嵌入Java代碼 131
5.3.3 學習JSP聲明 133
5.3.4 學習JSP表達式語言(EL) 135
5.3.5 實例:利用EL函數替換HTML中的特殊字符 137
5.3.6 學習JSP頁面中的注釋 140
5.4 學習JSP指令 140
5.4.1 了解JSP指令 140
5.4.2 JSP指令page 141
5.4.3 JSP指令include 147
5.5 學習JSP內置對象 149
5.5.1 內置對象out 149
5.5.2 內置對象pageContext 151
5.5.3 其他內置對象 152
5.6 學習JSP標簽 154
5.6.1 包含標簽 155
5.6.2 轉發標簽 157
5.6.3 傳參標簽 157
5.6.4 創建Bean標簽 158
5.6.5 設置屬性值標簽 160
5.6.6 獲取屬性值標簽 162
5.7 學習JSP的標準標簽庫(JSTL) 163
5.7.1 了解JSTL 163
5.7.2 JSTL中的條件標簽 165
5.7.3 JSTL中的循環標簽 167
5.8 小結 170
5.9 實戰練習 170
第6章 用Servlet和JSP實現注冊登錄系統( 教學視頻:28分鐘) 172
6.1 系統概述 172
6.1.1 系統功能簡介 172
6.1.2 系統總體結構 173
6.2 設計數據庫 173
6.3 實現系統的基礎類 174
6.3.1 實現訪問數據庫的DBServlet類 174
6.3.2 實現MD5加密 176
6.3.3 實現圖形驗證碼 177
6.4 實現注冊系統 179
6.4.1 實現注冊Servlet類 179
6.4.2 實現注冊系統的主頁面 181
6.4.3 實現結果JSP頁面 184
6.5 實現登錄系統 185
6.5.1 實現登錄Servlet 185
6.5.2 實現登錄系統主頁面 187
6.6 小結 188
6.7 實戰練習 188
第2篇 Struts 2篇
第7章 編寫Struts 2第一個程序( 教學視頻:28分鐘) 192
7.1 Struts 2的MVC模式 192
7.2 Struts 2的體系結構 193
7.2.1 工作流程 193
7.2.2 配置文件 193
7.2.3 控制器 195
7.3 Struts 2實例:圖書查詢系統 196
7.3.1 下載和安裝Struts 2 196
7.3.2 編寫數據處理類 197
7.3.3 編寫和配置Action類 198
7.3.4 編寫顯示查詢結果的JSP頁面 200
7.3.5 編寫輸入查詢信息的JSP頁面 202
7.4 小結 203
7.5 實戰練習 203
第8章 Struts 2進階( 教學視頻:72分鐘) 205
8.1 認識Struts 2的基本配置 205
8.1.1 配置web.xml 205
8.1.2 配置struts.xml 207
8.1.3 配置struts.properties 210
8.1.4 學習Struts 2的DTD 213
8.2 深入認識Struts 2的配置元素 215
8.2.1 配置Bean 216
8.2.2 配置常量(constant) 217
8.2.3 配置包含(include) 219
8.2.4 配置包(package) 219
8.2.5 配置命名空間 220
8.2.6 配置攔截器 222
8.3 掌握Struts 2注釋(Annotation) 223
8.3.1 設置當前包的父包——ParentPackage注釋 223
8.3.2 指定當前包的命名空間——Namespace注釋 224
8.3.3 指定當前Action結果——Results與Result注釋 224
8.3.4 實例:通過注釋配置Action 225
8.4 掌握Struts 2的Action 228
8.4.1 了解Action類的getter和setter方法 228
8.4.2 實現Action接口 229
8.4.3 繼承ActionSupport類 231
8.4.4 實例:用ActionContext訪問Servlet API 232
8.4.5 實例:通過aware攔截器訪問Servlet API 237
8.4.6 實例:利用動態方法處理多個提交請求 239
8.4.7 實例:利用method屬性處理多個提交請求 241
8.4.8 使用通配符 242
8.4.9 設置默認的Action 245
8.5 配置跳轉結果 246
8.5.1 了解Struts 2的配置結果 246
8.5.2 Struts 2支持的處理結果類型 247
8.5.3 配置帶有通配符的結果 249
8.5.4 通過請求參數指定結果 250
8.6 掌握模型驅動 252
8.6.1 了解模型驅動——ModelDriven 252
8.6.2 實例:使用模型驅動改進登錄程序 254
8.7 處理Struts 2中的異常 256
8.7.1 了解Struts 2處理異常的原理 257
8.7.2 實例:登錄系統的異常處理 258
8.8 小結 261
8.9 實戰練習 261
第9章 Struts 2的攔截器( 教學視頻:32分鐘) 262
9.1 理解攔截器 262
9.1.1 掌握攔截器的實現原理 262
9.1.2 實例:模擬Struts 2實現一個攔截器系統 265
9.2 配置Struts 2攔截器 270
9.2.1 配置攔截器 270
9.2.2 使用攔截器 272
9.2.3 設置默認攔截器 273
9.3 實例:自定義攔截器 275
9.3.1 編寫攔截器類 276
9.3.2 配置自定義攔截器 277
9.4 理解攔截器的高級技術 279
9.4.1 過濾指定的方法 279
9.4.2 攔截器的執行順序 282
9.4.3 應用結果監聽器 284
9.5 理解Struts 2內建的攔截器 287
9.5.1 認識內建攔截器 287
9.5.2 掌握內建攔截器的配置 288
9.6 實例:編寫權限驗證攔截器 291
9.6.1 編寫權限驗證攔截器類 291
9.6.2 配置權限控制攔截器 292
9.7 小結 294
9.8 實戰練習 294
第10章 Struts 2的類型轉換( 教學視頻:48分鐘) 295
10.1 為什么要進行類型轉換 295
10.1.1 了解客戶端和服務端之間的數據處理過程 295
10.1.2 了解傳統的類型轉換 296
10.2 使用Struts 2類型轉換器 299
10.2.1 了解Struts 2內建的類型轉換器 300
10.2.2 實例:實現基于OGNL的類型轉換器 303
10.2.3 配置全局類型轉換器 307
10.2.4 實例:實現基于Struts 2的類型轉換器 309
10.2.5 實例:實現數組類型轉換器 311
10.2.6 實例:實現集合類型轉換器 314
10.3 實例:使用OGNL表達式進行類型轉換 316
10.4 Struts 2對Collection和Map的支持 319
10.4.1 指定集合元素的類型 319
10.4.2 掌握Set和索引屬性 321
10.5 掌握類型轉換的錯誤處理 322
10.6 小結 323
10.7 實戰練習 324
第11章 Struts 2的輸入校驗( 教學視頻:39分鐘) 326
11.1 了解傳統的數據校驗方法 326
11.1.1 用JavaScript進行客戶端校驗 326
11.1.2 手工進行服務端校驗 331
11.2 了解Struts 2所支持的數據校驗 334
11.2.1 了解使用validate方法校驗數據的原理 334
11.2.2 實例:使用validate方法進行輸入校驗 336
11.2.3 實例:使用validateXxx方法進行輸入校驗 340
11.2.4 掌握Struts 2的輸入校驗流程 342
11.3 使用Validation框架進行輸入校驗 344
11.3.1 實例:服務端校驗 344
11.3.2 使用字段校驗器和非字段校驗器 346
11.3.3 實現國際化錯誤提示信息 348
11.3.4 實例:客戶端校驗 350
11.3.5 了解校驗文件的命名規則 354
11.3.6 了解短路校驗器 356
11.4 Validation框架的內建校驗器 358
11.4.1 使用注冊和引用校驗器 358
11.4.2 使用轉換(conversion)校驗器 359
11.4.3 使用日期(date)校驗器 360
11.4.4 使用雙精度浮點數(double)校驗器 361
11.4.5 使用郵件地址(email)校驗器 362
11.4.6 使用表達式(expression)校驗器 363
11.4.7 使用字段表達式(fieldexpression)校驗器 363
11.4.8 使用整數(int)校驗器 364
11.4.9 使用正則表達式(regex)校驗器 365
11.4.10 使用必填(required)校驗器 366
11.4.11 使用必填字符串(requiredstring)校驗器 366
11.4.12 使用字符串長度(stringlength)校驗器 367
11.4.13 使用網址(URL)校驗器 368
11.4.14 使用visitor校驗器 368
11.5 小結 372
11.6 實戰練習 372
第12章 文件的上傳和下載( 教學視頻:44分鐘) 374
12.1 了解文件上傳原理 374
12.1.1 掌握表單數據的編碼方式 374
12.1.2 掌握applicaiton/x-www.form-urlencoded編碼方式 375
12.1.3 掌握multipart/form-data編碼方式 378
12.2 使用Commons-FileUpload上傳文件 380
12.2.1 下載和安裝Commons-FileUpload組件 381
12.2.2 實例:上傳單個文件 381
12.2.3 實例:上傳任意多個文件 384
12.3 實例:通過Struts 2實現文件上傳 387
12.3.1 了解Struts 2對上傳文件組件的支持 387
12.3.2 編寫上傳文件的JSP頁 388
12.3.3 編寫上傳文件的Action類 388
12.3.4 配置上傳文件的Action類 390
12.3.5 手工過濾上傳文件的類型 391
12.3.6 用fileUpload攔截器過濾上傳文件的類型 394
12.4 實例:通過Struts 2實現上傳多個文件 395
12.4.1 實例:用數組上傳固定數目的文件 395
12.4.2 實例:用List上傳任意數目的文件 399
12.5 學習文件下載 400
12.5.1 解決下載文件的中文問題 401
12.5.2 通過stream結果下載文件 401
12.5.3 控制下載文件的授權 404
12.6 小結 405
12.7 實戰練習 405
第13章 程序的國際化( 教學視頻:27分鐘) 407
13.1 了解國際化基礎 407
13.1.1 程序為什么需要國際化 407
13.1.2 學習編寫Java國際化中的資源文件 408
13.1.3 了解Java支持的語言和國家 409
13.1.4 實現資源文件的中文支持 410
13.1.5 編寫國際化程序 411
13.1.6 編寫帶占位符的國際化信息 413
13.1.7 實例:使用資源文件編寫國際化程序 415
13.1.8 掌握Java國際化中的資源類 417
13.1.9 實例:使用資源類編寫國際化程序 418
13.2 了解Struts 2的國際化基礎 420
13.2.1 學習Struts 2中的全局資源文件 420
13.2.2 實現在Struts 2中訪問國際化信息 420
13.2.3 實現在Struts 2中輸出帶占位符的國際化信息 423
13.3 學習資源文件的作用范圍和加載順序 426
13.3.1 掌握包范圍資源文件 426
13.3.2 掌握接口范圍資源文件 428
13.3.3 掌握Action基類范圍資源文件 429
13.3.4 掌握Action范圍資源文件 431
13.3.5 掌握臨時資源文件 432
13.3.6 掌握加載資源文件的順序 433
13.4 實例:編寫支持多國語言的Web應用程序 434
13.4.1 通過i18n攔截器實現國際化 435
13.4.2 為register.jsp頁面增加語言選擇列表 436
13.4.3 將register.jsp頁面映射成Action 438
13.5 小結 439
13.6 實戰練習 439
第14章 Struts 2的標簽庫( 教學視頻:67分鐘) 441
14.1 認識Struts 2標簽基礎 441
14.1.1 了解Struts 2標簽的分類 441
14.1.2 使用Struts 2標簽 442
14.1.3 掌握Struts 2中的OGNL表達式 444
14.1.4 通過OGNL表達式訪問內置對象 447
14.1.5 通過OGNL表達式操作集合 448
14.1.6 掌握Lamdba(λ)表達式 450
14.2 控制標簽 451
14.2.1 條件邏輯控制標簽if/elseif/else 451
14.2.2 數組、集合迭代標簽iterator 454
14.2.3 將集合以追加方式合并為新集合的標簽append 458
14.2.4 實現字符串分割成多個子串的標簽generator 460
14.2.5 實現將集合以交替方式合并為新集合的標簽merge 463
14.2.6 獲得集合子集標簽的subset 464
14.2.7 對集合進行排序的標簽sort 466
14.3 數據標簽 468
14.3.1 在JSP頁面中直接訪問Action的標簽action 468
14.3.2 創建JavaBean的對象實例標簽bean 470
14.3.3 格式化日期/時間的標簽date 472
14.3.4 顯示調試信息的標簽debug 474
14.3.5 包含Web資源的標簽include 475
14.3.6 為其他的標簽提供參數的標簽param 476
14.3.7 輸出指定值的標簽property 476
14.3.8 將指定值放到ValueStack棧頂的標簽push 477
14.3.9 將某個值保存在指定范圍的標簽set 478
14.3.10 生成URL地址的標簽url 480
14.4 學習表單標簽 482
14.4.1 了解表單標簽的通用屬性 482
14.4.2 掌握表單標簽的name和value屬性 483
14.4.3 與表單相關的標簽:form、submit和reset標簽 485
14.4.4 生成多個復選框的標簽checkboxlist 485
14.4.5 實現組合單行文本框和下拉列表框的標簽combobox 488
14.4.6 實現組合文本框和日期、時間選擇框的標簽datetimespicker 490
14.4.7 生成級聯列表框的標簽doubleselect 493
14.4.8 添加CSS和JavaScript的標簽head 495
14.4.9 生成可交互的兩個列表框的標簽optiontransferselect 495
14.4.10 生成列表框的標簽select 497
14.4.11 生成下拉列表框選項組的標簽optgroup 498
14.4.12 生成多個單選框的標簽radio 500
14.4.13 防止多次提交表單的標簽token 501
14.4.14 生成高級列表框列表的標簽updownselect 501
14.4.15 其他常見的表單標簽 503
14.5 學習非表單標簽 503
14.5.1 顯示字段錯誤信息的標簽fielderror 503
14.5.2 顯示動作錯誤和動作消息的標簽actionerror和actionmessage 504
14.5.3 調用模板的標簽component 505
14.6 小結 507
14.7 實戰練習 507
第15章 Struts 2對AJAX的支持( 教學視頻:56分鐘) 508
15.1 了解Struts 2的AJAX主題 508
15.2 基于AJAX的輸入校驗 510
15.2.1 下載和安裝DWR框架 510
15.2.2 編寫具有AJAX校驗功能的注冊頁面 511
15.2.3 編寫Action類 512
15.2.4 設置校驗規則 513
15.3 在表單中使用AJAX 515
15.3.1 實現可異步提交的表單 515
15.3.2 實現Action類 515
15.3.3 實現結果處理頁面 516
15.3.4 執行JavaScript代碼 517
15.4 發布-訂閱(pub-sub)事件模型 519
15.4.1 了解pub-sub事件模型的原理 519
15.4.2 實現pub-sub事件模型 520
15.4.3 阻止請求服務端資源 523
15.5 使用Struts 2中的AJAX標簽 524
15.5.1 掌握div標簽的基本應用 524
15.5.2 通過div標簽執行JavaScript 527
15.5.3 手動控制div標簽的更新 529
15.5.4 發送異步請求的標簽submit標簽 532
15.5.5 異步提交請求的鏈接a標簽 534
15.5.6 自運完成功能的文本框autocompleter標簽 537
15.5.7 生成Tab頁的標簽tabbedPanel標簽 543
15.5.8 實現樹節點和樹的組件:treenode和tree標簽 547
15.6 使用JSON插件實現AJAX 549
15.6.1 下載和安裝JSON插件 549
15.6.2 下載和安裝prototype.js 549
15.6.3 實現Action類 550
15.6.4 在JSP頁面中通過Prototype請求Action 551
15.7 小結 553
15.8 實戰練習 553
第16章 用Struts 2實現注冊登錄系統( 教學視頻:26分鐘) 555
16.1 系統總體結構 555
16.2 實現DAO層 555
16.2.1 實現DAOSupport類 556
16.2.2 實現UserDAO接口 557
16.2.3 實現UserDAOImpl類 557
16.3 實現Action類 559
16.3.1 實現模型類(User) 559
16.3.2 實現LoginAction類 560
16.3.3 實現RegisterAction類 562
16.4 實現輸入校驗 563
16.4.1 校驗登錄頁面 563
16.4.2 校驗注冊頁面 564
16.5 實現表現層頁面 565
16.5.1 實現登錄頁面(login.jsp) 565
16.5.2 實現注冊頁面(register.jsp) 567
16.5.3 實現主頁面(main.jsp) 569
16.6 實現其他的功能 569
16.6.1 使用Action類生成驗證碼圖像 569
16.6.2 使用攔截器驗證頁面訪問權限 572
16.7 小結 573
16.8 實戰練習 574
第3篇 Hibernate篇
第17章 Hibernate的Helloworld程序( 教學視頻:33分鐘) 579
17.1 關于Hibernate概述 579
17.1.1 為什么要使用ORM 579
17.1.2 Hibernate和EJB的關系 580
17.2 在應用程序中使用Hibernate 4 580
17.2.1 MyEclipse對Hibernate 4的支持 581
17.2.2 下載和安裝新版本的Hibernate 4 583
17.3 實現第1個Hibernate程序 584
17.3.1 開發Hibernate程序的基本步驟 584
17.3.2 建立數據表 585
17.3.3 建立Hibernate配置文件 585
17.3.4 建立會話工廠(SessionFactory)類 586
17.3.5 建立實體Bean和Struts 2的模型類 589
17.3.6 建立映射文件 589
17.3.7 建立添加記錄的Action類 590
17.3.8 建立錄入信息的JSP頁面 592
17.4 小結 594
17.5 實戰練習 594
第18章 實現Hibernate基本配置( 教學視頻:32分鐘) 595
18.1 用傳統的方法配置Hibernate 595
18.1.1 用XML文件配置Hibernate 595
18.1.2 用屬性文件配置Hibernate 598
18.1.3 用編程的方式配置Hibernate 598
18.1.4 學習Hibernate框架的配置屬性 599
18.1.5 掌握SQL方言(Dialect) 603
18.1.6 使用JNDI數據源 604
18.1.7 掌握配置映射文件 605
18.2 使用注釋(Annotations)配置Hibernate 606
18.2.1 了解Hibernate注釋 606
18.2.2 安裝Hibernate注釋 606
18.2.3 使用@Entity注釋實體Bean 606
18.2.4 使用@Table注釋實體Bean 607
18.2.5 使用@Id注釋主鍵 607
18.2.6 使用@GenericGenerator注釋產生主鍵值 609
18.2.7 使用@Basic和@Transient注釋 609
18.2.8 更高級的Hibernate注釋 610
18.3 使用注釋重新實現添加信息程序 610
18.3.1 使用注釋配置實體Bean 610
18.3.2 在Hibernate配置文件中指定實體Bean的位置 611
18.3.3 使用AnnotationConfiguration類處理annotation.cfg.xml文件 612
18.3.4 通過AnnotationSessionFactory類獲得Session對象 613
18.4 小結 614
18.5 實戰練習 614
第19章 Hibernate的會話與O/R映射( 教學視頻:61分鐘) 616
19.1 會話(Session)的基本應用 616
19.1.1 保存持久化對象 616
19.1.2 判斷持久化對象之間的關系 617
19.1.3 裝載持久化對象 618
19.1.4 刷新持久化對象 620
19.1.5 更新持久化對象 621
19.1.6 刪除持久化對象 622
19.2 建立O/R映射 622
19.2.1 映射主鍵 623
19.2.2 映射復合主鍵 623
19.2.3 實例:主鍵和復合主鍵的查詢和更新 624
19.2.4 映射普通屬性 630
19.2.5 建立組件(Component)映射 630
19.2.6 實例:組件映射的應用 631
19.2.7 基于注釋的組件映射 635
19.2.8 建立多對一(many-to-one)單向關聯關系 636
19.2.9 實例:多對一關系的演示 637
19.2.10 基于注釋的多對一關系映射 641
19.2.11 建立一對多(one-to-many)的雙向關聯關系 641
19.2.12 實例:一對多雙向關聯的演示 642
19.2.13 基于注釋的一對多映射 645
19.2.14 建立基于外鍵的一對一(one-to-one)的關系映射 646
19.2.15 實例:基于外鍵的一對一關系演示 646
19.2.16 建立基于主鍵的一對一的關系映射 650
19.2.17 實例:基于主鍵的一對一關系映射 650
19.3 小結 654
19.4 實戰練習 654
第20章 Hibernate的查詢與更新技術( 教學視頻:43分鐘) 657
20.1 學習標準(Criteria)查詢API 657
20.1.1 實例:一個簡單的例子 657
20.1.2 設置查詢的約束條件 658
20.1.3 對查詢結果進行分頁 661
20.1.4 實例:實現Web分頁功能 662
20.1.5 實現只獲得一個持久化對象 665
20.1.6 對查詢結果進行排序 666
20.1.7 實現多個Criteria之間的關聯 666
20.1.8 實現聚合和分組查詢 667
20.1.9 使用QBE(Query By Example) 669
20.2 掌握HQL和SQL技術 671
20.2.1 實例:使用HQL的第一個例子 671
20.2.2 使用From子句簡化實體Bean類名 672
20.2.3 使用Select子句選擇返回屬性 673
20.2.4 使用Where子句指定條件 674
20.2.5 使用命名參數 675
20.2.6 使用Query進行分頁 677
20.2.7 實例:使用HQL實現Web分頁功能 677
20.2.8 使用HQL進行排序和分組 678
20.2.9 實現關聯查詢 679
20.2.10 實現聚合函數查詢 681
20.2.11 使用Update和Delete語句更新持久化對象 682
20.2.12 使用Insert語句插入記錄 683
20.2.13 掌握命名查詢 684
20.2.14 使用SQL查詢 685
20.3 小結 687
20.4 實戰練習 687
第21章 Hibernate的高級技術( 教學視頻:40分鐘) 689
21.1 什么是事務 689
21.1.1 事務的特性 689
21.1.2 認識事務的隔離等級 690
21.1.3 Hibernate所支持的事務管理 691
21.1.4 基于JDBC的事務管理 691
21.1.5 基于JTA的事務管理 692
21.2 學習鎖(Locking) 692
21.2.1 認識悲觀鎖(Pessimistic Locking) 693
21.2.2 認識樂觀鎖(Optimistic Locking) 694
21.3 應用查詢緩存(Query Cache) 696
21.4 學習攔截器和事件 697
21.4.1 了解攔截器(Interceptors) 697
21.4.2 實例:編寫一個Hibernate攔截器 698
21.4.3 了解事件(Events) 702
21.4.4 實例:編寫和注冊事件類 703
21.5 學習過濾器 705
21.6 小結 706
21.7 實戰練習 707
第4篇 Sping篇
第22章 Spring的第一個Helloworld程序( 教學視頻:16分鐘) 710
22.1 Spring簡介 710
22.1.1 了解Spring的主要特性 710
22.1.2 學習Spring的核心技術 711
22.2 在應用程序中使用Spring 712
22.2.1 MyEclipse 10.6對Spring的支持 712
22.2.2 下載和安裝Spring 713
22.3 實例:開發一個Helloworld程序 714
22.3.1 編寫HelloService接口 714
22.3.2 編寫HelloServiceImpl類 715
22.3.3 裝配HelloServiceImpl類 715
22.3.4 通過裝配Bean的方式獲得HelloService對象 716
22.4 小結 716
22.5 實戰練習 717
第23章 反向控制(Ioc)與裝配JavaBean( 教學視頻:30分鐘) 718
23.1 為什么要使用反向控制(Ioc) 718
23.1.1 什么是依賴注入 718
23.1.2 傳統解決方案的缺陷 719
23.1.3 通過Ioc降低耦合度 720
23.2 手動裝配JavaBean 721
23.2.1 掌握裝配Bean的方法 721
23.2.2 掌握與Bean相關的接口 722
23.2.3 了解標簽的常用屬性 723
23.2.4 裝配普通屬性 724
23.2.5 裝配集合屬性 727
23.2.6 設置屬性值為null 731
23.2.7 裝配構造方法 731
23.3 自動裝配JavaBean 734
23.4 分散配置 736
23.5 定制屬性編輯器 738
23.6 小結 742
23.7 實戰練習 742
第24章 Spring中的數據庫技術( 教學視頻:25分鐘) 744
24.1 獲得DataSource 744
24.1.1 通過JNDI獲得DataSource 744
24.1.2 從第三方的連接池獲得DataSource 745
24.1.3 使用DriverManagerDataSource 746
24.2 在Spring中使用JDBC 746
24.2.1 裝配JdbcTemplate類 746
24.2.2 向數據庫中寫數據 747
24.2.3 從數據庫中讀數據 749
24.2.4 調用存儲過程 752
24.3 實現自增鍵 753
24.4 Spring的異常處理 754
24.5 在Spring中使用Hibernate 755
24.5.1 集成Spring和Hibernate 755
24.5.2 使用HibernateTemplate 757
24.6 小結 758
24.7 實戰練習 758
第25章 Spring的其他高級技術( 教學視頻:39分鐘) 760
25.1 Spring AOP 760
25.1.1 了解AOP基本概念 760
25.1.2 了解AOP術語 761
25.1.3 掌握4種通知(Advice)的作用 762
25.1.4 通過Advisor指定切入點 768
25.1.5 使用控制流切入點 771
25.2 學習Spring的事務管理 773
25.2.1 實例:使用程序控制事務 773
25.2.2 掌握聲明式事務 775
25.2.3 了解事務屬性的種類 778
25.2.4 設置事務屬性 779
25.2.5 設置特定方法的事務屬性 780
25.3 實例:建立和訪問RMI服務 782
25.4 實例:發送E-mail 784
25.5 調度任務 786
25.6 小結 788
25.7 實戰練習 788
第5篇 綜合實例篇
第26章 Struts 2與Hibernate、Spring的整合( 教學視頻:12分鐘) 792
26.1 整合Struts 2和Hibernate框架 792
26.1.1 整合的思路 792
26.1.2 整合后的系統層次 793
26.1.3 實現數據訪問層 793
26.1.4 實現業務邏輯層 795
26.1.5 實現Struts 2和Hibernate共享實體Bean 797
26.2 整合Spring框架 798
26.2.1 裝配數據訪問層 799
26.2.2 裝配業務邏輯層 800
26.2.3 使用Struts 2的Spring插件 801
26.3 小結 802
26.4 實戰練習 802
第27章 網絡硬盤( 教學視頻:57分鐘) 804
27.1 了解系統功能 804
27.1.1 系統功能簡介 804
27.1.2 系統架構設計 806
27.2 實現數據庫設計 806
27.3 實現持久對象層 808
27.3.1 實現用戶實體Bean 809
27.3.2 實現目錄實體Bean 810
27.3.3 實現文件實體Bean 811
27.3.4 映射MySQL存儲過程 812
27.3.5 配置hibernate.cfg.xml 813
27.4 實現數據訪問層 814
27.4.1 實現DAOSupport類 814
27.4.2 實現UserDAO接口和UserDAOImpl類 814
27.4.3 實現DirectoryDAO接口和DirectoryDAOImpl類 816
27.4.4 實現FileDAO接口和FileDAOImpl類 817
27.5 實現業務邏輯層 819
27.5.1 實現UserService接口和UserServiceImpl類 819
27.5.2 實現DirectoryService接口和DirectoryServiceImpl類 820
27.5.3 實現FileService接口和FileServiceImpl類 822
27.5.4 實現服務管理類 825
27.5.5 配置applicationContext.xml 826
27.6 實現Web表現層 828
27.6.1 實現基礎動作類(BaseAction) 829
27.6.2 實現用戶登錄頁面和處理登錄的Action類 830
27.6.3 實現注冊登錄頁面和處理注冊的Action類 832
27.6.4 網絡硬盤主頁 833
27.6.5 建立目錄 834
27.6.6 文件上傳 836
27.6.7 文件和目錄下載 836
27.6.8 使用攔截器控制頁面訪問權限 841
27.6.9 其他的功能 842
27.7 小結 842
第28章 論壇系統( 教學視頻:50分鐘) 843
28.1 系統功能設計 843
28.2 實現數據庫設計 844
28.3 實現持久對象層 846
28.3.1 實現主題實體Bean 846
28.3.2 實現回復實體Bean 848
28.3.3 配置hibernate.cfg.xml 849
28.4 實現數據訪問層 850
28.4.1 實現TopicDAO接口和TopicDAOImpl類 850
28.4.2 實現ReviewDAO接口和ReviewDAOImpl類 851
28.5 實現業務邏輯層 852
28.5.1 實現TopicService接口和TopicServiceImpl類 852
28.5.2 實現ReviewService接口和ReviewServiceImpl類 855
28.5.3 實現服務管理類 857
28.5.4 配置applicationContext.xml 857
28.6 整合FCKEditor內容編輯組件 858
28.6.1 安裝FCKEditor 858
28.6.2 配置FCKEditor 858
28.6.3 修改FCKEditor自帶的Servlet 862
28.6.4 生成FCKEditor的客戶端腳本 862
28.7 實現Web表現層 863
28.7.1 瀏覽主題列表 863
28.7.2 發布新主題 866
28.7.3 瀏覽某個主題和它的回復內容 867
28.7.4 回復當前主題 868
28.8 小結 869
 
  
  
  
  
序: