Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernat

Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernat

作者: 劉京華
出版社: 清華大學
出版在: 2010-01-01
ISBN-13: 9787302209768
ISBN-10: 7302209766





內容描述


本書全面介紹了Java Web開發中的各種相關技術及知識。全書分為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)。
本書附1張DVD光盤,內容為本書汲及的源代碼和Java Web學習視頻。
本書內容全面,結構清晰,註重實戰,非常適合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  jsp:include /行為 113
4.4.2  使用Java Bean(POJO) 114
4.4.3  scope實現各種計數器 117
4.4.4  jsp:plugin /嵌入Applet 119
4.4.5  jsp:forward /行為 122
4.4.6  jsp:directive /行為 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  c:out /標簽 218
8.2.2  c:if /標簽 219
8.2.3  c:choose /c:when /c:otherwise /標簽 220
8.2.4  c:forEach /顯示偶數 221
8.2.5  c:forEach /標簽遍歷List 222
8.2.6  c:forEach /標簽遍歷Map對象 223
8.2.7  c:forEach /標簽的varStatus屬性 224
8.2.8  c:forTokens /標簽 225
8.2.9  c:set /實現計數器 226
8.2.10  c:remove /標簽 228
8.2.11  c:catch /捕捉異常 228
8.2.12  c:import /導入網絡資源 228
8.2.13  c:url /標簽 230
8.2.14  c:redirect /標簽 231
8.2.15  c:param /標簽 231
8.3  JSTL的fmt標簽庫 231
8.3.1  fmt:requestEncoding /設置編碼 232
8.3.2  fmt:setLocale /顯示所有地區的數據格式 232
8.3.3  fmt:timeZone /顯示全球時間 234
8.3.4  fmt:setTimeZone /設置時區 236
8.3.5  fmt:bundle /fmt:message /fmt:param /資源國際化 236
8.3.6  fmt:setBundle /標簽 238
8.3.7  fmt:formatNumber /顯示不同地區的各種數據格式 238
8.3.8  fmt:parseNumber /解析數字 240
8.3.9  fmt:formatDate /格式化日期 241
8.3.10  fmt:parseDate /解析日期 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  sql:setDataSource /設置數據源 248
8.5.2  sql:query /查詢表數據 249
8.5.3  sql:query /分頁顯示 250
8.5.4  sql:query /結果集的動態遍歷 251
8.5.5  sql:update /更新表數據 253
8.5.6  sql:param /sql:dateParam /設置日期參數 254
8.5.7  sql:transaction /事務管理 255
8.6  JSTL的XML標簽庫 257
8.6.1  x:parse /獲取新浪RSS新聞 257
8.6.2  x:out /輸出指定元素 259
8.6.3  x:forEach /遍歷新浪RSS新聞 260
8.6.4  x:if /標簽 261
8.6.5  x:choose /x:when /x:otherwise /標簽 261
8.6.6  x:set /標簽 262
8.6.7  x:transform /轉化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
34.4.6  Struts 2的配置文件 744
34.4.7  Spring的配置文件 744
34.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
??

??

??

??

目錄

目錄

·VIII·

·XXXVII·




相關書籍

Effective Akka (Paperback)

作者 Jamie Allen

2010-01-01

Enterprise Java Programming with IBM WebSphere, 2/e

作者 Kyle Brown Gary Craig Greg Hester David Pitt Russell Stinehour Mark Weitzel Jim Amsden Peter M. Jakab Daniel Berg

2010-01-01

Entity Framework 4 in Action (Paperback)

作者 Stefano Mostarda Marco De Sanctis Daniele Bochicchio

2010-01-01