內容簡介
編程成功之路從此開始!
在內容安排上由淺入深,讓讀者循序漸進地掌握編程技術;在內容講解上結合豐富的圖解和形象的比喻,幫助讀者理解晦澀難懂的技術;在內容形式上附有大量的提示、技巧、說明、情景套用和實戰練習等欄目,夯實讀者編程技術,豐富編程經驗。全書共分為4篇,21章,包括JavaWeb概述、搭建開發環境、Java語言基礎、JavaScript語言、XML基礎、JSP語法、JSP內置對象、JavaBean技術、Servlet技術、EL表達式、JSTL標籤庫、資料庫套用開發、檔案上傳下載管理、解析XML、Ajax技術、Struts2框架技術、Hibernate技術和Spring技術。最後兩章為項目實戰練習,分別為論壇和網上商城,它們都套用了目前最流行的3大框架技術。通過這兩個練習,希望讀者能夠更加深刻的理解和運用Struts2、Hibernate和Spring技術。
本書的隨附光碟中包括本書所有程式的原始碼和重點難點內容的視頻錄像,其中的原始碼全部經過精心測試,能夠在Windows 2000、Windows XP、Windows 2003和Windows 7作業系統中編譯和運行。
本書適用於JavaWeb的愛好者、初學者和中級開發人員,也可以作為大中專院校和培訓機構的教材。本書以初學者為對象,全面介紹了使用Java Web開發程式的相關技術。
目錄
第1篇 起 步 篇
第1章 JavaWeb概述 2
1.1 初識Java Web 19
1.1.1 概述 19
1.1.2 Java語言的主要特點 19
1.1.3 Java Web 20
1.1.4 Java Web成功案例 20
1.2 Web套用技術 21
1.2.1 客戶端套用技術 21
1.2.2 伺服器端套用技術 23
1.3 Web應用程式的工作原理 23
1.4 網路程式開發體系結構 24
1.4.1 C/S結構 24
1.4.2 B/S結構 25
1.4.3 B/S與C/S的區別 25
1.5 Java Web網站的基本構建流程 26
1.6 常用網上資源 26
1.6.1 常用資源下載網 26
1.6.2 技術社區 27
1.7 本章小結 27
第2章 搭建開發環境 12
2.1 Java Web開發環境概述 29
2.1.1 開發工具包JDK 29
2.1.2 Web伺服器 29
2.1.3 資料庫 30
2.1.4 Web瀏覽器 30
2.2 JDK 30
2.2.1 下載JDK 30
2.2.2 安裝JDK 32
2.2.3 配置和測試JDK 33
2.3 安裝和配置Tomcat 34
2.3.1 獲取Tomcat 34
2.3.2 熟悉Tomcat 35
2.4 Eclipse 36
2.4.1 獲取Eclipse 36
2.4.2 運行Eclipse 37
2.4.3 打造中文版Eclipse 37
2.5 做好項目開發的準備工作 38
2.5.1 集成Eclipse與Tomcat 39
2.5.2 完善Web項目開發所需配置 40
2.6 本章小結 40
第3章 資料庫基礎 25
3.1 初識SQL Server資料庫 42
3.1.1 安裝SQL Server資料庫 42
3.1.2 安裝SQL Server SP4補丁 44
3.1.3 創建資料庫 45
3.1.4 創建數據表 46
3.2 初識MySQL資料庫 47
3.2.1 安裝並配置MySQL 47
3.2.2 安裝MySQL GUI Tool 49
3.2.3 連線MySQL Administrator 50
3.2.4 創建資料庫 51
3.2.5 創建數據表 51
3.2.6 編輯數據表中的數據 51
3.3 本章小結 52
第4章 Java語言基礎 37
4.1 面向對象程式設計 54
4.1.1 類和對象 54
4.1.2 定義類 54
4.1.3 定義成員方法 55
4.1.4 定義成員變數與局部變數 56
4.1.5 使用構造方法 57
4.1.6 創建與使用Java對象 58
4.1.7 使用包 59
4.2 數據類型 60
4.2.1 基本數據類型 60
4.2.2 類型之間的轉換 60
4.3 常量與變數 61
4.3.1 定義常量 61
4.3.2 定義變數 62
4.4 運算符的套用 62
4.4.1 賦值運算符 62
4.4.2 算術運算符 62
4.4.3 比較運算符 63
4.4.4 邏輯運算符 64
4.4.5 位運算符 64
4.4.6 條件運算符 66
4.4.7 自增自減運算符 66
4.4.8 運算符的優先權 67
4.4.9 情景套用:簡單的加密操作 67
4.5 流程控制語句 68
4.5.1 分支語句 68
4.5.2 循環語句 71
4.5.3 合理使用循環語句 74
4.5.4 使用break和continue語句實現程式跳轉 74
4.5.5 情景套用:判斷數的奇偶性 75
4.6 字元串處理 75
4.6.1 創建字元串對象 76
4.6.2 連線字元串 76
4.6.3 判斷字元串對象是否相等 77
4.6.4 字元串替換 78
4.6.5 獲取子字元串 78
4.6.6 將字元串轉換為數值類型 79
4.6.7 情景套用:格式化當前日期 79
4.7 創建並使用數組 80
4.7.1 數組及其套用 81
4.7.2 創建及遍歷一維數組 81
4.7.3 創建及遍歷二維數組 82
4.8 套用集合類 82
4.8.1 ArrayList類 83
4.8.2 Vector類 84
4.9 實戰練習 85
4.9.1 判斷某年是否是閏年 85
4.9.2 在控制台輸出楊輝三角形 86
4.10 本章小結 86
第5章 JavaScrip語言 71
5.1 初識JavaScript 88
5.1.1 JavaScript功能 88
5.1.2 在Web頁面中引入JavaScript 89
5.1.3 解決瀏覽器不能執行JavaScript的問題 90
5.2 JavaScript語言基礎 92
5.2.1 變數 92
5.2.2 數據類型 92
5.2.3 套用運算符 94
5.2.4 流程控制語句 96
5.3 使用函式 99
5.3.1 定義函式 99
5.3.2 調用函式 100
5.4 事件處理 100
5.4.1 事件 100
5.4.2 指定事件處理程式的方法 101
5.5 DOM常用技術 102
5.5.1 文檔的層次結構 103
5.5.2 情景套用:遍歷文檔樹 103
5.6 與DHTML相對應的DOM 105
5.6.1 innerHTML和innerText屬性 106
5.6.2 outerHTML和outerText屬性 106
5.7 視窗對象 107
5.7.1 有效利用資源——控制狀態欄文本 107
5.7.2 打開新的瀏覽器視窗 108
5.7.3 情景套用:關閉瀏覽器視窗 109
5.8 使用Date對象 109
5.9 實戰練習 111
5.9.1 驗證電話號碼是否正確 111
5.9.2 將小寫金額轉換為大寫金額 112
5.10 本章小結 112
第6章 初識XML 97
6.1 XML介紹 114
6.1.1 XML文檔結構 114
6.1.2 XML語法 115
6.1.3 XML聲明 115
6.1.4 元素 115
6.1.5 屬性 116
6.1.6 注釋 116
6.1.7 字元和實體引用 116
6.2 XML的兩種語法規則 117
6.2.1 DTD文檔類型定義 117
6.2.2 Schema文檔規則 121
6.3 XML的3種顯示格式 121
6.3.1 CSS樣式表 122
6.3.2 XSL樣式語言 122
6.3.3 XML數據島技術 122
6.3.4 情景套用一:使用CSS顯示XML文檔內容 122
6.3.5 情景套用二:使用XSL顯示XML文檔內容 123
6.3.6 情景套用三:套用XML數據島技術顯示XML文檔內容 125
6.4 實戰練習 126
6.4.1 組合運用XML與CSS 126
6.4.2 組合運用XML與XSL 126
6.5 本章小結 127
第7章 JSP語法 112
7.1 JSP概述 129
7.2 使用JSP指令標識 130
7.2.1 使用頁面指令page 130
7.2.2 使用檔案包含指令include 132
7.2.3 使用引用標籤庫指令taglib 133
7.2.4 情景套用: 套用include指令包含其他頁面 133
7.3 使用JSP腳本 134
7.3.1 在JSP中套用代碼片段 134
7.3.2 使用JSP表達式 135
7.3.3 使用聲明標識 136
7.3.4 情景套用:套用JSP聲明實現訪問統計 136
7.4 注釋 137
7.4.1 基本HTML注釋 137
7.4.2 隱藏注釋 137
7.4.3 代碼片段中的注釋 138
7.5 常用JSP動作標識 138
7.5.1 使用包含動作標識 139
7.5.2 使用請求轉發的動作標識 141
7.5.3 使用子動作標識 142
7.5.4 使用動作標識 143
7.5.5 使用動作標識 148
7.5.6 使用動作標識 149
7.5.7 情景套用:套用JavaBean保存圖片信息 150
7.6 實戰練習 153
7.6.1 套用Java程式片段動態生成表格 153
7.6.2 將頁面轉發到用戶登錄頁面 154
7.6.3 在同一頁面中提交多個表單 155
7.7 本章小結 155
第2篇 核 心 篇
第8章 JSP內置對象 142
8.1 JSP內置對象概述 159
8.1.1 內置對象的作用 159
8.1.2 內置對象及其套用場合 159
8.2 request請求對象 160
8.2.1 獲取請求參數 160
8.2.2 解決中文亂碼問題 161
8.2.3 獲取客戶端數據 162
8.2.4 套用request對象域 163
8.3 response回響對象 164
8.3.1 操作HTTP頭信息 165
8.3.2 設定MIME類型 165
8.3.3 實現頁面重定向 165
8.4 out輸出對象 166
8.4.1 向客戶端輸出數據 167
8.4.2 管理緩衝區 167
8.5 session會話對象 168
8.5.1 session的生命周期 168
8.5.2 創建與獲取會話 168
8.5.3 移除對話中的數據 169
8.5.4 設定會話的有效時間 169
8.5.5 情景套用:套用session對象模擬用戶登錄 170
8.6 套用application對象 171
8.6.1 application對象的生命周期 171
8.6.2 操作application對象中數據 171
8.6.3 配置Web套用的初始化參數 172
8.6.4 情景套用:實現網頁計數器 173
8.7 其他內置對象 174
8.7.1 應答與請求的page對象 174
8.7.2 頁面上下文的pageContext對象 174
8.7.3 獲取web.xml配置信息的config對象 174
8.7.4 獲取異常信息的exception對象 175
8.8 實戰練習 175
8.8.1 通過application對象實現網站計數器 175
8.8.2 統計用戶在站點的停留時間 176
8.9 本章小結 176
第9章 JavaBean技術 161
9.1 JavaBean概述 178
9.1.1 JavaBean產生背景 178
9.1.2 JavaBean的作用 178
9.1.3 JavaBean的規範 178
9.1.4 Eclipse對JavaBean方法的支持 179
9.2 JavaBean的屬性 180
9.2.1 Simple屬性 180
9.2.2 Indexed屬性 181
9.2.3 Bound屬性 181
9.2.4 Constrained屬性 182
9.3 JavaBean與JSP的完美結合 182
9.3.1 更加對象化的JSP開發 182
9.3.2 套用 標識 184
9.3.3 套用 標識 185
9.3.4 套用 標識 187
9.3.5 情景套用:套用JavaBean錄入檔案 188
9.4 實戰練習 190
9.4.1 判斷用戶名是否有效 190
9.4.2 計算兩個日期相差的天數 191
9.5 本章小結 191
第10章 Servlet技術 176
10.1 Servlet技術 193
10.1.1 Servlet概述 193
10.1.2 Servlet功能 193
10.1.3 Servlet特點 194
10.1.4 Servlet的生命周期 194
10.2 Servlet技術開發 195
10.2.1 Servlet在Java EE中的結構體系 195
10.2.2 Servlet核心API 195
10.2.3 創建第1個Servlet類 196
10.2.4 解析Servlet配置 198
10.2.5 使用Servlet處理業務邏輯 198
10.2.6 Servlet處理流程 200
10.2.7 使用Eclipse快速創建Servlet 200
10.3 Servlet的典型套用 202
10.3.1 處理表單數據 202
10.3.2 頁面轉發 206
10.3.3 獲取當前頁的絕對路徑 207
10.3.4 操作Cookie 207
10.3.5 情景套用:利用JavaBean由Servlet向JSP傳遞數據 209
10.4 配置並使用Servlet過濾器 210
10.4.1 過濾器的處理方式 211
10.4.2 過濾器的核心對象 211
10.4.3 創建並配置過濾器 212
10.4.4 字元編碼過濾器 215
10.4.5 情景套用一:驗證用戶身份 219
10.4.6 情景套用二:統計網站流量 221
10.4.7 情景套用三:過濾敏感字元 222
10.5 Servlet監聽器 223
10.5.1 Servlet監聽器簡介 223
10.5.2 Servlet監聽器的工作原理 223
10.5.3 監聽Servlet上下文 224
10.5.4 監聽HTTP會話 224
10.5.5 監聽Servlet請求 225
10.5.6 情景套用一:使用監聽器查看線上用戶 225
10.5.7 情景套用二:利用監聽器使服 務器端免登錄 228
10.6 實戰練習 229
10.6.1 記錄用戶訪問次數 229
10.6.2 將數據導出到Excel表 230
10.7 本章小結 230
第11章 EL表達式 215
11.1 EL概述 232
11.1.1 EL的基本語法 232
11.1.2 EL的特點 232
11.2 與低版本的環境兼容——禁用EL 233
11.2.1 使用斜槓“\”符號 233
11.2.2 使用page指令 233
11.2.3 在web.xml檔案中配置 元素 233
11.3 保留關鍵字 234
11.4 EL運算符及其優先權 234
11.4.1 通過EL訪問數據 235
11.4.2 在EL中執行算術運算 236
11.4.3 在EL中判斷對象是否為空 236
11.4.4 在EL中執行邏輯關係運算 237
11.4.5 在EL中執行條件運算 238
11.5 EL的隱含對象 239
11.5.1 頁面上下文對象 239
11.5.2 訪問作用域範圍的隱含對象 240
11.5.3 情景套用:讀取page範圍內的JavaBean屬性值 241
11.5.4 訪問環境信息的隱含對象 241
11.6 定義和使用EL函式 244
11.6.1 定義和使用函式 244
11.6.2 情景套用:定義EL函式處理字元串中的回車換行符和空格符 245
11.6.3 定義和使用EL函式時常見的錯誤 247
11.7 實戰練習 248
11.7.1 訪問JavaBean屬性的典型套用 248
11.7.2 通過EL表達式訪問Servlet中的作用域 249
11.8 本章小結 250
第12章 JSTL標籤庫 235
12.1 JSTL標籤庫 252
12.2 下載與配置JSTL 253
12.2.1 下載JSTL標籤庫 253
12.2.2 配置JSTL 254
12.3 表達式標籤 255
12.3.1 標籤 255
12.3.2 標籤 256
12.3.3 標籤 258
12.3.4 標籤 259
12.4 URL相關標籤 260
12.4.1 標籤 260
12.4.2 標籤 262
12.4.3 標籤 263
12.4.4 標籤 264
12.4.5 情景套用:套用 和標籤重定向頁面並傳遞參數 264
12.5 流程控制標籤 265
12.5.1 標籤 265
12.5.2 標籤 266
12.5.3 標籤 267
12.5.4 標籤 268
12.5.5 情景套用:幸運大抽獎 268
12.6 循環標籤 269
12.6.1 標籤 269
12.6.2 標籤 271
12.7 實戰練習 272
12.7.1 利用JSTL標籤導入用戶註冊協定 272
12.7.2 根據參數請求顯示不同的頁面 273
12.8 本章小結 273
第13章 資料庫套用開發 258
13.1 JDBC技術 275
13.1.1 JDBC簡介 275
13.1.2 JDBC連線資料庫的開發流程 275
13.2 JDBC核心API 277
13.2.1 驅動程式管理器DriverManager 277
13.2.2 代表資料庫連線的Connection接口 278
13.2.3 執行SQL語句的Statement接口 279
13.2.4 預編譯執行SQL語句的PreparedStatement接口 280
13.2.5 結果集ResultSet接口 280
13.2.6 及時關閉連線 282
13.2.7 情景套用:JDBC連線SQL Server 2005資料庫 282
13.3 JDBC運算元據庫 283
13.3.1 添加數據 283
13.3.2 查詢數據 286
13.3.3 修改數據 289
13.3.4 刪除數據 291
13.3.5 批處理 293
13.3.6 情景套用:調用存儲過程 296
13.4 JDBC在Java Web中的套用 299
13.4.1 開發模式 299
13.4.2 分頁查詢 299
13.5 實戰練習 305
13.5.1 套用存儲過程運算元據 305
13.5.2 網站用戶註冊 306
13.6 本章小結 306
第3篇 高 級 篇
第14章 檔案上傳組件 292
14.1 jspSmartUpload組件簡介 309
14.2 jspSmartUpload組件的核心類 309
14.2.1 保存信息的File類 309
14.2.2 存儲檔案的Files類 311
14.2.3 提供表單信息的Request類 311
14.2.4 組件的核心SmartUpload類 312
14.2.5 情景套用:採用jspSmartUpload組件操作檔案 313
14.3 commons-fileload組件簡介 317
14.4 commons-fileupload組件的核心類 317
14.4.1 上傳的核心類DiskFileUpload 317
14.4.2 處理的核心類ServletFileUpload 319
14.4.3 限制檔案類型的SuffixFvileFilter類 319
14.4.4 情景套用:限制上傳檔案的類型 320
14.5 實戰練習 321
14.5.1 上傳中文名檔案 321
14.5.2 獲取表單的元素值 322
14.6 本章小結 322
第15章 解析XML 307
15.1 DOM技術 324
15.2 DOM編程 324
15.2.1 DOM接口 324
15.2.2 使用DOM讀取XML檔案 326
15.3 SAX技術 328
15.4 SAX編程 328
15.4.1 SAX常用接口 328
15.4.2 SAX實現方法 331
15.4.3 情景套用:使用SAX解析XML 332
15.5 SAX和DOM比較 335
15.6 選擇DOM和SAX 335
15.7 實戰練習 336
15.7.1 DOM解析XML 336
15.7.2 SAX解析XML 336
15.8 本章小結 337
第16章 套用Ajax技術 322
16.1 Ajax 簡介 339
16.1.1 Ajax概述 339
16.1.2 Ajax的開發模式 339
16.1.3 Ajax的優點 339
16.2 Ajax使用的技術 340
16.2.1 JavaScript腳本語言 340
16.2.2 XMLHttpRequest 340
16.2.3 XML語言 342
16.2.4 DOM技術 342
16.2.5 CSS技術 342
16.3 搭建Ajax開發框架 342
16.4 Ajax的MVC架構設計 343
16.5 Ajax開發需要注意的問題 347
16.5.1 瀏覽器兼容性問題 347
16.5.2 封裝XMLHttpRequest對象 347
16.5.3 性能問題 347
16.5.4 中文編碼問題 347
16.6 Ajax技術的典型套用 348
16.6.1 情景套用一:檢測用戶名 348
16.6.2 情景套用二:級聯下拉列表框 350
16.7 實戰練習 351
16.7.1 實現無刷新分頁 351
16.7.2 檢查用戶名是否重複 352
16.8 本章小結 353
第17章 Struts 2框架 338
17.1 Struts 2框架 355
17.1.1 理解MVC的原理 355
17.1.2 Struts 2框架的產生 355
17.1.3 Struts 2的結構體系 356
17.2 Struts 2 入門 356
17.2.1 獲取與配置Struts 2 356
17.2.2 創建第1個Struts 2程式 357
17.3 Action對象 359
17.3.1 認識Action對象 359
17.3.2 請求參數的注入原理 360
17.3.3 Action的基本流程 360
17.3.4 動態Action 361
17.3.5 套用動態Action 361
17.4 Struts 2的配置檔案 364
17.4.1 Struts 2的配置檔案類型 364
17.4.2 配置Struts 2包 364
17.4.3 配置名稱空間 364
17.4.4 Action的相關配置 365
17.4.5 使用通配符簡化配置 366
17.4.6 配置返回結果 367
17.5 Struts 2的開發模式 367
17.5.1 實現與Servlet API的互動 367
17.5.2 域模型DomainModel 368
17.5.3 驅動模型ModelDriven 369
17.6 Struts 2的標籤庫 370
17.6.1 套用數據標籤 370
17.6.2 套用控制標籤 372
17.6.3 套用表單標籤 374
17.7 Struts 2的攔截器 375
17.7.1 攔截器概述 375
17.7.2 攔截器API 376
17.7.3 情景套用:使用攔截器 377
17.8 數據驗證機制 378
17.8.1 手動驗證 378
17.8.2 驗證檔案的命名規則 379
17.8.3 驗證檔案的編寫風格 379
17.9 實戰練習 380
17.9.1 Struts 2處理表單數據 380
17.9.2 Struts 2標籤下的用戶註冊 380
17.10 本章小結 381
第18章 Hibernate技術 366
18.1 初識Hibernate 383
18.1.1 ORM原理 383
18.1.2 Hibernate簡介 383
18.2 Hibernate入門 384
18.2.1 獲取Hibernate 384
18.2.2 Hibernate配置檔案 384
18.2.3 編寫持久化類 385
18.2.4 Hibernate映射 386
18.2.5 Hibernate主鍵策略 387
18.3 Hibernate數據持久化 388
18.3.1 Hibernate實例狀態 388
18.3.2 Hibernate初始化類 388
18.3.3 保存數據 390
18.3.4 查詢數據 391
18.3.5 刪除數據 393
18.3.6 修改數據 393
18.3.7 延遲載入 394
18.4 使用Hibernate的快取 395
18.4.1 情景套用一:使用一級快取 395
18.4.2 情景套用二:配置和使用二級快取 396
18.5 實體關聯關係映射 397
18.5.1 數據模型與領域模型 398
18.5.2 理解並配置多對一單向關聯 398
18.5.3 理解並配置多對一雙向關聯 399
18.5.4 理解並配置一對一主鍵關聯 401
18.5.5 理解並配置一對一外鍵關聯 403
18.5.6 理解並配置多對多關聯關係 404
18.5.7 級聯操作 406
18.6 實體繼承關係映射 407
18.6.1 類繼承樹映射為一個表 407
18.6.2 每個子類映射為一個表 409
18.6.3 每個具體類映射為一個表 410
18.7 Hibernate查詢語言 411
18.7.1 HQL語言 411
18.7.2 查詢實體對象 412
18.7.3 條件查詢 413
18.7.4 HQL參數綁定機制 413
18.7.5 排序查詢 413
18.7.6 套用聚合函式 414
18.7.7 分組方法 414
18.7.8 聯合查詢 415
18.7.9 情景套用:利用子查詢獲取ID值最小的員工信息並顯示結果 416
18.8 實戰練習 416
18.8.1 修改員工信息 416
18.8.2 員工信息的模糊查詢 417
18.9 本章小結 418
第19章 Spring技術 403
19.1 Spring概述 420
19.1.1 Spring組成 420
19.1.2 獲取Spring 421
19.1.3 配置Spring 421
19.1.4 使用BeanFactory管理Bean 422
19.1.5 套用ApllicationContext 422
19.2 依賴注入 423
19.2.1 控制反轉與依賴注入 423
19.2.2 配置Bean 424
19.2.3 Setter注入 424
19.2.3 構造器注入 425
19.2.5 引用其他Bean 427
19.2.6 創建匿名內部JavaBean 428
19.3 自動裝配 428
19.3.1 按Bean名稱裝配 428
19.3.2 按Bean類型裝配 429
19.3.3 自動裝配的其他方式 430
19.4 Bean的作用域 431
19.4.1 Spring中的Bean 431
19.4.2 Singleton的作用域 431
19.4.3 Prototype的作用域 432
19.5 bean的特殊處理 432
19.5.1 初始化與銷毀 432
19.5.2 自定義屬性編輯器 433
19.6 AOP概述 435
19.6.1 AOP術語 435
19.6.2 情景套用:AOP的簡單實現 436
19.7 Spring的切入點 437
19.7.1 靜態與動態切入點 438
19.7.2 深入靜態切入點 439
19.7.3 深入切入點底層 439
19.7.4 Spring中的其他切入點 440
19.8 Aspect對AOP的支持 440
19.8.1 Aspect概述 440
19.8.2 Spring中的Aspect 441
19.8.3 DefaultPointcutAdvisor切入點配置器 441
19.8.4 NameMatchMethodPointcutAdvisor切入點配置器 442
19.9 Spring持久化 442
19.9.1 DAO模式 442
19.9.2 Spring的DAO理念 443
19.9.3 事務管理 445
19.9.4 套用JdbcTemplate運算元據庫 448
19.9.5 與Hibernate整合 449
19.9.6 情景套用:整合Spring與Hibernate在tb_user表中添加信息 450
19.10 實戰練習 451
19.10.1 登錄頁面國際化 451
19.10.2 Spring與Hibernate整合批量添加數據 452
19.11 本章小結 452
第4篇 實 戰 篇
第20章 技術交流平台——論壇 438
20.1 模組概述 455
20.1.1 開發背景 455
20.1.2 功能結構 455
20.1.3 系統流程 456
20.2 技術攻關 456
20.2.1 Struts 2、Spring 2及Hibernate 3整合流程 456
20.2.2 jQuery常用操作 456
20.3 資料庫設計 457
20.3.1 設計E-R圖 457
20.3.2 資料庫表設計 458
20.4 公共模組設計 459
20.4.1 Spring+Hibernate組合實現持久層 460
20.4.2 使用Struts 2標籤分頁 461
20.5 主頁面設計 463
20.5.1 首頁設計 463
20.5.2 論壇頁設計 464
20.6 文章維護模組設計 465
20.6.1 添加文章模組 465
20.6.2 瀏覽文章 467
20.6.3 文章回復 468
20.6.4 修改文章 469
20.6.5 刪除文章 469
20.7 文章搜尋模組設計 470
20.7.1 搜尋我的文章 470
20.7.2 根據關鍵字搜尋文章 471
20.7.3 熱門搜尋 473
20.7.4 搜尋文章作者的所有文章 474
20.7.5 搜尋回復作者的所有文章 475
20.8 開發總結 476
20.8.1 文章回復的異步提交難點 476
20.8.2 系統當前位置動態設定的難點 478
第21章 GO購網路商城 465
21.1 GO購網路商城概述 482
21.1.1 開發背景 482
21.1.2 需求分析 482
21.1.3 可行性分析 482
21.1.4 功能結構 482
21.1.5 系統流程 483
21.1.6 系統預覽 483
21.2 系統整體設計 484
21.2.1 邏輯分層設計 484
21.2.2 系統資料夾結構 484
21.2.3 頁面結構設計 485
21.2.4 開發環境 486
21.3 資料庫設計 486
21.3.1 E-R圖設計 486
21.3.2 創建資料庫及數據表 487
21.4 搭建項目環境 489
21.4.1 配置Struts 2 489
21.4.2 配置Hibernate 491
21.4.3 配置Spring 492
21.4.4 配置web.xml 493
21.5 公共模組設計 494
21.5.1 Hibernate的Session初始化類 494
21.5.2 泛型工具類 496
21.5.3 數據持久化類 496
21.5.4 分頁設計 498
21.5.5 字元串工具類 501
21.6 實體映射 502
21.6.1 實體對象設計 502
21.6.2 會員信息 503
21.6.3 訂單信息 503
21.6.4 訂單條目信息 504
21.6.5 商品信息 505
21.6.6 商品類別信息 506
21.7 登錄註冊模組設計 507
21.7.1 模組概述 507
21.7.2 實現註冊模組 507
21.7.3 實現登錄模組 510
21.7.4 單元測試 512
21.8 前台商品信息查詢模組設計 513
21.8.1 模組概述 513
21.8.2 實現商品類別分級查詢 513
21.8.3 實現商品搜尋 515
21.8.4 實現前台查詢其他商品 516
21.8.5 單元測試 518
21.9 購物車模組設計 520
21.9.1 模組概述 520
21.9.2 實現購物車的基本功能 520
21.9.3 實現訂單的相關功能 523
21.9.4 單元測試 526
21.10 後台商品管理模組設計 526
21.10.1 模組框架 526
21.10.2 實現商品管理功能 526
21.10.3 實現商品類別管理功能 531
21.10.4 單元測試 534
21.11 後台訂單管理模組設計 534
21.11.1 模組框架 534
21.11.2 實現後台訂單查詢 534
21.11.3 實現後台訂單狀態管理 536
21.11.4 單元測試 538
21.12 系統發布 538
21.12.1 配置Tomcat伺服器 538
21.12.2 配置DNS伺服器 539
21.13 開發總結 542
附錄 術語解釋 543
第1章 JavaWeb概述 543
第2章 搭建開發環境 544
第3章 資料庫的安裝與創建 544
第4章 Java語言基礎 544
第5章 JavaScript語言 545
第6章 初識XML 545
第7章 JSP語法 546
第8章 JSP內置對象 546
第10章 Servlet技術 546
第11章 EL表達式 546
第12章 JSTL標籤庫 546
第13章 資料庫套用開發 547
第14章 檔案上傳組件 547
第15章 解析XML 547
第16章 Ajax簡介 547
第18章 邂逅Hibernate技術 548
第19章 解密Spring技術 548
前言
讓想要學習編程的人員都能夠學會編程!
我可以學會編程嗎?
當然可以!即使你沒有基礎,即使你是非計算機專業畢業,即使你已過而立之年,甚至是只有國中畢業。我國最早的計算機反病毒專家、江民防毒軟體創始人王江民,國中畢業,38歲開始學習計算機,因為英語基礎不好,很多人認為他根本沒有學會編程的可能。但王江民沒有感覺自己不行,硬是克服各種困難,成為我國最成功的程式開發人員之一。
王江民學習編程的訣竅是什麼?
是實踐。王江民說:“計算機是實踐性非常強的學科。我搞計算機是用計算機,不是學計算機。” 王江民首先學的是BASIC語言。當時,為了輔導上國小的孩子,對軟體一片空白的王江民竟然決定編寫程式代替家長輔導。短短3個月,王江民就邊學邊實踐,編好了一套數學語文教學軟體,試過後效果奇佳,參加電腦報軟體交流,被評為第2名,譽為“教育軟體第一”。因為這次成功,極大激發了王江民對編程的興趣,使他從此把精力轉到了軟體領域。
所以說:實踐,是學習編程的最好方法,也是培養編程樂趣、捕獲發展機遇的最佳途徑。值得注意的是,不要等學完全部知識才去實踐,要隨時學習,隨時實踐,哪怕只學了一點點。
這本書適合我嗎?
非常適合!本書是學習JavaWeb編程的最佳選擇。所講內容通俗易懂,易於學習,貼近實踐。對於學習中的難點、重點,注意結合實際開發,採用情景套用的方式進行介紹和練習。本書光碟提供了完整的視頻講座,可以對照本書內容循序漸進進行學習。利用本書,不但可以學會編程,更能激發學習者理論聯繫實際的熱情,開發出符合市場需求的軟體和項目。
本書內容
本書分為基礎篇、核心篇、高級篇和實戰篇,總計21章。內容安排按照從零起步,循序漸進的學習順序,全面提高讀者學、練和用的能力。本書的知識結構如下圖所示。
本書特色
通易俗懂
為了讓初學者易於學習,本書力求內容通俗易懂,講解寓教於樂。對於初學者較難理解的專業術語,本書都進行了形象的解釋,有些還提供了例圖。附錄中單獨將術語解釋提煉出來,供讀者學習時參考。例如,在講解Servlet工作流程時,首先詳細講解每一個步驟,並說明每一步中涉及的技術。然後配有圖形,如下圖所示。
視頻講座
為了方便讀者學習,隨附光碟中提供了14小時視頻講座。其講解細膩、層次清楚且互動性強,不但可以加深對書中內容的理解,還可以引導學習者掌握“是什麼”、“為什麼”、“怎么辦”和“應注意些什麼”的編程思維能力。視頻講座不僅詳細講解了書中的內容,還有效擴展了相關技術,並且提出了開發過程中易犯的各種錯誤。
注重實用性
初學者經常會遇到這樣的情況,即書中講解的技術能夠理解,但不知道如何套用。例如,在學習JSP指令標記時候弄懂指令標記的作用和指令中包含的屬性是一個繁雜的過程。書中通過講解真實的實例,使讀者真正明白指令標記和屬性的作用。本書在介紹技術時,注意強調技術的實用性,並且通過實例突出技術的套用價值。對於一些典型的套用,書中通過“情景套用”欄目進行重點介紹。
實戰互動練習
要掌握一項技術,最佳的方式就是多練習和多實踐。通過各章提供的多個實例任務,讀者可以檢驗知識的掌握程度。每個實例任務分為“題目描述”、“技術指導”和“緊急救援”3個部分,其中“題目描述”給出了實例功能的詳細描述和效果圖;“技術指導”給出了開發思路和關鍵技術;“緊急救援”提供了下載實例源碼和開發文檔的地址連結。
隨附光碟
為了幫助讀者學習和使用書中的實例,本書附贈DVD光碟。其中不僅提供了書中所有實例項目的原始碼、素材和光碟使用說明書,還提供了14小時視頻專題錄像及5個項目源碼。該光碟的目錄如下圖所示。
本書適用人群
本書是一部零基礎編程圖書,非常適合以下人員閱讀:
零基礎的初學編程人員 國中級程式開發人員
編程愛好者 想學習編程的在職人員
大中專院校的老師和學生 相關培訓機構的老師和學員
本書參與作者
本書由明日科技組織編寫,參加編寫的有朱曉、盧瀚、王國輝、賽奎春、陳丹丹、李鍾尉、李偉、楊麗、顧麗麗、劉玲玲、孟范勝、董大永、李繼業、尹強和張磊等。由於作者水平有限,疏漏和不足之處在所難免,歡迎廣大讀者提出寶貴意見。
非學無以廣才,非志無以成學。
祝大家讀書快樂!
明日科技
2010年10月