內容簡介
全書分為9篇,內容層次清晰,難度循序漸進。第1篇為入門篇,內容包括Java Web開發概述等;第2篇為基礎篇,內容包括Servlet技術、JSP技術、會話跟蹤、過濾器Filter、監聽器Listener等;第3篇為高級篇,內容包括JSTL標籤庫的使用、如何自定義標籤、資源國際化、資料庫概述、JDBC詳解、XML概述等;第4篇為Struts框架篇,內容不僅包括Struts 1.x的內容,也包括Struts 2.x中的內容;第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)。
《Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernate+Spring)》附1張DVD光碟,內容為《Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernate+Spring)》汲及的原始碼和Java Web學習視頻。
《Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernate+Spring)》內容全面,結構清晰,注重實戰,非常適合Java Web開發人員學習使用,同時也可以作為軟體公司的案頭必備參考書。
作品目錄
第1篇 入門篇
第1章 Java Web開發概述 2
1.1 Web相關概念 2
1.1.1 胖客戶端程式RCP 2
1.1.2 瘦客戶端程式TCP 2
1.1.3 B/S與C/S結構 3
1.2 Web開發背景知識 3
1.2.1 Web訪問基本原理 3
1.2.2 HTTP超文本傳輸協定 4
1.2.3 Web瀏覽器 5
1.2.4 Web伺服器 5
1.3 Web開發技術發展歷史 6
1.3.1 傳統的Web伺服器模式開發 6
1.3.2 動態展現頁面技術 6
1.3.3 CGI實現頁面的動態生成 6
1.3.4 Java Servlet:改進的CGI 7
1.3.5 JSP:Servlet的模板 8
1.3.6 JSP基本原理 9
1.4 本章小結 10
第2章 搭建Java Web開發環境 11
2.1 Java Web開發環境概述 11
2.1.1 開發工具包JDK 11
2.1.2 集成開發環境IDE 12
2.1.3 Java伺服器 12
2.2 下載安裝Java環境 13
2.2.1 下載JDK 13
2.2.2 安裝JDK 15
2.2.3 配置環境變數 15
2.3 下載解壓Eclipse 17
2.3.1 下載Eclipse 17
2.3.2 解壓Eclipse 17
2.4 下載MyEclipse外掛程式 18
2.4.1 下載MyEclipse外掛程式 18
2.4.2 安裝MyEclipse外掛程式 19
2.4.3 啟動MyEclipse 19
2.5 下載Tomcat伺服器 20
2.5.1 下載Tomcat 20
2.5.2 解壓配置Tomcat 21
2.5.3 設定連線埠號 22
2.5.4 設定臨時域名 22
2.5.5 設定虛擬主機 23
2.6 第一個Java Web程式 24
2.6.1 新建Java Web項目 24
2.6.2 新建Servlet 25
2.7 部署到Tomcat 27
2.7.1 手工部署 27
2.7.2 MyEclipse自動部署 28
2.7.3 導出為WAR包 29
2.7.4 在MyEclipse中啟動Tomcat 30
2.7.5 調試程式debug模式 31
2.8 本章小結 34
第2篇 基礎篇
第3章 深入Servlet技術 36
3.1 HTTP協定 36
3.1.1 HTTP協定簡介 36
3.1.2 Telnet演示HTTP協定 36
3.1.3 GET方式查詢 37
3.1.4 HTTP頭數據 38
3.1.5 POST方式提交數據 38
3.1.6 其他訪問方式 38
3.2 Servlet概述 39
3.2.1 Servlet工作流程 39
3.2.2 Servlet接口 39
3.2.3 Java Web目錄結構 40
3.3 編寫Servlet 41
3.3.1 實現Servlet 41
3.3.2 配置 43
3.3.3 配置 44
3.3.4 部署Web程式 44
3.4 請求與回響 45
3.4.1 獲取request的變數 45
3.4.2 response生成圖片驗證碼 48
3.5 讀取web.xml參數 51
3.5.1 初始化參數(init-param) 52
3.5.2 上下文參數(context-param) 54
3.5.3 資源注射(@Resource) 57
3.5.4 使用JNDI獲取資源 59
3.5.5 注射數據源 59
3.6 提交表單信息 59
3.6.1 GET實現搜尋引擎 60
3.6.2 POST提交個人信息 64
3.6.3 上傳檔案客戶端 69
3.6.4 上傳檔案伺服器端 70
3.7 帶進度條的檔案上傳 72
3.7.1 工作原理 73
3.7.2 上傳進度條 73
3.7.3 上傳監聽器 74
3.7.4 監聽上傳進度 75
3.7.5 讀取上傳進度 76
3.7.6 顯示上傳進度 77
3.8 Servlet生命周期 81
3.8.1 Servlet生命周期 81
3.8.2 個稅計算器 82
3.8.3 註解@PostConstruct與註解@PreDestroy 85
3.9 Servlet之間的跳轉 86
3.9.1 轉向(Forward) 87
3.9.2 重定向(Redirect) 89
3.9.3 自動刷新(Refresh) 91
3.10 Servlet與執行緒安全 92
3.10.1 一個實例 92
3.10.2 執行緒不安全 93
3.11 本章小結 94
第4章 深入JSP技術 95
4.1 JSP簡介 95
4.1.1 JSP概述 95
4.1.2 顯示問候語 95
4.1.3 JSP工作原理 97
4.1.4 JSP生命周期 98
4.2 JSP語法 98
4.2.1 JSP元素與模板數據 98
4.2.2 JSP腳本 99
4.2.3 JSP輸出 99
4.2.4 JSP注釋 100
4.2.5 JSP方法:查詢IP位址 100
4.2.6 JSP的if語句 102
4.2.7 JSP的for循環 104
4.2.8 while循環:顯示郵件列表 105
4.2.9 JSP的return語句 106
4.2.10 JSP的break語句 107
4.3 JSP指令 108
4.3.1 page指令 109
4.3.2 include指令 110
4.3.3 taglib指令 113
4.4 JSP行為 113
4.4.1 行為 113
4.4.2 使用Java Bean(POJO) 114
4.4.3 scope實現各種計數器 117
4.4.4 嵌入Applet 119
4.4.5 行為 122
4.4.6 行為 123
4.5 JSP隱藏對象 123
4.5.1 out輸出流對象 123
4.5.2 request請求對象 124
4.5.3 response回響對象 124
4.5.4 config配置對象 125
4.5.5 session會話對象 125
4.5.6 application應用程式對象 126
4.5.7 page頁面對象 126
4.5.8 pageContext頁面上下文對象 126
4.5.9 exception異常對象 127
4.6 JSP配置 128
4.6.1 JSP配置 128
4.6.2 標籤 128
4.7 EL表達式 129
4.7.1 EL表達式 129
4.7.2 隱藏對象 130
4.7.3 EL表達式運算 131
4.8 本章小結 133
第5章 會話跟蹤 134
5.1 Cookie機制 134
5.1.1 什麼是Cookie 134
5.1.2 記錄用戶訪問次數 135
5.1.3 Cookie的不可跨域名性 138
5.1.4 Unicode編碼:保存中文 139
5.1.5 BASE64編碼:保存二進制圖片 140
5.1.6 設定Cookie的所有屬性 142
5.1.7 Cookie的有效期 144
5.1.8 Cookie的修改、刪除 145
5.1.9 Cookie的域名 145
5.1.10 Cookie的路徑 146
5.1.11 Cookie的安全屬性 146
5.1.12 JavaScript操作Cookie 147
5.1.13 案例:永久登錄 149
5.2 Session機制 152
5.2.1 什麼是Session 152
5.2.2 實現用戶登錄 153
5.2.3 Session的生命周期 155
5.2.4 Session的有效期 155
5.2.5 Session的常用方法 156
5.2.6 Session對瀏覽器的要求 156
5.2.7 URL地址重寫 157
5.2.8 Session中禁止使用Cookie 158
5.3 Session與Cookie的比較 158
5.3.1 從存取方式上比較 159
5.3.2 從隱私安全上比較 159
5.3.3 從有效期上比較 159
5.3.4 從對伺服器的負擔上比較 159
5.3.5 從瀏覽器支持上比較 160
5.3.6 從跨域名上比較 160
5.4 本章小結 160
第6章 過濾器Filter 161
6.1 Filter概述 161
6.1.1 Filter概述 161
6.1.2 Filter接口 162
6.1.3 Filter配置 163
6.2 Filter經典案例 164
6.2.1 防盜鏈Filter 164
6.2.2 字元編碼Filter 165
6.2.3 日誌記錄Filter 167
6.2.4 異常捕捉Filter 169
6.2.5 許可權驗證Filter 172
6.2.6 內容替換Filter 174
6.2.7 GZIP壓縮Filter 177
6.2.8 圖像水印Filter 182
6.2.9 快取Filter 186
6.2.10 XSLT轉換Filter 191
6.2.11 檔案上傳Filter 194
6.3 本章小結 197
第7章 監聽器Listener 198
7.1 Listener概述 198
7.1.1 Listener的概述 198
7.1.2 Listener的使用 198
7.2 Listener的分類 199
7.2.1 監聽對象的創建與銷毀 199
7.2.2 實例:監聽Session、request與servletContext 200
7.2.3 監聽對象的屬性變化 201
7.2.4 監聽Session內的對象 203
7.3 Listener使用案例 205
7.3.1 單態登錄 205
7.3.2 顯示線上用戶 209
7.4 本章小結 214
第3篇 高級篇
第8章 JSTL標籤庫 216
8.1 JSTL概述 216
8.1.1 什麼是標籤 216
8.1.2 一個標籤實例 216
8.1.3 為什麼使用標籤 217
8.1.4 JSTL標籤庫 218
8.2 JSTL的core標籤庫 218
8.2.1 標籤 218
8.2.2 標籤 219
8.2.3 、、標籤 220
8.2.4 顯示偶數 221
8.2.5 標籤遍歷List 222
8.2.6 標籤遍歷Map對象 223
8.2.7 標籤的varStatus屬性 224
8.2.8 標籤 225
8.2.9 實現計數器 226
8.2.10 標籤 228
8.2.11 捕捉異常 228
8.2.12 導入網路資源 228
8.2.13 標籤 230
8.2.14 標籤 231
8.2.15 標籤 231
8.3 JSTL的fmt標籤庫 231
8.3.1 設定編碼 232
8.3.2 顯示所有地區的數據格式 232
8.3.3 顯示全球時間 234
8.3.4 設定時區 236
8.3.5 、、資源國際化 236
8.3.6 標籤 238
8.3.7 顯示不同地區的各種數據格式 238
8.3.8 解析數字 240
8.3.9 格式化日期 241
8.3.10 解析日期 241
8.4 JSTL的fn方法庫 242
8.4.1 fn:contains()顯示用戶瀏覽器、作業系統 242
8.4.2 fn:containsIgnoreCase()方法 243
8.4.3 fn:endsWith()顯示檔案格式 243
8.4.4 fn:startsWith()方法 244
8.4.5 fn:escapeXml()實現HTML編碼 245
8.4.6 fn:indexOf()方法 245
8.4.7 fn:split()分割字元 246
8.4.8 fn:join()聯合字元 247
8.4.9 fn:length()方法 247
8.5 JSTL的SQL標籤庫 248
8.5.1 設定數據源 248
8.5.2 查詢表數據 249
8.5.3 分頁顯示 250
8.5.4 結果集的動態遍歷 251
8.5.5 更新表數據 253
8.5.6 , 設定日期參數 254
8.5.7 事務管理 255
8.6 JSTL的XML標籤庫 257
8.6.1 獲取新浪RSS新聞 257
8.6.2 輸出指定元素 259
8.6.3 遍歷新浪RSS新聞 260
8.6.4 標籤 261
8.6.5 、、標籤 261
8.6.6 標籤 262
8.6.7 轉化XML為HTML 262
8.7 本章小結 264
第9章 自定義標籤 265
9.1 編寫自定義標籤 265
9.1.1 著作權標籤 265
9.1.2 tld標籤庫描述檔案 267
9.1.3 方法的調用順序 268
9.1.4 使用TagSupport 269
9.1.5 帶參數的標籤 270
9.1.6 帶多個參數的標籤 271
9.1.7 帶標籤體的自定義標籤 272
9.1.8 多次執行的循環標籤 274
9.1.9 帶動態屬性的自定義標籤 276
9.2 嵌套的自定義標籤 277
9.2.1 實例:表格標籤 277
9.2.2 嵌套標籤的配置 278
9.2.3 table父標籤 279
9.2.4 column子標籤 281
9.2.5 運行效果 282
9.3 JSP 2.x標籤 282
9.3.1 SimpleTag接口 282
9.3.2 帶標籤體的JSP 2.x標籤 283
9.3.3 帶多個標籤體的JSP 2.x標籤 285
9.4 編寫自定義方法 287
9.4.1 自定義方法 287
9.4.2 方法描述檔案 288
9.5 本章小結 290
第10章 資源國際化 291
10.1 資源國際化簡介 291
10.1.1 I18N 291
10.1.2 I10N 291
10.2 資源國際化 291
10.2.1 資源國際化示例 292
10.2.2 資源檔案編碼 292
10.2.3 顯示所有Locale代碼 294
10.2.4 帶參數的資源 297
10.2.5 ResourceBundle類 297
10.2.6 Servlet的資源國際化 298
10.2.7 顯示所有Locale的數字格式 298
10.2.8 顯示全球時間 301
10.3 本章小結 302
第11章 資料庫概述 303
11.1 資料庫簡介 303
11.1.1 發展歷史 303
11.1.2 資料庫模型 304
11.1.3 SQL、DDL與DML 304
11.2 MySQL資料庫 305
11.2.1 MySQL安裝與配置 305
11.2.2 MySQL啟動與關閉 305
11.2.3 bin目錄下的程式 306
11.2.4 登錄MySQL 306
11.2.5 MySQL控制台 307
11.2.6 控制台信息 307
11.3 DDL SQL語句 309
11.3.1 列出資料庫模式 309
11.3.2 切換資料庫模式 309
11.3.3 列出數據表 310
11.3.4 查看錶結構 310
11.3.5 創建資料庫模式 310
11.3.6 刪除資料庫模式 311
11.3.7 修改資料庫模式 311
11.3.8 創建表 311
11.3.9 刪除表 312
11.3.10 修改表 312
11.4 DML SQL語句 313
11.4.1 插入數據 313
11.4.2 查詢數據 313
11.4.3 刪除數據 314
11.4.4 修改數據 314
11.4.5 創建,刪除,授權用戶 315
11.4.6 批量執行SQL語句 315
11.5 MySQL客戶端工具 316
11.5.1 MySQL圖形界面工具 316
11.5.2 MyEclipse管理工具 318
11.6 Apache Derby 319
11.6.1 Derby概述 319
11.6.2 Derby的使用 320
11.6.3 使用嵌入式Derby記錄日誌 320
11.7 本章小結 322
第12章 JDBC詳解 323
12.1 JDBC簡介 323
12.1.1 查詢實例:列出人員信息 323
12.1.2 各種資料庫的連線 326
12.2 MySQL的亂碼解決 327
12.2.1 MySQL的亂碼解決 327
12.2.2 從控制台修改編碼 327
12.2.3 從配置檔案修改編碼 328
12.2.4 利用圖形界面工具修改 328
12.2.5 URL中指定編碼方式 329
12.3 JDBC基本操作:CRUD 329
12.3.1 查詢資料庫 329
12.3.2 插入人員信息 329
12.3.3 註冊資料庫驅動 331
12.3.4 獲取自動插入的ID 332
12.3.5 刪除人員信息 333
12.3.6 修改人員數據 334
12.3.7 使用PreparedStatement 340
12.3.8 Statement批處理SQL 341
12.3.9 PreparedStament批處理SQL 342
12.4 處理結果集 344
12.4.1 查詢多個結果集 344
12.4.2 可以滾動的結果集 344
12.4.3 Pagination分頁顯示 344
12.4.4 帶條件的查詢 350
12.4.5 ResultSetMetaData元數據 354
12.4.6 直接顯示中文列名 355
12.5 JDBC高級套用 356
12.5.1 DAO模式與Java Bean 356
12.5.2 事務實例:轉賬 362
12.5.3 拋出異常自動回滾 364
12.5.4 存儲二進制數據 365
12.5.5 讀取二進制數據 368
12.5.6 數據源(連線池) 369
12.6 本章小結 371
第13章 XML概述 372
13.1 初識XML 372
13.1.1 什麼是XML 372
13.1.2 XML的用途 373
13.1.3 XML的技術架構 374
13.1.4 XML開發工具 375
13.2 XML基本語法 375
13.2.1 XML文檔的基本結構 375
13.2.2 標記必須閉合 376
13.2.3 必須合理地嵌套 376
13.2.4 XML 元素 377
13.2.5 XML 屬性 377
13.2.6 只有一個根元素 378
13.2.7 大小寫敏感 378
13.2.8 空白被保留 378
13.2.9 注釋的寫法 379
13.2.10 轉義字元的使用 379
13.2.11 CDATA的使用 379
13.3 JDK中的XML API 380
13.4 XML解析模型 380
13.4.1 DOM解析 380
13.4.2 SAX解析 383
13.5 XML與Java類映射JAXB 385
13.5.1 什麼是XML與Java類映射 385
13.5.2 JAXB的工作原理 386
13.5.3 Java對象轉化成XML(marshal) 387
13.5.4 XML轉化為Java對象(unmarshal) 389
13.5.5 更為複雜的映射 390
13.6 本章小結 392
第4篇 Struts框架篇
第14章 Struts 1.x概述 394
14.1 Struts簡介 394
14.1.1 Struts概述 394
14.1.2 MVC概述 395
14.2 第一個Struts 1.x實例 395
14.2.1 添加Struts特性 395
14.2.2 創建HelloAction 397
14.2.3 完成HelloAction 400
14.2.4 添加輸入頁JSP 400
14.2.5 添加輸出頁 402
14.3 Struts工作流程 403
14.4 Struts配置檔案 404
14.4.1 Struts配置檔案詳解 404
14.4.2 多個struts-config.xml 405
14.4.3 配置命名空間 406
14.5 Form Bean實例:提交用戶信息 406
14.5.1 用戶信息對應的Form Bean 406
14.5.2 用戶信息輸入頁面 407
14.5.3 用戶信息校驗 409
14.5.4 Form Bean中使用Person實體類 411
14.6 Action的配置 412
14.6.1 Action與ActionForward配置 412
14.6.2 把JSP配置為Action 413
14.7 Action實例:保存用戶信息到資料庫 414
14.7.1 在struts-config.xml中配置數據源 414
14.7.2 Person類代碼 415
14.7.3 數據表設計 416
14.7.4 Action代碼:保存用戶信息 416
14.7.5 Form Bean代碼:用戶信息表單 418
14.7.6 Action代碼:列出用戶信息 418
14.7.7 DAO層代碼:保存、列出用戶信息 419
14.7.8 JSP代碼:添加、列出用戶信息 421
14.8 Struts 1.x的執行緒安全 423
14.8.1 Action是執行緒不安全的 424
14.8.2 Form Bean是執行緒安全的 424
14.9 本章小結 424
第15章 Struts 1.x高級套用 425
15.1 Struts 1.x標籤庫 425
15.1.1 html標籤庫 425
15.1.2 bean標籤庫 428
15.1.3 logic標籤庫 429
15.1.4 nested標籤庫 430
15.1.5 tiles標籤庫 433
15.2 DispatchAction 438
15.2.1 利用action參數分發 438
15.2.2 DispatchAction 438
15.2.3 配置DispatchAction 439
15.3 上傳檔案 439
15.3.1 FormFile類型 439
15.3.2 保存FormFile 440
15.4 Validator自動校驗數據 442
15.4.1 支持自動校驗的ValidatorForm 442
15.4.2 Validate規則配置 442
15.4.3 錯誤信息配置 443
15.4.4 配置到struts-config.xml中 444
15.4.5 配置客戶端JavaScript校驗 444
15.5 動態屬性Form Bean 445
15.5.1 動態屬性表單DynaActionForm 445
15.5.2 Action中獲取動態屬性 446
15.5.3 JSP中使用動態屬性 446
15.6 異常處理 447
15.6.1 異常捕捉ExceptionHandler 447
15.6.2 配置ExceptionHandler 447
15.7 struts-config.xml中使用通配符 448
15.8 本章小結 448
第16章 Struts 2.x概述 450
16.1 Struts 2.x簡介 450
16.1.1 Struts 2簡介 450
16.1.2 Struts 2與WebWork 2的關係 450
16.2 第一個Struts 2實例 451
16.2.1 下載Struts 2類庫 451
16.2.2 登錄功能Action 451
16.2.3 Struts 2配置檔案 452
16.2.4 JSP登錄頁面 453
16.2.5 配置web.xml 454
16.2.6 更改.action後綴 455
16.3 Struts 2工作流程 455
16.3.1 Struts 2工作流程 456
16.3.2 Struts 2的執行緒安全 456
16.3.3 程式入口FilterDispatcher 456
16.4 Struts 2配置檔案 457
16.4.1 struts.properties 457
16.4.2 struts.xml 457
16.4.3 配置package 458
16.4.4 配置命名空間 458
16.5 Action詳解 459
16.5.1 ActionSupport類 459
16.5.2 Action接口 459
16.5.3 不繼承任何類的Action 460
16.5.4 Action的可執行方法 460
16.5.5 通過URL執行Action的方法 461
16.5.6 將執行方法配置到Action 461
16.6 Struts 2的零配置 462
16.6.1 通過@註解實現Action零配置 462
16.6.2 web.xml中指定Action目錄 463
16.6.3 零配置的Action訪問方式 463
16.7 Action中使用POJO 464
16.7.1 圖書管理Action 464
16.7.2 圖書實體Book類 465
16.7.3 通配符配置Action 465
16.7.4 JSP添加、列表頁面 466
16.8 本章小結 467
第17章 Struts 2.x高級套用 469
17.1 數據類型轉換器 469
17.1.1 實例:日期轉換器 469
17.1.2 配置轉換器 470
17.1.3 Action代碼示例 471
17.1.4 為Action配置轉換器 472
17.2 獲取request、response 473
17.2.1 利用ServletActionContext的靜態方法 473
17.2.2 利用相關的Aware接口 474
17.3 使用Validator校驗數據 475
17.3.1 使用XML配置數據校驗Validator 475
17.3.2 配置客戶端Validator 476
17.3.3 常用的Validator 477
17.3.4 使用@Java註解配置Validator 477
17.4 本章小結 478
第18章 Struts 2.x標籤 479
18.1 Struts 2.x標籤 479
18.1.1 Struts 2標籤與EL表達式 479
18.1.2 Struts 2標籤tld檔案 479
18.2 OGNL語言 479
18.2.1 OGNL概述 479
18.2.2 “#”聲明OGNL表達式 480
18.2.3 “%”顯式聲明OGNL表達式 483
18.2.4 “$”在資源檔案中引用OGNL表達式 483
18.3 控制標籤 483
18.3.1 if、elseif、else標籤控制流程 483
18.3.2 append標籤連線多個List 485
18.3.3 generator標籤將字元轉化為List 486
18.3.4 iterator標籤遍歷集合 486
18.3.5 merge標籤取集合的並集 487
18.3.6 subset標籤過濾集合元素 487
18.4 數據標籤 488
18.4.1 action標籤包含action頁面 489
18.4.2 bean標籤引用Java Bean 489
18.4.3 date標籤輸出日期 489
18.4.4 i18n、text標籤聲明資源國際化 490
18.4.5 include標籤包含JSP頁面 491
18.4.6 param標籤傳遞參數 491
18.4.7 set標籤設定變數值 491
18.4.8 property標籤輸出變數值 492
18.5 表單UI標籤 492
18.5.1 form標籤輸出表單 492
18.5.2 textfield、textarea、file、checkbox、radio標籤 493
18.5.3 select、autocomplete標籤下拉框 494
18.5.4 使用動態數據的autocomplete標籤 495
18.5.5 checkboxlist標籤多選框組 497
18.5.6 combobox標籤複合框 498
18.5.7 datetimepicker標籤日期選擇器 498
18.5.8 doubleselect標籤聯動選擇框 499
18.5.9 optiontransferselect標籤 500
18.5.10 optgroup標籤選項組 502
18.6 非表單UI標籤 503
18.6.1 debug標籤輸出調試信息 503
18.6.2 fielderror、actionerror、actionmessage標籤錯誤信息 504
18.6.3 div、submit、a標籤實現無刷新獲取數據 505
18.6.4 無刷新實現登錄、註銷 508
18.6.5 tabbedPanel標籤頁 510
18.6.6 tree標籤輸出樹 512
18.6.7 使用tree顯示檔案結構 513
18.6.8 使用tree動態載入數據 515
18.7 本章小結 517
第19章 Struts 2.x攔截器與檔案上傳 519
19.1 使用攔截器 519
19.1.1 timer計時攔截器 519
19.1.2 token防重複提交攔截器 520
19.1.3 execAndWait執行等待攔截器 522
19.1.4 自定義的許可權驗證攔截器 524
19.2 上傳檔案 525
19.2.1 上傳檔案的Action 525
19.2.2 上傳檔案的JSP表單 527
19.2.3 上傳檔案相關的設定 528
19.2.4 錯誤信息設定 529
19.2.5 上傳多個檔案 529
19.3 本章小結 530
第5篇 Hibernate框架篇
第20章 Hibernate入門 532
20.1 Hibernate簡介 532
20.1.1 ORM概述 532
20.1.2 認識Hibernate 532
20.1.3 Hibernate的原理 533
20.2 第一個Hibernate程式 533
20.2.1 添加Hibernate特性 533
20.2.2 添加Hibernate的Jar 535
20.2.3 配置Cat實體類 535
20.2.4 修改Hibernate配置檔案 536
20.2.5 修改Hibernate工具類 537
20.2.6 初始化MySQL資料庫 538
20.2.7 配置Log4J 538
20.2.8 執行Hibernate程式 539
20.3 第一個Hibernate Web程式 541
20.3.1 DAO層代碼 541
20.3.2 Servlet層代碼 543
20.3.3 列出所有的Cat 544
20.3.4 添加Cat 546
20.3.5 修改Cat 548
20.3.6 刪除Cat 549
20.4 本章小結 550
第21章 從巨觀上把握Hibernate 551
21.1 Hibernate體系結構 551
21.2 Hibernate的相關概念 551
21.3 可持久化對象的狀態 552
21.4 Hibernate配置參數 552
21.4.1 配置檔案hibernate.properties、hibernate.cfg.xml 552
21.4.2 編程式配置、運行時配置 553
21.4.3 獲取SessionFactory 554
21.4.4 獲取、斷開資料庫連線 554
21.4.5 可選的配置參數 555
21.4.6 Hibernate日誌 557
21.5 本章小結 558
第22章 Hibernate實體映射 559
22.1 實體類映射 559
22.1.1 @註解配置 559
22.1.2 XML檔案配置 560
22.1.3 配置到hibernate.cfg.xml中 561
22.2 主鍵映射 561
22.2.1 @配置主鍵 561
22.2.2 XML配置主鍵 562
22.3 主鍵生成規則 562
22.3.1 @主鍵生成規則 562
22.3.2 XML主鍵生成規則 563
22.4 普通屬性映射 564
22.4.1 @配置普通屬性 564
22.4.2 XML配置普通屬性 565
22.5 日期屬性配置 565
22.5.1 @配置日期屬性 565
22.5.2 XML配置日期屬性 566
22.6 臨時屬性映射 566
22.7 版本屬性配置 566
22.7.1 樂觀鎖與悲觀鎖 566
22.7.2 @配置樂觀鎖 567
22.7.3 XML配置樂觀鎖 567
22.8 本章小結 567
第23章 Hibernate實體關係映射 568
23.1 單邊的一對多關係:電子郵件管理 568
23.1.1 UML、資料庫關係 568
23.1.2 @配置Person2類 568
23.1.3 @配置Email類 569
23.1.4 配置到Hibernate.cfg.xml中 570
23.1.5 運行代碼 570
23.1.6 延遲載入與即時載入 572
23.1.7 延遲載入異常 572
23.1.8 XML配置Person類 574
23.1.9 XML配置Email類 575
23.1.10 載入XML配置的實體 575
23.1.11 配置String類型的實體 576
23.2 單邊的多對一關係:論文管理 578
23.2.1 UML、資料庫關係 578
23.2.2 @配置Type類 578
23.2.3 @配置Article類 579
23.2.4 配置到Hibernate.cfg.xml 579
23.2.5 運行代碼 580
23.2.6 XML配置Type類 581
23.2.7 XML配置Article類 581
23.3 雙邊的多對一、一對多關係:學生屬性 582
23.3.1 UML、資料庫關係 582
23.3.2 @配置Clazz類 583
23.3.3 @配置Student類 584
23.3.4 配置到Hibernate.cfg.xml 584
23.3.5 運行代碼 585
23.3.6 XML配置Clazz類 586
23.3.7 XML配置Student類 587
23.4 單邊的多對多關係:論壇文章管理 588
23.4.1 UML、資料庫關係 588
23.4.2 @配置Tag類 588
23.4.3 @配置Post類 589
23.4.4 運行代碼 590
23.4.5 XML配置Tag類 592
23.4.6 XML配置Post類 592
23.5 雙邊的多對多關係 593
23.5.1 @配置Tag類 593
23.5.2 XML配置Tag類 593
23.6 單邊的一對一關係:艦船管理 594
23.6.1 UML、資料庫關係 594
23.6.2 @配置Ship類 594
23.6.3 @配置Sailor類 595
23.6.4 運行代碼 596
23.6.5 XML配置Ship類 597
23.6.6 XML配置Sailor類 598
23.7 雙邊的一對一關係 598
23.7.1 @配置Ship類 599
23.7.2 XML配置Ship類 599
23.8 主鍵相同的一對一關係:客戶地址管理 599
23.8.1 UML、資料庫關係 599
23.8.2 @配置Customer類 600
23.8.3 @配置Address類 600
23.8.4 運行代碼 601
23.8.5 XML配置Customer類 603
23.8.6 XML配置Address類 603
23.9 Map映射 604
23.9.1 @ MapKey配置Map 604
23.9.2 XML配置Map 604
23.10 本章小結 605
第24章 Hibernate查詢語言HQL 606
24.1 HQL基礎查詢 606
24.1.1 HQL語法 606
24.1.2 HQL大小寫不敏感 606
24.1.3 使用Package名 606
24.2 返回類型 607
24.2.1 查詢單個的對象 607
24.2.2 返回集合屬性 607
24.3 同時返回多個對象 608
24.3.1 返回Object[]數組 608
24.3.2 返回List類型 608
24.3.3 返回Map類型 608
24.3.4 返回Java實體對象 609
24.4 條件查詢 609
24.4.1 where子句語法 609
24.4.2 HQL支持的運算符 609
24.5 統計函式 610
24.6 HQL分頁顯示 611
24.7 HQL級聯查詢 611
24.7.1 跨表查詢 611
24.7.2 級聯查詢 611
24.8 使用SQL資料庫 612
24.8.1 使用SQLQuery 612
24.8.2 返回實體類型 612
24.9 命名常用的查詢 612
24.9.1 @配置命名查詢 613
24.9.2 設定查詢擴展 613
24.9.3 設定多個命名查詢 613
24.9.4 XML配置命名查詢 614
24.10 本章小結 615
第25章 Hibernate高級查詢 616
25.1 單一實體類的查詢 616
25.1.1 員工實體類Employee查詢 616
25.1.2 員工管理EmployeeServlet 619
25.1.3 查詢員工的JSP代碼 621
25.1.4 JSP顯示頁面 624
25.1.5 使用參數查詢 626
25.2 實體間關係的查詢 627
25.2.1 部門實體類Department類 628
25.2.2 部門管理DepartmentServlet 629
25.2.3 顯示部門的JSP代碼 631
25.2.4 添加部門代碼(Ajax方式查詢經理) 633
25.2.5 修改員工時選擇部門 638
25.3 join級聯查詢 642
25.3.1 SQL中的join 643
25.3.2 Hibernate中的join 645
25.4 本章小結 648
第6篇 Spring框架篇
第26章 Spring概述 650
26.1 Spring框架 650
26.1.1 Spring背景 650
26.1.2 Spring容器 650
26.2 一個依賴注入的例子 650
26.2.1 一個普通程式的例子 651
26.2.2 Dao接口及實現 652
26.2.3 Service接口及實現 652
26.2.4 組裝DAO與Service 653
26.2.5 運行代碼 654
26.2.6 反向控制的原理 654
26.2.7 面向切面編程的原理 654
26.3 一個切面編程的例子 655
26.3.1 實現攔截器接口 655
26.3.2 AOP配置攔截器 655
26.3.3 運行代碼 656
26.4 Spring框架的組成 657
26.5 本章小結 658
第27章 Spring的Core模組 659
27.1 BeanFactory工廠 659
27.1.1 實例化BeanFactory 659
27.1.2 XmlBeanFactory配置格式 660
27.2 配置Java Bean 660
27.2.1 基本配置 660
27.2.2 工廠模式factory-method 661
27.2.3 構造函式 661
27.2.4 單態模式singleton 662
27.2.5 配置屬性 662
27.2.6 設定對象屬性 663
27.2.7 配置List屬性 663
27.2.8 配置Set屬性 664
27.2.9 配置Map屬性 664
27.2.10 配置Properties屬性 664
27.2.11 與的區別 665
27.2.12 設定destroy-method銷毀方法 665
27.2.13 設定depends-on依賴對象 665
27.2.14 初始化方法init-method 665
27.3 屬性自動裝配autowire 666
27.3.1 配置autowire自動裝配 666
27.3.2 autowire取值範圍 666
27.4 依賴檢查dependency 667
27.4.1 配置dependency依賴檢查 667
27.4.2 dependency屬性取值範圍 667
27.5 Bean的高級特性 667
27.5.1 BeanNameAware接口獲取Bean的id 668
27.5.2 BeanFactoryAware接口獲取BeanFactory 668
27.5.3 InitializingBean接口執行初始化方法 668
27.5.4 DisposableBean接口執行銷毀方法 669
27.6 BeanFactory高級特性 669
27.7 屬性覆蓋器 669
27.7.1 配置PropertyOverrideConfigurer屬性覆蓋器 669
27.7.2 properties配置 670
27.8 本章小結 670
第28章 Spring的AOP模組 671
28.1 實例:使用攔截器攔截方法 671
28.1.1 Service接口 671
28.1.2 Service實現代碼 671
28.1.3 方法前攔截器檢查name是否為null 672
28.1.4 返回後攔截器輸出返回值 673
28.1.5 異常攔截器捕獲異常 673
28.1.6 攔截器配置 674
28.1.7 運行代碼 675
28.2 攔截器與Filter的區別 676
28.3 AOP的相關概念 676
28.4 AOP的代理模式 677
28.4.1 ProxyFactoryBean代理工廠對象 677
28.4.2 TransactionProxyFactoryBean事務代理工廠對象 677
28.5 本章小結 678
第29章 Spring的DAO模組 679
29.1 實例:保存Person實體 679
29.1.1 實體類Person代碼 679
29.1.2 DAO層接口 679
29.1.3 繼承JdbcDaoSupport 680
29.1.4 Spring配置 681
29.1.5 運行代碼 682
29.2 返回實體對象 683
29.2.1 MappingSqlQuery實現代碼 683
29.2.2 使用MappingSqlQuery 683
29.2.3 SqlUpdate執行更新 684
29.2.4 SqlFunction返回單一結果 684
29.3 Spring事務管理 685
29.3.1 TransactionRun代碼 685
29.3.2 配置事務 686
29.3.3 運行代碼 687
29.4 本章小結 687
第30章 Spring的ORM模組 688
30.1 實例:保存Cat實體 688
30.1.1 Cat實體類代碼 688
30.1.2 DAO層接口 689
30.1.3 繼承HibernateDaoSupport 689
30.2 配置集成Hibernate 690
30.2.1 在Spring中配置Hibernate 690
30.2.2 運行代碼 691
30.2.3 配置XML檔案實體 692
30.3 管理Hibernate事務 693
30.3.1 Service接口 693
30.3.2 Service實現代碼 693
30.3.3 在Service層配置事務 694
30.4 本章小結 695
第31章 Spring的Web模組 696
31.1 整合Struts 1.x:繼承方式 696
31.1.1 CatForm代碼 696
31.1.2 CatAction添加、列出所有Cat 697
31.1.3 Struts配置檔案 698
31.1.4 異常處理頁面 699
31.1.5 添加、顯示Cat頁面 699
31.1.6 在web.xml中配置Spring、Struts 700
31.1.7 添加OpenSessionInViewerFilter 702
31.1.8 其他方式載入Spring配置 702
31.2 整合Struts 1.x:代理方式 703
31.2.1 Cat2Action添加、列出所有Cat 703
31.2.2 Struts配置檔案 704
31.2.3 Spring配置檔案 705
31.3 整合Struts 2.x 706
31.3.1 CatAction添加、列出所有Cat 706
31.3.2 在Struts 2配置檔案中配置Spring 707
31.3.3 在Spring配置檔案中配置Action 708
31.3.4 在web.xml配置中配置Spring、Struts 2 708
31.3.5 JSP代碼 709
31.4 本章小結 710
第32章 Spring的MVC模組 711
32.1 MVC的控制層 711
32.1.1 MVC的控制層 711
32.1.2 Spring MVC的優缺點 712
32.2 MVC的視圖層 712
32.3 MVC配置 713
32.4 web.xml配置 714
32.5 多業務分發器 715
32.5.1 MultiActionController分發控制器 715
32.5.2 配置分發參數 716
32.6 本章小結 717
第33章 Spring開發實例(SSH、SSJ) 718
33.1 實例一:訪問統計系統(結合Struts 1、Hibernate) 718
33.1.1 訪問記錄 718
33.1.2 線上用戶 719
33.1.3 工作原理 719
33.1.4 系統構架 721
33.2 伺服器端統計代碼 721
33.2.1 實體類代碼 721
33.2.2 DAO層代碼 723
33.2.3 DAO層配置 725
33.2.4 數據源的附加配置 727
33.2.5 Action代碼 727
33.2.6 計算IP位址、搜尋關鍵字 731
33.2.7 配置Spring到web.xml中 732
33.3 訪問信息列表 733
33.3.1 訪問信息列表 733
33.3.2 線上用戶列表 736
33.4 實例二:郵件傳送系統(結合Struts 2、JPA) 737
33.4.1 實體類代碼 737
33.4.2 DAO層代碼 738
33.4.3 JPA的配置檔案 739
33.4.4 Spring的郵件傳送器 740
33.4.5 傳送簡單文本郵件 741
33.4.6 Struts 2的配置檔案 744
33.4.7 Spring的配置檔案 744
33.4.8 web.xml配置檔案 746
33.4.9 傳送HTML郵件 747
33.4.10 已傳送郵件列表 751
33.5 Spring定時任務 753
33.5.1 JDK中的定時任務 754
33.5.2 Spring中的定時任務 755
33.5.3 定時任務配置 757
33.5.4 定時器觸發時間配置 758
33.6 小結 760
第7篇 EJB與Web服務篇
第34章 EJB 3概述 762
34.1 EJB技術概述 762
34.1.1 什麼是EJB 762
34.1.2 EJB類型 763
34.2 下載和安裝JBoss伺服器 763
34.2.1 下載JBoss 764
34.2.2 JBoss的目錄結構 764
34.2.3 MyEclipse中配置JBoss 765
34.2.4 啟動JBoss伺服器 767
34.3 實例:HelloEJBService 767
34.3.1 新建EJB工程 767
34.3.2 定義EJB業務接口 768
34.3.3 編寫SessionBean 768
34.3.4 EJB的部署 769
34.4 運行EJB 771
34.4.1 客戶端調用EJB 771
34.4.2 Web套用調用EJB 773
34.5 EJB其他的相關技術規範 775
34.6 本章小結 775
第35章 JPA規範 776
35.1 JPA概述 776
35.1.1 JPA的出現 776
35.1.2 JPA規範 776
35.1.3 JPA與EJB 3 777
35.1.4 Java EE容器 777
35.2 實例:保存Student實體類 777
35.2.1 Student代碼 777
35.2.2 StudentServlet添加、列出所有Student 778
35.2.3 persistence.xml代碼 780
35.2.4 配置JBoss伺服器 781
35.2.5 運行JPA程式 782
35.3 JPA的API 783
35.3.1 實體類配置 783
35.3.2 獲取EntityManager 783
35.3.3 實體類的狀態 784
35.3.4 持久化persist() 784
35.3.5 查找find()與getReference() 784
35.3.6 保存merge() 785
35.3.7 刪除remove() 785
35.3.8 刷新refresh()和包含contains() 785
35.3.9 查詢createQuery() 785
35.3.10 本地查詢createNativeQuery() 786
35.3.11 寫入資料庫flush() 786
35.3.12 設定寫入模式setFlushModel() 786
35.3.13 返回實現者getDelegate() 786
35.3.14 清除對象clear() 786
35.4 本章小結 787
第36章 Web Service框架XFire 788
36.1 XFire概述 788
36.1.1 什麼是XFire 788
36.1.2 下載XFire 789
36.1.3 XFire的目錄結構 789
36.2 XFire開發起步 790
36.2.1 配置Web服務項目 790
36.2.2 配置檔案清單 791
36.2.3 開發一個Web服務 792
36.2.4 發布Web服務 794
36.3 Web服務客戶端 796
36.3.1 MyEclipse客戶端 796
36.3.2 SDK方式的客戶端 797
36.3.3 根據WSDL生成的客戶端 799
36.4 Web服務安全 800
36.4.1 SOAP Header中進行身份驗證 800
36.4.2 WS-Security進行身份驗證 803
36.4.3 用戶名/密碼方式 805
36.4.4 數字簽名(Signature) 807
36.4.5 加密(Encryption) 810
36.5 XFire與Spring集成 812
36.5.1 配置Spring Bean 812
36.5.2 配置XFire Servlet 812
36.5.3 配置Web服務Bean 813
36.5.4 配置各種Handler 814
36.6 本章小結 816
第8篇 工具篇
第37章 版本管理工具SVN 818
37.1 Subversion概述 818
37.1.1 什麼是版本控制 818
37.1.2 什麼是Subversion 818
37.1.3 Subversion的歷史 819
37.1.4 Subversion的優勢 819
37.1.5 Subversion的技術架構 820
37.2 下載和安裝Subversion 821
37.2.1 Subversion的版本 822
37.2.2 下載Subversion 823
37.2.3 安裝Subversion 823
37.3 配置Subversion伺服器 824
37.3.1 創建資源庫 825
37.3.2 設定訪問用戶 826
37.3.3 啟動Subversion服務 828
37.3.4 Subversion的常用命令 829
37.4 使用Subversion客戶端TortoiseSVN 829
37.4.1 下載和安裝TortoiseSVN 829
37.4.2 瀏覽資源庫 830
37.4.3 在資源庫中增加資料夾 831
37.4.4 導入檔案到資源庫(import) 833
37.4.5 從資源庫中遷出(checkout) 835
37.4.6 更新(update)——修改——提交(commit) 836
37.4.7 鎖定(lock)——修改——提交——解鎖 839
37.4.8 解決衝突的辦法 839
37.4.9 查看修改日誌 842
37.4.10 歷史版本的比較 844
37.4.11 恢復到之前的版本 845
37.4.12 TortoiseSVN的配置 846
37.5 與Eclipse集成 846
37.5.1 下載和安裝Subclipse 846
37.5.2 在Eclipse中新建資源庫 848
37.5.3 將Eclipse項目與資源庫中的檔案同步 849
37.5.4 在Eclipse中使用的其他功能 850
37.6 本章小結 850
第38章 日誌工具commons- logging與Log4J 851
38.1 日誌概述 851
38.1.1 日誌的原理 851
38.1.2 JDK 1.4的Logging 852
38.1.3 Log4j控制項 853
38.1.4 commons-logging控制項 854
38.2 Log4j控制項 855
38.2.1 Log4j概述 856
38.2.2 Log4j的執行效率 856
38.2.3 最佳化日誌代碼 856
38.2.4 Log4j.properties配置檔案 857
38.2.5 使用其他配置檔案 857
38.2.6 Log4j.xml配置檔案 858
38.3 日誌記錄器Logger 858
38.3.1 日誌記錄器Logger 858
38.3.2 Logger的配置 858
38.3.3 rootLogger配置 859
38.3.4 類別category配置 859
38.4 輸出地Appender 859
38.4.1 輸出到控制台 860
38.4.2 輸出到檔案 860
38.4.3 輸出到按大小滾動檔案 861
38.4.4 輸出到按日期滾動檔案 861
38.4.5 輸出到JDBC資料庫 862
38.4.6 輸出到SOCKET套接字 864
38.4.7 輸出到SMTP郵件 864
38.4.8 自定義輸出 865
38.5 日誌格式化器Layout 867
38.5.1 PatternLayout布局 867
38.5.2 HTMLLayout布局 868
38.5.3 XMLLayout布局 868
38.6 本章小結 870
第39章 報表圖形引擎JFreeChart 871
39.1 JFreeChart簡介 871
39.1.1 下載JFreeChart 871
39.1.2 核心類包介紹 872
39.2 圖形的輸出方式 872
39.2.1 在Servlet生成圖片 872
39.2.2 直接生成圖片檔案 876
39.3 輸出柱形圖 877
39.3.1 使用DefaultCategoryDataset數據集繪製柱形圖 877
39.3.2 使用XYDataset數據集繪製柱形圖 879
39.4 輸出折線圖 882
39.5 輸出區域圖 884
39.6 輸出時序圖 887
39.7 輸出組合圖表 889
39.8 其他種類的圖形 892
39.9 本章小結 892
第40章 PDF組件iText 894
40.1 下載iText組件 894
40.2 輸出pdf的基本步驟 895
40.3 設定pdf檔案屬性 896
40.4 插入文本 898
40.5 文本的中文處理 899
40.6 插入表格 899
40.7 插入圖像 900
40.8 在Servlet中輸出pdf 902
40.9 本章小結 903
第9篇 實 戰 篇
第41章 論壇系統(Spring+Struts+ Hibernate) 906
41.1 功能概述 906
41.1.1 功能模組 906
41.1.2 運行效果 906
41.2 資料庫設計 907
41.2.1 實體類設計 907
41.2.2 BaseBean基類代碼 908
41.2.3 Person類代碼 908
41.2.4 Category類代碼 909
41.2.5 Board類代碼 909
41.2.6 Thread類代碼 910
41.2.7 Reply類代碼 911
41.2.8 資料庫與Hibernate配置 912
41.3 DAO層設計 913
41.3.1 IDao代碼 913
41.3.2 DaoImpl代碼 913
41.4 Service層設計 914
41.4.1 IService接口 915
41.4.2 ServiceImpl實現 915
41.5 Action層設計 916
41.5.1 ForumForm基類 916
41.5.2 ForumAction基類 917
41.5.3 JSP層代碼 918
41.6 用戶模組 919
41.6.1 IPersonService接口 919
41.6.2 PersonServiceImpl實現 920
41.6.3 MD5加密工具類 921
41.6.4 PersonForm代碼 921
41.6.5 PersonAction代碼 922
41.6.6 JSP註冊頁面 925
41.6.7 PersonAction配置 926
41.6.8 登錄攔截器 929
41.6.9 異常捕捉 930
41.6.10 實現用戶登錄 931
41.6.11 實現用戶資料查看 933
41.7 類別模組 935
41.7.1 ICategoryService接口 935
41.7.2 CategoryServiceImpl實現 936
41.7.3 CategoryForm代碼 936
41.7.4 實現瀏覽類別 937
41.7.5 實現添加類別 940
41.8 版面模組 941
41.8.1 IBoardService接口 942
41.8.2 BoardServiceImpl實現 942
41.8.3 BoardForm代碼 942
41.8.4 實現瀏覽版面 943
41.8.5 實現添加版面 946
41.8.6 實現設定版主 949
41.9 帖子模組 951
41.9.1 IThreadService接口 951
41.9.2 ThreadServiceImpl實現 952
41.9.3 ThreadForm代碼 952
41.9.4 實現瀏覽帖子 953
41.9.5 實現發表帖子 955
41.10 回帖模組 958
41.10.1 IReplyService接口 958
41.10.2 ReplyServiceImpl實現 959
41.10.3 ReplyForm代碼 960
41.10.4 實現發表回帖 960
41.11 本章小結 963
第42章 分散式寵物商店(EJB 3+JPA+ Struts 2) 964
42.1 系統概述 964
42.1.1 需求描述 964
42.1.2 系統預覽 965
42.2 系統構架 966
42.2.1 系統構架圖 966
42.2.2 實體類設計 967
42.2.3 業務類實現 969
42.2.4 Session Bean查找 978
42.2.5 persistence.xml配置 980
42.2.6 EJB 3組件部署 980
42.3 Web層的設計 982
42.3.1 Struts 2項目的檔案說明 982
42.3.2 配置Struts 2 984
42.3.3 配置Tiles 985
42.3.4 使用Tiles 986
42.4 用戶註冊與登錄 989
42.4.1 用戶註冊頁面 989
42.4.2 註冊處理Action 990
42.4.3 所有Action的父類BaseAction 992
42.4.4 登錄頁面 994
42.5 類別與寵物管理 995
42.5.1 寵物類別列表 995
42.5.2 添加寵物類別 999
42.5.3 添加寵物 1000
42.5.4 刪除寵物分類和寵物 1003
42.6 購物車管理 1004
42.6.1 購買寵物 1004
42.6.2 查看購物車 1006
42.6.3 付款結賬 1009
42.7 本章小結 1010
作者簡介
劉京華,畢業於山東大學計算機科學與技術學院。先後任職於用友軟體、IBM中國研究院、Symbian中國研究院等公司或機構。畢業後一直從事Java開發,有超過10年的Java開發經驗。精通JavaWeb開發的各種技術與框架,對圖形化開發、Eclipse外掛程式開發等各種技術也有深入研究。曾經開發過大型的分散式Web系統。參與開發過中國移動、中國聯通、中國電信的網關係統。參與開發過物流管理系統、供應鏈處理系統、聯想公司的RMS系統、IBM的SmartSCOR和Nokia Carbide平台。