內容簡介
目前從網路上的招聘信息可以看到,市場對java web開發人員有著很大的需求,許多企事業單位都在尋求這樣的人才。從嵌入式系統的小遊戲到一些企業級套用系統,都有java web技術的身影。儘管java web如此優秀,學習這門語言的過程卻很生澀。本書就致力於帶領讀者更輕鬆、更愉快地進入java web世界的大門。
本書根據實際開發經驗編寫,不拘泥於深奧的理論,從最基礎的知識點講起。內容包括jsp、xml、jmail、ejb 3.0和mvc模式等,並為讀者準備了一個大型項目,引領讀者體驗java web技術的強大與界面的美觀。
本書非常適合對java web感興趣,思維活躍,期望以一種輕鬆愉快的心態進行學習的讀者。本書完全不需要讀者有任何編程方面的知識,只要有興趣,本書就是最合適的選擇。
目錄
第1章 jsp技術簡介 1
1.1 認識http協定 1
1.1.1 http請求 1
1.1.2 http回響 3
1.2 客戶端web程式設計介紹 3
1.2.1 css 4
1.2.2 javascript 4
1.2.3 vbscript 4
1.2.4 動態html 4
1.2.5 java applet(java小應用程式) 5
1.2.6 瀏覽器技術的作用與局限性 5
1.3 jsp與其他動態網頁技術 6
1.3.1 jsp的開發背景及發展歷史 6
1.3.2 cgi 7
1.3.3 asp 7
1.3.4 php 8
1.4 jsp的運行原理與優點 8
1.5 jsp的運行環境 9
1.6 運行第一個jsp應用程式 10
1.6.1 安裝jdk 10
.1.6.2 安裝tomcat 11
1.6.3 編寫並發布運行jsp檔案 12
1.7 小結 13
第2章 jsp語法 14
2.1 jsp容器與jsp頁面生命周期 14
2.1.1 jsp容器 14
2.1.2 jsp頁面生命周期 14
2.2 jsp注釋 15
2.3 jsp聲明 17
2.4 jsp指令 17
2.4.1 定義jsp檔案的全局屬性——page
指令 17
2.4.2 包含一個檔案——include指令 19
2.5 jsp動作 19
2.5.1 包含一個靜態檔案或其他web組件
的結果——include動作 20
2.5.2 重定向資源——forward動作 22
2.5.3 聲明使用的java外掛程式——plugin動作 23
2.5.4 聲明使用一個javabean——usebean
動作 24
2.5.5 設定javabean的屬性值——setproperty
動作 26
2.5.6 獲取javabean的屬性值——getproperty
動作 27
2.6 java小程式段(scriptlet) 27
2.7 jsp表達式 28
2.8 小結 29
第3章 jsp內置對象 30
3.1 jsp內置對象介紹 30
3.2 處理客戶請求信息——request對象 31
3.2.1 request對象 31
3.2.2 訪問請求參數 32
3.2.3 在請求作用域中管理屬性 35
3.2.4 獲取cookie 36
3.2.5 訪問請求報頭 39
3.2.6 訪問請求行元素 40
3.2.7 訪問安全信息 42
3.2.8 訪問國際化信息 42
3.3 控制伺服器的回響信息——response
對象 43
3.3.1 response對象 44
3.3.2 輸出緩衝 44
3.3.3 設定回響報頭 47
3.3.4 重定向資源 48
3.4 管理客戶的會話——session對象 48
3.4.1 url重寫 48
3.4.2 安裝cookie 49
3.4.3 ssl會話 49
3.4.4 會話服務 49
3.5 web套用全局對象——application
對象 50
3.5.1 訪問應用程式初始化參數 51
3.5.2 管理應用程式環境屬性 51
3.5.3 支持資源的提取 51
3.5.4 requestdispatcher方法 52
3.5.5 其他實用方法 52
3.6 當前頁面的引用——page變數 53
3.6.1 契約服務 53
3.6.2 訪問伺服器小程式信息 53
3.7 servlet的配置信息——config
對象 54
3.8 向客戶輸出數據——out對象 54
3.8.1 管理回響緩衝 55
3.8.2 寫入內容 55
3.9 異常處理——exception變數 55
3.10 小結 56
第4章 servlet技術介紹 57
4.1 servlet簡介 57
4.2 快速體驗servlet——servlet的簡單
例子 58
4.3 servlet的生命周期 60
4.3.1 載入servlet——servlet容器負責 61
4.3.2 初始化servlet——init()方法 61
4.3.3 請求處理——service()方法 62
4.3.4 終結servlet——destroy()方法 62
4.3.5 卸載servlet 62
4.4 httpservlet 62
4.5 web程式的異常處理 64
4.5.1 java的異常處理 64
4.5.2 web程式中的異常處理 65
4.6 小結 66
第5章 javabeans與jsp技術 67
5.1 javabeans技術簡介 67
5.2 javabeans規範 67
5.2.1 javabeans構造方法 68
5.2.2 javabeans屬性 68
5.2.3 javabeans事件 70
5.3 javabeans在jsp技術中的套用 71
5.3.1 快速體驗在jsp中使用javabeans 71
5.3.2 嘗試使用javabeans 73
5.3.3 不共享的javabeans——作用域為
頁面 76
5.3.4 在請求域內共享javabeans 77
5.3.5 在會話域內共享javabeans 77
5.3.6 在應用程式域內共享javabeans 77
5.3.7 javabeans在不同的範圍內共享時的
效果 77
5.4 使用javabeans實現購物車 79
5.5 小結 84
第6章 jsp檔案操作 85
6.1 快速體驗jsp檔案操作——使用jsp
讀取文本檔案的簡單例子 85
6.2 java檔案操作基礎介紹 88
6.2.1 使用檔案類——file類 88
6.2.2 使用位元組流 89
6.2.3 使用字元流 90
6.3 檔案的上傳 90
6.3.1 組件安裝 91
6.3.2 commons-fileupload檔案上傳介紹 91
6.3.3 檔案上傳的例子 92
6.4 小結 97
第7章 jsp web套用的會話管理 98
7.1 jsp的會話管理機制簡介 98
7.1.1 session簡介 98
7.1.2 一個利用會話跟蹤的例子 99
7.2 會話跟蹤實現方法介紹 101
7.2.1 使用隱藏表單欄位 101
7.2.2 使用cookie跟蹤session 101
7.3 在tomcat中配置session 105
7.3.1 為單個web套用配置session 106
7.3.2 為所有的web套用配置session 107
7.4 小結 107
第8章 jsp 2.4技術 108
8.1 jsp 2.4的表達式語言 108
8.2 jsp 2.4新加指令介紹 111
8.2.1 提示錯誤信息——[jsp:fallback] 111
8.2.2 動態產生xml元素——
[jsp:element] 111
8.2.3 定義屬性——[jsp:attribute] 112
8.2.4 定義元素體——[jsp:body] 113
8.2.5 對標籤體內容求值——
[jsp:dobody] 113
8.2.6 調用標籤片段——[jsp:invoke] 114
8.2.7 指定檔案類型聲明——[jsp:output] 114
8.2.8 定義標籤庫的標準元素和命名
空間——[jsp:root] 115
8.2.9 封裝模板數據——[jsp:text] 116
8.3 jsp 2.4簡單標籤擴展 116
8.3.1 使用simpletag接口 116
8.3.2 使用標籤檔案 119
8.4 小結 122
第9章 自定義jsp標籤 123
9.1 自定義jsp標籤實例 123
9.2 自定義jsp標籤相關的api 126
9.2.1 bodytagsupport類 126
9.2.2 simpletagsupport類 128
9.2.3 標籤處理中處理異常 129
9.3 標籤描述檔案 129
9.3.1 taglib標籤庫元素 130
9.3.2 tag標籤元素 130
9.3.3 attribute元素 131
9.3.4 在web套用中使用自定義標籤 132
9.3.5 打包自定義標籤庫 132
9.4 相關問題 133
9.5 小結 133
第10章 jsp標準標籤庫(jstl) 134
10.1 jstl簡介 134
10.2 el表達式語言 135
10.2.1 限制了作用域的變數 136
10.2.2 隱含對象 137
10.2.3 存取器 140
10.2.4 運算符 141
10.3 使用jstl的核心標籤庫 145
10.3.1 通用標籤 145
10.3.2 流程控制標籤 149
10.3.3 循環疊代標籤 150
10.3.4 導入檔案和url操作標籤 151
10.4 小結 152
第11章 關係資料庫與jdbc基礎 153
11.1 使用jsp和jdbc開發第一個
資料庫套用 153
11.1.1 準備資料庫驅動程式和資料庫 153
11.1.2 編寫訪問資料庫的jsp檔案 154
11.1.3 發布訪問資料庫的web套用 157
11.2 關係資料庫與sql語言介紹 158
11.2.1 表操作(定義、刪除和修改) 158
11.2.2 查詢操作 160
11.2.3 數據更新(插入、修改) 161
11.3 jdbc基礎知識 163
11.3.1 jdbc簡介 163
11.3.2 jdbc兩層模型和三層模型 163
11.3.3 指定資料庫的url連線串 164
11.3.4 jdbc api介紹 164
11.4 通過jdbc訪問資料庫 167
11.4.1 使用jdbc-odbc橋連線資料庫 168
11.4.2 使用本地協定純java驅動程式
連線資料庫 172
11.4.3 使用preparedstatement接口傳送
sql語句——數據錄入例子 187
11.4.4 使用jdbc的資料庫事務操作——
銀行轉賬 190
11.5 jsp與資料庫連線池 194
11.6 小結 195
第12章 jsp與java mail web套用 196
12.1 java mail的簡單實例 196
12.1.1 準備郵件伺服器 196
12.1.2 編寫程式 196
12.2 java mail api簡介 198
12.3 創建可傳送附屬檔案的java mail web
套用 199
12.3.1 java mail web套用的程式分析 199
12.3.2 郵件賬戶管理 200
12.3.3 包含檔案 203
12.3.4 登錄郵件伺服器 203
12.3.5 管理郵件夾中的郵件 207
12.3.6 查看郵件 211
12.3.7 寫新郵件 215
12.3.8 退出系統 218
12.4 小結 218
第13章 xml在jsp中的套用 220
13.1 xml與jsp 220
13.1.1 什麼是xml 220
13.1.2 xml的特點 222
13.1.3 xml與jsp的工具介紹 222
13.2 使用dom解析接口操作xml
檔案 223
13.2.1 dom api 223
13.2.2 使用dom讀寫xml檔案
例子 225
13.3 使用jdom操作xml檔案 228
13.3.1 jdom的安裝與簡介 228
13.3.2 使用jdom讀寫xml檔案 229
13.4 使用sax操作xml檔案 231
13.5 使用xslt給xml定製樣式 232
13.6 小結 234
第14章 使用servlet過濾器和監聽器 235
14.1 servlet過濾器簡介 235
14.2 實現一個servlet過濾器 236
14.2.1 編寫實現類的程式 236
14.2.2 配置發布servlet過濾器 238
14.3 servletrequest和servletresponse的
包裝類 239
14.4 用servlet過濾器過濾文本信息 239
14.4.1 輸出流管理類 239
14.4.2 編寫servlet過濾器 240
14.4.3 編寫jsp和servlet檔案 243
14.5 servlet監聽器簡介 247
14.5.1 監聽伺服器servletcontext
對象 247
14.5.2 監聽客戶會話 248
14.5.3 監聽客戶請求 249
14.6 小結 249
第15章 jsp web套用的安全性 250
15.1 jsp/servlet容器認證 250
15.1.1 使用基本認證(basic) 252
15.1.2 使用摘要認證(digest) 253
15.1.3 使用基於表單的認證(form) 253
15.2 為web套用配置使用ssl 255
15.2.1 ssl簡介 255
15.2.2 在tomcat中為web套用配置
使用ssl 257
15.3 小結 259
第16章 tomcat容器的jsp
特色套用 260
16.1 使用tomcat閥 260
16.1.1 客戶訪問日誌閥 260
16.1.2 遠程地址過濾器 262
16.1.3 遠程主機過濾器 262
16.1.4 客戶請求記錄器 263
16.1.5 單點登錄閥 263
16.2 使用基於jndi的應用程式開發
(介紹tomcat的jndi資源) 264
16.2.1 使用通用javabean資源 264
16.2.2 使用javamail sessions資源 267
16.2.3 使用jdbc data sources 268
16.3 小結 268
第17章 在jsp中使用hibernate
實現數據持久化 269
17.1 快速體驗jsp結合hibernate——jsp和hibernate結合的例子 269
17.1.1 hibernate簡介 269
17.1.2 準備資料庫和資料庫連線池 271
17.1.3 編寫持久化類 274
17.1.4 編寫hibernate配置檔案 276
17.1.5 編寫映射檔案 277
17.1.6 編寫jsp套用檔案 278
17.2 hibernate技術介紹 282
17.2.1 映射定義 282
17.2.2 hibernate的類型 285
17.2.3 hibernate事務 286
17.3 hibernate配置 286
17.3.1 可程式的配置方式 287
17.3.2 xml配置檔案方式 289
17.4 小結 290
第18章 jsp web套用的設計與實踐 291
18.1 可維護性與可擴展性設計 291
18.1.1 可維護性 291
18.1.2 可擴展性 292
18.2 jsp web套用的設計 292
18.2.1 以頁面為中心的設計
(model 1) 292
18.2.2 mvc設計模式(model 2) 293
18.3 web套用的架構框架 294
18.3.1 struts 295
18.3.2 webwork2 295
18.3.3 spring 295
18.3.4 javaserver faces 295
18.4 web套用的測試 295
18.5 日誌 296
18.5.1 log4j 296
18.5.2 jakarta commons logging 296
18.6 小結 296
第19章 mvc模式實現——struts 2 297
19.1 快速體驗struts 2——使用struts 2
框架的簡單套用實例 297
19.1.1 下載struts 2所需要的包與搭建
struts 2開發環境 297
19.1.2 實例介紹 299
19.1.3 創建model組件 299
19.1.4 創建view組件 300
19.1.5 編寫配置檔案 301
19.1.6 發布運行web套用 302
19.2 struts 2框架的體系結構與
運行原理 303
19.2.1 從組件來看struts 2的工作
原理 303
19.2.2 struts 2配置檔案struts-config.xml 305
19.3 struts 2組件 307
19.3.1 actionservlet控制器類 307
19.3.2 action組件 308
19.3.3 action mapping 309
19.3.4 actionform bean獲取表單數據 309
19.4 小結 310
第20章 mvc模式實現——webwork 2 311
20.1 快速體驗webwork 2——使用webwork 2框架的簡單套用實例 311
20.1.1 webwork 2簡介 311
20.1.2 建立webwork 2開發環境 312
20.1.3 實例介紹 312
20.1.4 開發構成類和jsp檔案 312
20.2 webwork 2組件介紹 318
20.2.1 action介紹 319
20.2.2 actioncontext介紹 319
20.2.3 servletdispatcher介紹 320
20.2.4 interceptor(攔截器)框架 321
20.2.5 驗證框架 322
20.3 小結 323
第21章 javaserver faces技術 324
21.1 快速體驗javaserver faces——使用 javaserver faces開發的簡單例子 324
21.1.1 javaserver faces技術介紹 324
21.1.2 建立javaserver faces開發環境 325
21.1.3 編寫相關類和檔案 325
21.1.4 編譯發布web套用 330
21.2 javaserver faces的生命周期 331
21.3 jsf定義的組件 332
21.3.1 管理bean 333
21.3.2 驗證器和轉換器 333
21.4 javaserver faces導航規則 335
21.5 小結 336
第22章 jsp結合ejb開發j2ee套用 337
22.1 快速體驗ejb——jsp結合ejb
開發的簡單例子 337
22.1.1 j2ee簡介(j2ee體系結構) 337
22.1.2 jboss入門 338
22.1.3 一個簡單的j2ee套用介紹 339
22.1.4 開發ejb組件 339
22.1.5 在web套用中訪問ejb組件 342
22.1.6 在jboss中發布運行j2ee套用 344
22.2 ejb技術介紹 345
22.2.1 ejb組件介紹 345
22.2.2 實體ejb 346
22.2.3 會話ejb 347
22.2.4 在web套用中訪問ejb組件的
過程 347
22.3 小結 348
第23章 使用log4j進行web套用的
日誌管理與程式調試 349
23.1 快速體驗log4j——使用log4j的
簡單例子 349
23.1.1 log4j簡介 349
23.1.2 建立log4j環境 349
23.1.3 使用log4j的web套用 350
23.2 log4j關鍵類和接口介紹 352
23.2.1 logger:日誌寫出器 352
23.2.2 level:日誌級別 353
23.2.3 appender接口 353
23.2.4 layout類:日誌輸出格式 354
23.2.5 log4j的logger繼承性 355
23.3 配置log4j 356
23.3.1 使用java properties配置 356
23.3.2 配置log4j.xml 359
23.3.3 log4j配置實現過程 363
23.4 web套用中使用log4j的例子 363
23.5 小結 365
第24章 使用xdoclet簡化jsp的
web開發 366
24.1 快速體驗xdoclet——使用xdoclet
的簡單例子 366
24.1.1 xdoclet介紹 366
24.1.2 安裝配置xdoclet 366
24.1.3 java源程式和添加注釋 366
24.2 xdoclet生成配置檔案過程
介紹 371
24.3 小結 373
第25章 使用ant管理jsp web套用 374
25.1 快速體驗ant——使用ant的
簡單例子 374
25.1.1 ant簡介 374
25.1.2 安裝配置ant 374
25.1.3 編寫套用類檔案 375
25.2 編寫build.xml檔案 379
25.2.1 project元素 380
25.2.2 target元素 380
25.2.3 task元素 381
25.2.4 property元素 381
25.2.5 常用ant task 382
25.3 用ant發布複雜的web套用 383
25.3.1 init目標 383
25.3.2 compile目標 383
25.3.3 copyjar目標 384
25.3.4 使用ant發布web套用 384
25.4 小結 385
第26章 使用eclipse開發jsp 386
26.1 eclipse基本配置 386
26.1.1 安裝eclipse 386
26.1.2 安裝多國語言包外掛程式 387
26.2 使用eclipse的lomboz外掛程式
開發jsp 388
26.2.1 lomboz外掛程式介紹 388
26.2.2 安裝配置lomboz外掛程式 388
26.2.3 安裝tomcat外掛程式 390
26.2.4 使用lomboz外掛程式開發jsp程式 391
26.2.5 使用lomboz外掛程式調試jsp程式 394
26.3 小結 394
第27章 餐費管理系統 395
27.1 項目需求分析 395
27.1.1 需求概述 395
27.1.2 功能模組需求分析 395
27.1.3 用例需求分析 396
27.1.4 員工就餐賬戶註冊用例 397
27.1.5 員工刷卡就餐用例 397
27.1.6 員工查詢賬戶餘額用例 398
27.1.7 就餐賬戶充值用例 398
27.1.8 員工賬戶管理用例 399
27.2 系統分析和設計 399
27.2.1 資料庫分析和設計 399
27.2.2 業務邏輯層和dao層設計 402
27.2.3 系統的包 404
27.2.4 系統的mvc結構 404
27.3 系統的開發環境 406
27.3.1 struts在eclipse中的配置 406
27.3.2 spring在eclipse中的配置 407
27.3.3 hibernate在eclipse中的配置 407
27.3.4 hibernate synchronizer在eclipse中的
配置 408
27.4 在eclipse中用struts建立視圖 408
27.4.1 jsp頁面 408
27.4.2 actionform 409
27.5 在eclipse中使用struts建立jsp
頁面 410
27.5.1 建立模板頁面 410
27.5.2 建立tiles-defs.xml 411
27.6 在eclipse中使用struts建立頁面的
不變部分 413
27.6.1 建立banner頁面和選單導航頁面 413
27.6.2 建立著作權頁面 413
27.7 在eclipse中使用struts實現
國際化 414
27.8 在eclipse中使用struts建立頁面的
可變部分 416
27.8.1 員工就餐刷卡頁面 417
27.8.2 員工刷卡成功頁面 417
27.8.3 員工賬戶註冊頁面 418
27.8.4 員工賬戶查詢頁面 420
27.8.5 管理員登錄頁面 421
27.8.6 管理員管理賬戶頁面 422
27.8.7 修改員工賬戶頁面 423
27.8.8 員工賬戶充值頁面 423
27.9 在eclipse中用struts建立控制
部分 424
27.9.1 配置web.xml 424
27.9.2 配置struts-config.xml 426
27.9.3 建立action 430
27.10 自定義的action 430
27.10.1 處理員工註冊請求的action 430
27.10.2 處理員工其他請求的action 432
27.10.3 處理管理員操作請求的action 434
27.11 在eclipse中使用struts進行錯誤
處理 438
27.12 在eclipse中建立模型部分 440
27.12.1 員工賬戶類 440
27.12.2 員工類 443
27.12.3 管理員類 444
27.13 在eclipse中建立業務邏輯類 445
27.13.1 員工業務邏輯 446
27.13.2 管理員業務邏輯 449
27.14 在eclipse中使用hibernate
建立dao類 452
27.14.1 建立對象-關係映射檔案 452
27.14.2 建立dao類 455
27.15 在eclipse中使用spring裝配
各個組件 459
27.15.1 struts和spring的集成 459
27.15.2 建立applicationcontext.xml 460
27.16 在eclipse中使用junit進行
單元測試 464
27.16.1 測試accountdao 464
27.16.2 測試employeedao 465
27.16.3 測試employeeserviceimpl 466
27.16.4 測試managerserviceimpl 467
27.17 小結 469