內容簡介
本書以開發人員在項目開發中經常遇到的問題和必須掌握的技術為核心,介紹了套用Java Web進行程式開發的各個方面的知識和技巧,主要內容包括流行組件套用、資料庫套用、圖表統計、Ajax框架套用、流行框架、網站安全與架構模式、綜合套用等。全書分為7篇23章,總計600個實例,並附帶600個技巧。書中每個實例都是作者精心篩選的,具有很強的實用性,其中一些實例是開發人員難於尋覓的解決方案。本書附帶有配套DVD光碟,光碟中提供有書中全部實例的原始碼,這些原始碼都是經過作者精心調試通過的,保證能夠在Windows XP、Windows 2003及Windows 7作業系統下編譯和運行。
本書非常適合Java Web項目開發人員、Java Web初學者及編程愛好者使用,同時也可以作為培訓機構、大中專院校老師和學生的實踐參考用書。
前言
前 言
特別說明:
《Java Web開發實戰1200例》包括第I卷、第II卷總計1200個例子,本書是第II卷,包含600個例子。
程式開發是一項艱辛的工作,不僅考驗著開發人員的智力,更考驗著開發人員的體力。縱觀國內的軟體企業,內部開發團隊挑燈夜戰、連續加班是常有的事情。筆者曾“有幸”參加過十幾個項目的開發工作,對編程有深刻的體會。編程是一項複雜的創造性工作,它不僅需要開發人員掌握各方面的知識,還需要開發人員積累豐富的開發經驗。項目開發中的一個問題可能會占用團隊幾天甚至十幾天的時間,但是如果開發人員遇到過類似的問題,也許幾分鐘就可以解決。這就體現了編程經驗的重要性,也是許多軟體企業用人時選擇有項目開發經驗人員的主要原因。
本書作者精選了項目開發中的600個實例,涵蓋了操作XML檔案、傳送與接收郵件、資料庫操作技術、SQL語句套用技術、複雜查詢技術、資料庫高級套用、JFreeChart繪圖基礎、基礎圖表技術、擴展圖表技術、基於Cewolf組件的圖表編程、Prototype框架、jQuery框架、Dojo框架、Struts2框架套用、Struts2框架標籤套用、Hibernate框架基礎、Hibernate高級話題、Spring框架基礎、Spring的 Web MVC 框架、網站性能最佳化與安全策略、設計模式與架構、網站設計與網頁配色、Java Web典型項目開發案例等各方面的內容,每一個知識點下還提供了針對性強、實用性高的經驗技巧,幫助開發人員快速解決疑難問題。希望本書能夠成為編程人員身邊的必備參考書,為讀者學習編程和從事項目開發起到推波助瀾的作用。
本書內容
本書分為7篇23章,總計600個實例。所選實例均來源於一線開發人員的實際項目開發,囊括了開發中經常使用和需要解決的熱點、難點問題。通過本書的學習,讀者可以快速地解決開發中的難題,提高編程效率。本書亮點內容導航如下圖所示。
為了方便讀者學習書中實例,積累開發經驗,本書在講解實例時按照 “實例說明”、“關鍵技術”、“設計過程”和“秘笈心法”4個階段進行講解。
* 實例說明
實例說明部分利用圖文結合的方式,介紹實例的特點、功能和運行效果,使讀者可以快速了解實例的作用和從實例中可學到的技能。
* 關鍵技術
關鍵技術部分剖析了實例使用的核心技術。這樣,讀者在不必查看設計過程和原始碼的情況下就可以快速掌握實例關鍵技術,甚至直接做出實例。
* 設計過程
設計過程部分詳細介紹了實例的開發過程,讀者可以按照該部分內容做出自己的實例程式。
* 秘笈心法
秘笈心法部分給出了與實例相關的技巧、注意事項或經驗總結,豐富讀者的編程經驗。
下圖展示了一個實例文檔縮略圖。
本書特色
* 實例豐富,經驗超值
本書精選了600個實例和600條經驗技巧,涵蓋了編程多個方面的各種套用,用戶開發中所需的技術、技巧、解決方案幾乎都可找到。
* 易查、易學、易用
可以通過目錄查找任意實例的實例說明、關鍵技術、設計過程、秘笈心法等內容。
* 特點突出,功能完善,實用性強
書中所選實例均是項目開發中經常需要使用或實現的技術,有許多實例是開發人員夢寐以求的。
* 贈送所有實例源碼
書中所有實例均提供有原始碼,用戶在開發中可以快速借鑑或套用。
* 段落工整、簡潔,圖文結合,更容易學習
* 編碼規範,注釋詳盡
為了提高用戶的實際開發能力,書中代碼都是經過嚴格審查的,可以與商業源碼媲美。此外,為了方便用戶閱讀代碼,幾乎所有代碼都提供有詳細注釋。
超值DVD光碟
為了幫助讀者學習和使用書中的實例,本書附贈有DVD光碟,裡面不僅提供有書中所有實例項目的原始碼、素材,還提供了關鍵實例的開發視頻講解及Java Web學習資料。光碟目錄如下圖所示。
本書約定
* 實例使用方法
用戶在學習本書過程中,可以從光碟中複製實例,去掉實例的唯讀屬性。有些實例需要使用相應的資料庫或第三方資源,這些實例在使用前需要進行相應配置,詳細使用方法請參考本書光碟使用說明書。此外,如果用戶直接將本書實例用於商業用途,由此產生的不良後果由用戶自己承擔。
* 實例及錄像位置
書中實例在光碟中的存儲格式為“MR\章號\實例序號”。例如,“MR\11\267”表示實例267,位於第11章。
* 部分實例只給出關鍵代碼
由於篇幅有限,書中有些實例只給出了關鍵代碼,完整代碼參見配書光碟實例程式。
讀者人群
本書非常適合以下人員閱讀:
* 從事Java Web編程行業的開發人員
* 有一定語言基礎,想進一步提高技能的人員
* 大中專院校的老師和學生
* 即將從事軟體開發工作的大學畢業生
* 相關培訓機構的老師和學員
* Java Web編程愛好者
本書作者
本書由明日科技組織編寫,參加編寫的程式設計師人盧瀚、陳丹丹、朱曉、王國輝、白偉明、李文斌、李繼業、張磊、賽奎春、高春艷、宋坤、劉銳寧、梁水、李偉明、劉彬彬、安劍、孫秀梅、鞏建華、房大偉、呂雙、劉雲峰、李鍾尉、張振坤、李鑫、李偉、潘凱華、楊明、劉欣、李慧、梁曉嵐、楊麗、顧麗麗、肖鑫、劉齡齡、王樂樂、陳英、劉瑩、李賀等。
由於作者水平有限,書中疏漏和不足之處在所難免,肯請廣大讀者朋友批評指正。
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書的最後幾章內容不得不放在配書光碟中(參見目錄),由此給您帶來了不便,在此深表歉意。
編 者
圖書目錄
第1篇 流行組件套用篇
第1章 操作XML檔案 2
1.1 XML基礎操作 3
實例001 CSS格式化XML布局 3
實例002 CSS改變XML中滑鼠指針形狀 5
實例003 CSS在XML中添加背景圖 7
實例004 CSS製作XML表格 8
實例005 XML中的提取節點字元串值 10
實例006 在XML內部定義DTD 12
實例007 在XML外部引用DTD 14
實例008 驗證XML是否符合DTD的定義 15
實例009 在DTD中聲明元素 16
實例010 在DTD中聲明重複元素 17
實例011 在DTD中聲明選擇性元素 19
實例012 在DTD中使用ENTITY 20
1.2 套用XML Schema 21
實例013 驗證XML是否符合Schema的描述 21
實例014 XSD文檔根元素的引用 24
實例015 在XSD中設定元素的出現順序 25
實例016 在XSD中使用擴展數據類型 26
實例017 在XSD中使用元素的條理化 29
實例018 XSD中的多屬性打包 30
實例019 XSD中對元素的限定 32
實例020 在XSD中使用取值範圍的限定 34
實例021 在XSD中聲明元素屬性 36
實例022 在XSD中對字元進行限制 38
實例023 在XSD中對數值進行限制 39
1.3 XML解析 41
實例024 使用DOM組件從檔案中讀取XML 41
實例025 使用DOM組件從數據流中讀取XML 42
實例026 使用JDOM組件從檔案中讀取XML 44
實例027 使用JDOM組件讀取XML 45
實例028 使用SAX組件從檔案中讀取XML 48
實例029 使用SAX組件從數據流中讀取XML 50
實例030 使用DOM組件解析XML元素名稱 52
實例031 使用DOM組件解析XML元素名稱和
內容 54
實例032 使用SAX組件解析XML元素名稱 56
實例033 使用SAX組件解析XML元素名稱和內容 58
實例034 使用SAX組件解析XML元素屬性和
屬性值 61
實例035 使用DOM組件解析XML元素屬性和
屬性值 62
實例036 使用SAX驗證DTD 64
實例037 使用dom4j解析XML檔案 66
第2章 傳送與接收郵件 69
2.1 配置郵件伺服器 70
實例038 在Windows Server 2003系統下安裝和
配置郵件伺服器 70
實例039 配置開源郵件伺服器Apache James Server 72
實例040 安裝和配置Magic Winmail郵件伺服器 73
2.2 套用JavaMail組件傳送郵件 75
實例041 傳送普通格式的郵件 76
實例042 傳送HTML格式的郵件 78
實例043 傳送帶附屬檔案的郵件 80
實例044 群發普通郵件 82
實例045 群發HTML格式的郵件 84
實例046 群髮帶附屬檔案的郵件 85
實例047 通過信箱激活用戶的註冊 86
2.3 套用JavaMail組件接收郵件 89
實例048 套用POP3協定接收未讀郵件和已讀郵件 89
實例049 套用POP3協定接收帶附屬檔案的郵件 94
實例050 套用IMAP協定接收未讀郵件和已讀郵件 100
實例051 套用IMAP協定接收帶附屬檔案的郵件 103
2.4 套用Apache commons-email組件
傳送郵件 106
實例052 傳送普通格式的郵件 106
實例053 傳送帶多個附屬檔案的郵件 108
實例054 群發普通郵件 110
實例055 群發HTML格式的郵件 111
實例056 群髮帶附屬檔案的郵件 112
實例057 通過信箱激活用戶的註冊 113
2.5 套用Spring的E-mail抽象層傳送郵件 116
實例058 傳送普通文本郵件 116
實例059 傳送HTML格式的郵件 118
實例060 傳送帶附屬檔案的郵件 121
實例061 群發普通文本郵件 123
第2篇 資料庫套用篇
第3章 資料庫操作技術 126
3.1 建立Connection資料庫連線 127
實例062 建立Access資料庫連線 127
實例063 建立與MySQL資料庫的連線 128
實例064 建立與SQL Server 2000資料庫的連線 129
實例065 建立與SQL Server 2005資料庫的連線 130
實例066 建立與Oracle資料庫的連線 131
實例067 建立與Java DB資料庫的連線 132
3.2 資料庫與數據表 133
實例068 列舉SQL Server資料庫中的數據表 133
實例069 列舉MySQL資料庫中的數據表 134
實例070 查看數據表結構 135
實例071 動態維護投票資料庫 136
實例072 SQL Server資料庫的備份 139
實例073 SQL Server資料庫的恢復 142
實例074 MySQL資料庫的備份 145
實例075 MySQL資料庫的恢復 147
3.3 資料庫的添加、刪除與更新操作 148
實例076 將員工信息添加到員工表 148
實例077 在添加數據時進行數據驗證 149
實例078 插入用戶登錄日誌信息 150
實例079 生成有規律的編號 151
實例080 生成沒有規律的編號 153
實例081 在插入數據時過濾掉危險字元 154
實例082 將用戶選擇的愛好信息以字元串形式
保存到資料庫 155
實例083 實現跨資料庫的表內容複製 156
實例084 使用UNION ALL語句批量插入數據 156
實例085 更新指定記錄 157
實例086 將數據表清空 159
第4章 SQL語句套用技術 160
4.1 聚集函式與日期查詢 161
實例087 利用SUM函式實現數據匯總 161
實例088 利用AVG函式實現計算平均值 162
實例089 利用MIN函式求數據表中的最小數據 163
實例090 套用MAX函式求數據表中的最大值 164
實例091 COUNT函式求銷售額大於某值的
圖書種類 165
實例092 查詢與張靜同一天入司的員工信息 166
實例093 使用IN謂詞查詢某幾個時間的數據 167
實例094 對數據進行降序排序查詢 169
實例095 數據的多條件排序查詢 170
實例096 對統計結果進行排序 171
實例097 查詢SQL Server數據表中的前3條數據 174
實例098 查詢SQL Server數據表中的後3條數據 175
實例099 查詢MySQL數據表中的前3條數據 176
實例100 查詢MySQL數據表中的後3條數據 177
4.2 排序與分組函式的套用 178
實例101 按照字母順序對留學生表進行排序 178
實例102 按姓氏筆畫排序 180
實例103 將漢字按音序排序 181
實例104 按列的編號排序 182
實例105 從表中隨機返回記錄 183
實例106 使用GROUP BY子句實現數據的
分組統計 184
實例107 利用GROUP BY函式實現多表分組
統計 185
4.3 比較大小與邏輯套用 187
實例108 在查詢結果中不顯示重複記錄 187
實例109 使用NOT查詢不滿足條件的記錄 188
實例110 使用BETWEEN進行區間查詢 190
實例111 使用關係運算符查詢某一時間段的
數據 191
實例112 計算兩個日期間的月份數 192
第5章 複雜查詢技術 194
5.1 使用子查詢 195
實例113 將子查詢作為表達式 195
實例114 用子查詢作為派生表 196
實例115 通過子查詢關聯數據 197
實例116 使用IN謂詞限定查詢範圍 198
實例117 使用NOT IN子查詢實現差集運算 200
實例118 使用NOT IN子查詢實現反向查詢 201
實例119 實現笛卡兒乘積查詢 202
實例120 比較運算符引入子查詢 203
實例121 在查詢中使用聚合函式 204
實例122 在刪除數據時使用子查詢 205
5.2 多表連線查詢 206
實例123 使用UNION運算符使學生檔案歸檔 206
實例124 內連線查詢指定課程的教師信息 207
實例125 左外連線查詢員工信息 208
實例126 右外連線查詢員工信息 210
實例127 多表外連線查詢 211
實例128 完全連線查詢 212
5.3 嵌套查詢 213
實例129 查詢平均成績在85分以上的學生信息 213
實例130 多表統計本科學歷部門經理的月收入
情況 214
實例131 在嵌套中使用exists關鍵字 215
實例132 動態指定查詢條件 216
5.4 常見謂詞的使用 217
實例133 套用patindex謂詞進行模糊查詢 217
實例134 在查詢中使用四捨五入謂詞ROUND 218
實例135 查詢比質量部所有員工工資都高的
員工信息 219
實例136 查詢工資高於質量部任意一名員工的
員工信息 220
實例137 套用UNION謂詞消除重複的行 221
實例138 套用UNION ALL謂詞保留重複行 222
實例139 查詢各商品銷售額所占的百分比 223
第6章 資料庫高級套用 225
6.1 在JavaWeb程式中調用存儲過程 226
實例140 調用存儲過程實現用戶身份的驗證 226
實例141 調用存儲過程添加數據 227
實例142 調用加密存儲過程 228
實例143 獲取資料庫中所有存儲過程 229
實例144 修改存儲過程 231
實例145 刪除存儲過程 232
6.2 使用觸發器 233
實例146 套用觸發器添加日誌信息 233
實例147 套用觸發器級聯刪除數據 235
實例148 調用UPDATE觸發器修改數據 236
實例149 獲取資料庫中所有觸發器名稱 238
實例150 創建帶有觸發條件的觸發器 238
6.3 使用批處理 240
實例151 使用批處理刪除數據 240
實例152 批量提高員工工資 243
實例153 將教師表中數據全部添加到選課表 244
實例154 在批處理中使用事務 246
6.4 使用視圖 247
實例155 通過Java Web程式創建視圖 247
實例156 套用視圖查詢數據 250
實例157 使用視圖計算數據 251
實例158 使用視圖格式化檢索出來的數據 252
實例159 獲取資料庫中的全部用戶視圖 253
實例160 修改視圖 254
實例161 刪除視圖 255
第3篇 圖表統計篇
第7章 JFreeChart繪圖基礎 260
7.1 圖表的基礎 261
實例162 基本餅圖 261
實例163 顯示圖例 263
實例164 工具列提示 264
實例165 亂碼問題 265
實例166 顯示數值 267
實例167 抗鋸齒設定 268
7.2 設定圖表的背景 270
實例168 設定背景圖 270
實例169 設定背景圖片透明度 271
實例170 設定背景色 273
7.3 處理圖表的框線 274
實例171 隱藏圖表框線 274
實例172 圖表框線顏色和筆觸 275
7.4 修改圖表的圖例 277
實例173 設定圖例背景色 277
實例174 設定圖例框線 278
實例175 設定圖例邊緣間距 279
實例176 設定圖例字型顏色 281
實例177 設定圖例位置 282
第8章 基礎圖表技術 284
8.1 普通餅圖 285
實例178 分離餅圖 285
實例179 橢圓形餅圖 286
實例180 餅圖的陰影 287
實例181 加粗餅圖分類框線 288
實例182 設定餅圖顏色 289
實例183 餅圖旋轉角度和順序 291
實例184 隱藏分類標籤連線線 292
8.2 3D餅圖 294
實例185 創建3D餅圖 294
實例186 3D餅圖透明度 295
實例187 3D餅圖的Z軸 296
8.3 多餅圖 297
實例188 實現多餅圖 297
實例189 多餅圖亂碼 299
實例190 3D多餅圖 301
8.4 基本柱形圖 302
實例191 簡單柱形圖 302
實例192 柱形圖角度 304
實例193 柱形圖負值 306
8.5 X坐標軸 307
實例194 X軸字型 307
實例195 X軸標籤字型 308
實例196 X軸標籤角度 310
實例197 X軸尺度線顏色 312
實例198 隱藏X軸尺度線 313
實例199 X軸尺度線筆觸 315
實例200 X軸尺度標籤 317
實例201 X軸分類的間距 318
實例202 X軸分類與原點的間距 320
實例203 X軸的顯示位置 321
8.6 Y坐標軸 323
實例204 Y軸字型 323
實例205 Y軸標籤字型 324
實例206 Y軸顯示情況 326
實例207 Y軸尺度線顏色和筆觸 327
實例208 隱藏Y軸尺度線 329
實例209 Y軸尺度標籤角度 331
實例210 Y軸起始值 332
實例211 Y軸箭頭 333
實例212 隱藏Y軸主要刻度線 335
實例213 Y軸主要刻度線長度 336
實例214 設定Y軸最大值 338
實例215 設定Y軸數據範圍 339
實例216 Y軸的顯示位置 341
8.7 高級柱形圖 342
實例217 設定格線豎線 342
實例218 設定格線豎線顏色 344
實例219 設定柱形圖文本註解 345
實例220 設定柱形圖文本註解字型 347
實例221 設定柱形圖文本註解錨點 349
實例222 設定柱形圖文本註解的類別錨點 350
實例223 設定柱形圖文本註解旋轉錨點 352
實例224 設定柱形圖線條註解 354
實例225 繪製柱形效果 355
實例226 柱形圖陰影 357
實例227 柱形圖陰影偏移 358
實例228 設定柱形的顏色 360
實例229 繪製3D柱形圖 361
實例230 標記柱形圖區間 363
實例231 多系列柱形圖 365
實例232 多系列3D柱形圖 367
第9章 擴展圖表技術 369
9.1 區域圖 370
實例233 基本區域圖 370
實例234 顯示多分類區域圖 371
實例235 設定區域圖透明度 373
實例236 添加說明文字 375
實例237 設定說明文字位置 377
實例238 設定區域圖X軸顯示位置 379
實例239 設定區域圖X軸標籤角度 381
實例240 設定區域圖X軸尺度標籤角度 383
實例241 設定區域顏色 384
9.2 折線圖 386
實例242 創建基本折線圖 386
實例243 創建多條折線圖 388
實例244 創建水平折線圖 390
實例245 隱藏折線圖中指定系列的折線 392
實例246 加粗折線 393
實例247 顯示折線節點 395
實例248 生成節點圖 397
實例249 繪製虛線折線圖 399
實例250 設定折線顏色 401
實例251 3D折線圖 402
實例252 XY折線圖 405
實例253 排序折線圖 407
9.3 時序圖 408
實例254 基本時序圖 408
實例255 設定時間顯示格式 410
實例256 添加雙時間軸 412
實例257 設定雙時間軸位置 413
實例258 動態顯示十字標記 415
實例259 添加Y軸標記 417
實例260 添加X軸標記 419
實例261 設定刻度單位 420
實例262 設定時間軸範圍 422
9.4 聯合分類圖 423
實例263 生成線形圖與柱形圖 423
實例264 設定圖表高度 425
實例265 設定圖表位置 427
9.5 圖表的綜合套用 429
實例266 利用餅圖分析不同程式語言的市場
占有率 429
實例267 利用柱形圖顯示某Ajax網站不同框架的
年下載量 431
實例268 利用折線圖分析不同城市氣溫變化
情況 432
實例269 利用區域圖分析不同學生的成績變化 433
實例270 利用時序圖分析股票價格走勢 434
實例271 利用時序圖分析2009年國際原油價格
走勢 436
實例272 利用組合圖表分析學生零用錢收支
情況 437
第10章 基於Cewolf組件的圖表編程 440
10.1 生成基於DefaultCategoryDataset
數據集的圖表 441
實例273 生成水平直方圖 441
實例274 生成水平堆疊圖 443
實例275 繪製3D垂直直方圖 445
實例276 生成垂直堆疊圖 446
實例277 生成區域圖 447
10.2 繪製餅狀圖表 448
實例278 生成普通餅圖 448
實例279 生成3D餅圖 450
10.3 繪製基於XYDataset數據集的圖表 451
實例280 生成線段圖(折線圖) 451
實例281 生成區域圖 453
實例282 生成散列圖 454
實例283 生成時序圖 455
實例284 生成直方圖 457
10.4 繪製基於OHLCDataset數據集的
圖表 458
實例285 生成K線圖 458
實例286 生成高低圖(HighLow) 460
10.5 生成組合圖表 461
實例287 生成水平組合圖表 461
實例288 生成垂直組合圖表 463
10.6 繪製其他類型的圖表 464
實例289 生成甘特圖 464
實例290 生成羅盤圖 466
實例291 生成速度圖 467
10.7 綜合圖表的套用 469
實例292 利用柱形圖對比不同城市的房價 469
實例293 利用餅圖顯示投票結果 470
實例294 利用折線圖分析某城市蔬菜價格走勢 472
實例295 利用區域圖對比分析員工業績 473
實例296 利用時序圖分析商品月銷售收益 475
實例297 利用組合圖表分析國際原油價格走勢 477
第4篇 Ajax框架套用篇
第11章 Prototype框架 480
11.1 使用Prototype基本函式 481
實例298 使用$()函式獲取頁面元素 481
實例299 使用$A()函式實現將參數轉換為數組 482
實例300 使用$F()函式獲取表單輸入控制項的值 483
實例301 使用Try.these()函式獲取返回值 484
11.2 Prototype自定義對象和類 485
實例302 在HTML元素中增加CSS樣式 485
實例303 利用Enumerable對象在頁面中顯示
數組元素 486
實例304 使用Field對象操作表單域 488
實例305 通過Form對象實現讓表單元素失效 489
實例306 使用Form.Element對象返回特定表
單域的值 491
11.3 對Ajax的支持 492
實例307 Ajax.Request對象傳送請求 492
實例308 註冊全局的事件處理器 493
實例309 定時刷新時間 495
第12章 jQuery框架 497
12.1 DOM技術 498
實例310 獲取文本框中的文本 498
實例311 利用jQuery實現查找節點 500
實例312 動態為表格追加樣式 501
實例313 動態為表格移除樣式 502
實例314 實現表格的樣式切換 504
12.2 表單處理 505
實例315 實現表單文本域的放大和縮小 505
實例316 實現複選框的全選與反選 506
實例317 列表框的綜合套用 507
實例318 實現表單驗證 509
實例319 密碼強度檢測 510
實例320 文本框提示標籤 511
12.3 操作表格 512
實例321 表格隔行變色 512
實例322 通過單選按鈕控制表格的行高亮顯示 513
實例323 通過複選框控制表格的行高亮顯示 515
實例324 表格的展開與關閉 516
實例325 利用文本框的值實現對表格內容的篩選 517
12.4 其他特效 518
實例326 製作網頁選項卡 518
實例327 日期拾取器 519
實例328 網頁軟鍵盤 520
實例329 圖片幻燈片 521
實例330 顏色拾取器 522
實例331 廣告輪顯 523
實例332 圖片放大鏡 525
實例333 文本編輯器 526
實例334 右鍵選單 527
實例335 結合jQuery實現線上剪裁 529
12.5 對Ajax的支持 532
實例336 檢測用戶名是否被占用 532
實例337 驗證用戶登錄 534
實例338 基於JQuery的Ajax聊天室 536
第13章 Dojo框架 538
13.1 Dojo的常用widget 539
實例339 實現網頁按鈕 539
實例340 實現網頁對話框 540
實例341 實現日曆功能 542
實例342 實現網頁的多頁面 543
13.2 Dojo的基本套用 544
實例343 滑鼠單擊事件處理 544
實例344 訪問被監聽方法的參數 546
實例345 頁面HTML元素的任意移動 547
實例346 頁面元素的相對移動 548
實例347 帶手柄的移動 550
13.3 Dojo對Ajax的支持 551
實例348 基本請求的傳送 551
實例349 請求佇列的傳送 553
實例350 對象的字元串化 554
實例351 表單請求傳送 556
第5篇 流行框架篇
第14章 Struts2框架套用 560
14.1 Struts2的基本配置與零配置 561
實例352 成績統計器 561
實例353 成績排序 562
實例354 用戶的直接登錄 564
實例355 實現用戶的中間退出 565
14.2 Struts2數據校驗與攔截器 566
實例356 日期轉換器 566
實例357 實現空表單信息的提示 567
實例358 計時攔截器 569
實例359 等待攔截器 569
實例360 許可權驗證攔截器 570
14.3 檔案上傳與下載 572
實例361 單檔案的上傳 572
實例362 上傳錯誤信息的提示 573
實例363 特定檔案格式的上傳 574
實例364 限定上傳檔案的大小 575
實例365 多檔案的上傳 575
實例366 檔案下載 577
14.4 Struts2對Ajax的支持 578
實例367 調試信息的輸出 578
實例368 數據校驗錯誤信息的輸出 579
實例369 Action中錯誤信息的輸出 580
實例370 顯示Action的信息 580
實例371 顯示新聞列表 581
實例372 頁面的自動刷新 582
實例373 訪問註冊頁面出錯 583
實例374 無刷新實現登錄 584
實例375 無刷新實現註銷 585
實例376 實現標籤頁 586
實例377 調試信息的輸出 587
實例378 數據的樹狀輸出 588
實例379 檔案的樹狀顯示 589
實例380 動態載入數據 590
第15章 Struts2框架標籤套用 593
15.1 OGNL語言 594
實例381 訪問OGNL上下文 594
實例382 訪問ActionContext資源 595
實例383 用“#”過濾篩選集合 596
實例384 用“#”構造Map 598
實例385 獲取Request的account屬性 598
實例386 在資源國際化中引用OGNL 599
實例387 在struts.xml中引用OGNL 600
15.2 控制標籤 601
實例388 判斷用戶是否存在 601
實例389 用戶不存在的提示 602
實例390 簡單的計算器 603
實例391 多集合的連線 604
實例392 字元串的分割 605
實例393 集合的混合合併 606
實例394 篩選集合元素 607
15.3 數據標籤 608
實例395 Action頁面的引入 608
實例396 JavaBean的引用 609
實例397 頁面日期的輸出 611
實例398 頁面日期的格式化輸出 612
實例399 計算日期的時間差 612
實例400 聲明資源的國際化 614
實例401 JSP頁面的引入 615
實例402 頁面間數據的傳遞 616
實例403 頁面數據的設定 617
實例404 變數值的頁面輸出 618
15.4 表單標籤 619
實例405 表單的輸出 619
實例406 用戶名的填寫 620
實例407 簡單的用戶登錄頁面 621
實例408 本地檔案的瀏覽 622
實例409 數據的默認選擇 622
實例410 頁面中單選按鈕的實現 623
實例411 實現表單的提交 624
實例412 實現下拉列表框 625
實例413 具有自動完成功能的下拉列表框 626
實例414 使用動態數據的下拉列表框 627
實例415 複選框的實現 628
實例416 實現可填寫的複合框 628
實例417 日期選擇器 629
實例418 聯動選擇框 630
實例419 多級數據選擇框 631
第16章 Hibernate框架基礎 632
16.1 操作實體對象 633
實例420 將實體對象保存到資料庫 633
實例421 更新實體對象 636
實例422 刪除數據 638
實例423 批量添加數據 640
實例424 採用一對一關聯添加數據 643
實例425 採用一對多關聯添加數據 645
16.2 HQL與QBC檢索方式 647
實例426 分組統計 647
實例427 利用統計函式SUM求銷售總額 648
實例428 利用統計函式AVG求某班學生的
平均成績 650
實例429 利用統計函式COUNT統計當前註冊
用戶人數 652
實例430 利用HQL查詢圖書表中的所有數據 653
實例431 利用HQL查詢滿足指定條件的數據 654
實例432 HQL綁定參數查詢 656
實例433 只返回一個檢索對象 658
實例434 限制返回結果的範圍 659
實例435 分頁查詢數據 661
實例436 利用QBC檢索欄位為空的記錄 663
實例437 利用QBC檢索不滿足指定條件的記錄 664
實例438 QBC忽略大小寫查詢 666
實例439 利用QBC查詢滿足指定範圍的所有
記錄 667
實例440 利用HQL實現模糊查詢 669
實例441 利用QBC實現模糊查詢 670
實例442 HQL在查詢中使用統計函式 671
實例443 利用HQL實現投影查詢 672
實例444 QBC實現將查詢結果排序 673
實例445 HQL內連線查詢商品信息 674
第17章 Hibernate高級話題 676
17.1 關聯映射 677
實例446 關聯映射實現級聯保存與更新 677
實例447 建立商品表與商品類型表的雙向關聯 678
實例448 實現商品表的自關聯 680
實例449 在持久化類方法中加入程式代碼 681
實例450 主鍵的關聯映射 682
實例451 外鍵關聯映射 684
實例452 多對多單向關聯映射學生表與科目表 686
實例453 多對多雙向關聯映射學生表與科目表 687
17.2 Hibernate檢索策略 689
實例454 一對多立即檢索策略 689
實例455 多對一的立即檢索策略 690
實例456 一對多的延遲檢索策略 691
實例457 迫切左外連線查詢 693
17.3 Hibernate集合映射與事務套用 694
實例458 通過映射Set集合實現添加數據 694
實例459 通過映射List集合實現添加數據 696
實例460 通過映射Map集合實現添加數據 697
實例461 事務回滾的套用 698
實例462 配置持久化類實現樂觀鎖的使用 699
第18章 Spring框架基礎 702
18.1 Spring的依賴注入 703
實例463 套用Setter注入法實現Bean的注入 703
實例464 套用構造器注入法實現Bean的注入 704
實例465 套用@Autowired註解實現Bean的
注入 706
實例466 套用@Resource註解實現Bean的注入 708
實例467 零配置實現Bean的注入 709
實例468 為JavaBean的集合對象注入屬性值 711
實例469 使用<prop>標籤為Java持久屬性集
注入值 713
實例470 按照Bean的名稱自動裝配User 714
實例471 按照Bean的類型自動裝配User 715
實例472 配置Bean的延遲初始化 715
實例473 通過<beans>設定統一的延遲初始化
行為 716
實例474 自定義MyDateEditor編輯器實現類型
轉換 717
實例475 驗證用戶登錄 718
18.2 Spring的事務管理 720
實例476 套用編程式事務管理向用戶信息表
插入數據 720
實例477 套用編程式事務管理向學生信息表
插入數據 723
18.3 Spring的面向切面編程 724
實例478 利用Spring AOP使日誌輸出與方法
分離 724
實例479 Spring AOP實現用戶註冊 726
18.4 Spring的持久化 728
實例480 在Spring中利用DAO模式添加數據 728
實例481 利用JdbcTemplate向員工信息表添加
數據 730
實例482 利用JdbcTemplate查詢員工信息表 732
實例483 利用JdbcTemplate更新指定員工信息 733
實例484 使用JdbcTemplate調用存儲過程查詢
商品 736
實例485 使用SimpleJdbcTemplate添加圖書
信息 738
實例486 使用SimpleJdbcTemplate查詢指定圖書
信息 739
實例487 在Spring中配置DBCP資料庫連線池 741
實例488 在Spring中使用占位符配置數據源 742
實例489 使用destroy-method處理數據源 744
實例490 Spring分頁顯示圖書信息 745
實例491 整合Spring和Hibernate添加員工信息 747
實例492 整合Spring和Hibernate批量添加
用戶信息 749
18.5 在Spring中生成非HTML輸出 751
實例493 利用Spring將學生信息導出到Excel
工作表 751
實例494 利用Spring將圖書信息導出到PDF
檔案 754
18.6 Spring檔案上傳與國際化 755
實例495 利用Spring實現檔案的上傳 755
實例496 利用Spring實現用戶登錄頁面的國際化 758
第19章 Spring的Web MVC框架 759
19.1 Spring的控制器 760
實例497 使用簡單控制器獲取表單數據 760
實例498 參數映射控制器映射JSP頁面 762
實例499 檔案名稱映射控制器映射JSP頁面 763
實例500 命令控制器獲取URL中的參數查詢
信息 765
實例501 利用表單控制器向圖書信息表中添加
數據 767
實例502 利用表單控制器驗證用戶登錄 770
實例503 利用多動作控制器跳轉到不同頁面 772
實例504 利用嚮導控制器實現用戶註冊 773
實例505 利用多動作控制器操作員工信息表的
數據 776
19.2 線上通訊錄 778
實例506 添加新聯繫人 778
實例507 修改聯繫人信息 781
實例508 刪除聯繫人 783
實例509 查詢通訊錄中的信息 784
19.3 圖書信息管理 785
實例510 添加圖書信息 785
實例511 修改圖書信息 787
實例512 刪除圖書信息 788
實例513 查詢圖書信息 789
第6篇 網站安全與架構模式篇
第20章 網站性能最佳化與安全策略 792
20.1 檔案保護 793
實例514 防止用戶直接輸入地址訪問JSP檔案 793
實例515 防止頁面重複提交 795
實例516 對查詢字元串進行URL編碼 798
實例517 過濾非法字元 799
實例518 禁止用戶輸入敏感字元 801
20.2 漏洞防護與數據加密 802
實例519 檔案上傳漏洞 802
實例520 防止資源被盜鏈下載 806
實例521 對登錄密碼進行加密 807
實例522 字元串加密 810
實例523 MD5加密註冊用戶名和密碼 812
20.3 獲取客戶端信息 814
實例524 確定對方的IP位址 814
實例525 獲取客戶端TCP/IP連線埠的方法 815
實例526 確定對方的瀏覽器信息 817
實例527 確定對方瀏覽器可接收信息的類型 817
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書以下章節內容不得不放在配書光碟中,由此給您帶來了不便,在此深表歉意。
第21章 設計模式與架構 819
(本章內容在配書光碟中)
21.1 接口型模式 820
實例528 適配器模式 820
實例529 外觀模式 821
實例530 組合模式 824
實例531 橋接模式 826
21.2 責任型模式 829
實例532 單例模式 829
實例533 建造者模式 831
實例534 中介者模式 834
實例535 責任鏈模式 836
實例536 享元模式 839
實例537 代理模式 841
21.3 構造型模式 842
實例538 裝飾模式 842
實例539 工廠方法模式 844
實例540 抽象工廠模式 847
實例541 原型模式 849
實例542 備忘錄模式 851
21.4 行為型模式 853
實例543 命令模式 853
實例544 解釋器模式 855
實例545 疊代器模式 857
實例546 觀察者模式 859
實例547 狀態模式 862
實例548 策略模式 864
實例549 模板方法模式 866
實例550 訪問者模式 868
21.5 網站開發架構模式 870
實例551 MVC框架在聯繫人管理網站中的
套用 870
實例552 套用MVC架構開發簡單計算器 874
第7篇 綜合套用篇
第22章 網站設計與網頁配色 880
(本章內容在配書光碟中)
22.1 企業網站 881
實例553 汽車銷售網 881
實例554 醫藥連鎖網 882
實例555 硬體產品網 883
實例556 軟體產品網 884
實例557 物流網 885
實例558 賓館酒店網 886
22.2 電子商務類 887
實例559 B2C電子商務網 887
實例560 B2B電子商務網 888
22.3 搜尋引擎類 889
實例561 站內搜尋引擎 889
實例562 網際網路搜尋引擎 890
22.4 生活資訊類 891
實例563 家居銷售網 892
實例564 房地產信息網 893
22.5 娛樂類網站 894
實例565 音樂網 894
實例566 電影網 895
實例567 遊戲門戶網 897
22.6 供求信息類 898
實例568 人才供求網 898
實例569 二手商品供求網 899
22.7 其他套用 900
實例570 個人主頁 900
實例571 美食網 902
實例572 部落格網站 903
第23章 Java Web典型項目開發案例 904
(本章內容在配書光碟中)
23.1 Ajax聊天室 905
實例573 實時獲取並顯示線上人員列表 905
實例574 實現用戶發言 907
實例575 實時顯示聊天內容 910
實例576 安全退出聊天室 913
23.2 部落格網核心模組開發 915
實例577 註冊自己的部落格 915
實例578 根據域名訪問部落格 917
實例579 推薦部落格設定 918
實例580 文章瀏覽操作 920
23.3 線上投票統計功能 922
實例581 實現投票功能 922
實例582 實現柱形圖統計功能 923
實例583 實現餅圖統計功能 926
實例584 雙擊滑鼠展開圖片 928
23.4 B2C電子商務網站 929
實例585 添加商品到購物車 929
實例586 查看購物車 931
實例587 修改商品數量 933
實例588 生成訂單 934
23.5 線上音樂 937
實例589 試聽歌曲並同步顯示歌詞 937
實例590 添加歌曲 939
實例591 以順序和隨機方式進行歌曲連播 940
23.6 校內數碼相冊 944
實例592 以幻燈片方式播放數碼相片 944
實例593 創建相冊分類並上傳相片 945
實例594 瀏覽和管理上傳相片 947
實例595 數碼相冊分類管理 950
23.7 仿百度知道之明日知道 953
實例596 線上提問 953
實例597 問題回復 955
實例598 修改問題 956
實例599 關閉提出的問題 957
實例600 搜尋問題 958