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

劉京華

下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

本書全面介紹了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  配置<servlet> 43

3.3.3  配置<servlet-mapping> 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  <jsp-config>標簽 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  基本配置<bean> 660

27.2.2  工廠模式factory-method 661

27.2.3  構造函數<constructor-arg> 661

27.2.4  單態模式singleton 662

27.2.5  配置屬性<property> 662

27.2.6  設置對象屬性<ref> 663

27.2.7  配置List屬性<list> 663

27.2.8  配置Set屬性<set> 664

27.2.9  配置Map屬性<map> 664

27.2.10  配置Properties屬性<props> 664

27.2.11  <idref>與<ref>的區別 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·