3dwoo大學簡體電腦書店
Servlet/JSP深入詳解——基于Tomcat的Web開發(暢銷書升級版)
( 簡體 字)
作者:孫鑫類別:1. -> 程式設計 -> 網路編程 -> JSP
出版社:電子工業出版社Servlet/JSP深入詳解——基于Tomcat的Web開發(暢銷書升級版) 3dWoo書號: 51215
詢問書籍請說出此書號!
有庫存
NT售價: 695
出版日:6/1/2019
頁數:688
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121361500 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
Servlet篇
第1章 Servlet與Tomcat 1
1.1 Web技術的發展 1
1.2 Servlet與Servlet容器 3
1.3 Servlet容器的分類 4
1.4 Tomcat簡介 5
1.5 Tomcat的安裝與配置 6
1.5.1 Tomcat的目錄結構 8
1.5.2 運行Tomcat 9
1.5.3 Tomcat啟動分析 13
1.6 Tomcat的體系結構 15
1.7 Tomcat的管理程序 17
1.8 小結 19
第2章 Servlet技術 20
2.1 Servlet API 20
2.1.1 Servlet接口 21
2.1.2 ServletRequest和ServletResponse 22
2.1.3 ServletConfig 25
2.1.4 一個簡單的Servlet 25
2.1.5 GenericServlet 33
2.1.6 HttpServlet 34
2.1.7 HttpServletRequest和HttpServletResponse 35
2.2 幾個實例 38
2.2.1 實例一:WelcomeServlet 38
2.2.2 實例二:OutputInfoServlet 44
2.2.3 實例三:LoginServlet 48
2.3 Servlet異常 53
2.3.1 ServletException類 53
2.3.2 UnavailableException類 53
2.4 Servlet生命周期 54
2.5 Servlet上下文 56
2.5.1 ServletContext接口 56
2.5.2 頁面訪問量統計實例 58
2.6 請求轉發 62
2.6.1 RequestDispatcher接口 62
2.6.2 得到RequestDispatcher對象 63
2.6.3 請求轉發的實例 63
2.6.4 sendRedirect()和forward()方法的區別 70
2.7 小結 71
第3章 Web應用程序的部署 72
3.1 配置任意目錄下的Web應用程序 72
3.2 WAR文件 75
3.3 與Servlet配置相關的元素 78
3.3.1 <servlet>元素及其子元素 78
3.3.2 <servlet-mapping>元素及其子元素 80
3.4 一個實例 82
3.5 小結 86
第4章 數據庫訪問 87
4.1 JDBC驅動程序的類型 88
4.1.1 JDBC-ODBC橋 88
4.1.2 部分本地API、部分Java驅動程序 89
4.1.3 JDBC網絡純Java驅動程序 89
4.1.4 本地協議的純Java驅動程序 89
4.2 安裝數據庫 90
4.3 下載MySQL JDBC驅動 94
4.4 JDBC API 95
4.4.1 加載并注冊數據庫驅動 96
4.4.2 建立到數據庫的連接 99
4.4.3 訪問數據庫 100
4.4.4 事務處理 129
4.4.5 可滾動和可更新的結果集 138
4.5 JDBC數據源和連接池 140
4.6 小結 145
第5章 會話跟蹤 146
5.1 用于會話跟蹤的技術 147
5.1.1 SSL會話 147
5.1.2 Cookies 148
5.1.3 URL重寫 149
5.2 Java Servlet API的會話跟蹤 149
5.2.1 HttpSession接口 150
5.2.2 Session的生命周期 151
5.2.3 Cookie的應用 165
5.2.4 Session和Cookie的深入研究 173
5.3 Session的持久化 175
5.4 小結 176
第6章 Servlet的異常處理機制 177
6.1 聲明式異常處理 178
6.1.1 HTTP錯誤代碼的處理 178
6.1.2 Java異常的處理 182
6.2 程序式異常處理 185
6.2.1 在try-catch語句中處理異常 185
6.2.2 使用RequestDispatcher來處理異常 188
6.3 小結 191
第7章 開發線程安全的Servlet 192
7.1 多線程的Servlet模型 192
7.2 線程安全的Servlet 193
7.2.1 變量的線程安全 193
7.2.2 屬性的線程安全 202
7.3 SingleThreadModel接口 206
7.4 小結 206

JSP篇
第8章 JSP技術 207
8.1 JSP簡介 207
8.2 JSP的運行機制 208
8.3 JSP的語法 213
8.3.1 指令元素(directive element) 213
8.3.2 腳本元素(scripting element) 218
8.3.3 動作元素(action element) 220
8.3.4 注釋 228
8.4 JSP的隱含對象 229
8.4.1 pageContext 229
8.4.2 out 230
8.4.3 page 231
8.4.4 exception 231
8.5 對象和范圍 232
8.6 留言板程序 235
8.7 留言板管理程序 244
8.8 JSP文檔 250
8.8.1 JSP文檔的標識 251
8.8.2 JSP文檔中的元素語法 251
8.9 小結 255
第9章 JSP與JavaBean 256
9.1 JavaBean簡介 256
9.1.1 屬性的命名 257
9.1.2 屬性的類型 259
9.2 在JSP中使用JavaBean 259
9.2.1 <jsp:useBean> 260
9.2.2 <jsp:setProperty> 261
9.2.3 <jsp:getProperty> 262
9.2.4 示例 262
9.3 網上書店程序 267
9.4 小結 291
第10章 JSP開發的兩種模型 292
10.1 模型1 292
10.2 模型2 296
10.3 MVC模式的實現總結 303
10.4 小結 303
第11章 標簽庫(Tag Library) 304
11.1 標簽庫API 304
11.1.1 標簽的形式 304
11.1.2 Tag接口 306
11.1.3 IterationTag接口 307
11.1.4 BodyTag接口 309
11.2 標簽庫描述符 310
11.2.1 <taglib>元素 311
11.2.2 <validator>元素 312
11.2.3 <listener>元素 313
11.2.4 <tag>元素 313
11.2.5 <tag-file>元素 316
11.2.6 <function>元素 316
11.3 傳統標簽的開發 318
11.3.1 實例一:<hello>標簽 318
11.3.2 實例二:<max>標簽 321
11.3.3 實例三:<greet>標簽 323
11.3.4 實例四:<switch>標簽 326
11.3.5 實例五:<iterate>標簽 331
11.4 簡單標簽的開發 337
11.4.1 SimpleTag接口 337
11.4.2 實例一:<welcome>標簽 339
11.4.3 實例二:<max_ex>標簽 341
11.5 自定義標簽開發總結 343
11.6 小結 343
第12章 表達式語言(EL) 344
12.1 語法 344
12.1.1 “[ ]”和“.”操作符 344
12.1.2 算術操作符 345
12.1.3 關系操作符 346
12.1.4 邏輯操作符 346
12.1.5 Empty操作符 346
12.1.6 條件操作符 346
12.1.7 圓括號 346
12.1.8 操作符的優先級 346
12.2 隱含對象 347
12.3 命名變量 348
12.4 保留的關鍵字 349
12.5 函數 349
12.6 小結 351
第13章 JSP標準標簽庫(JSTL) 352
13.1 JSTL簡介 352
13.2 配置JSTL 353
13.3 Core標簽庫 354
13.3.1 一般用途的標簽 354
13.3.2 條件標簽 358
13.3.3 迭代標簽 361
13.3.4 URL相關的標簽 364
13.4 I18N標簽庫 369
13.4.1 國際化標簽 369
13.4.2 格式化標簽 375
13.5 SQL標簽庫 384
13.5.1 <sql:setDataSource> 384
13.5.2 <sql:query> 385
13.5.3 <sql:param> 389
13.5.4 <sql:dateParam> 390
13.5.5 <sql:update> 390
13.5.6 <sql:transaction> 392
13.6 XML標簽庫 393
13.6.1 核心操作 394
13.6.2 流程控制 397
13.6.3 轉換操作 401
13.7 Functions標簽庫 404
13.7.1 fn:contains 404
13.7.2 fn:containsIgnoreCase 405
13.7.3 fn:startsWith 405
13.7.4 fn:endsWith 406
13.7.5 fn:indexOf 407
13.7.6 fn:replace 407
13.7.7 fn:substring 408
13.7.8 fn:substringBefore 409
13.7.9 fn:substringAfter 410
13.7.10 fn:split 410
13.7.11 fn:join 411
13.7.12 fn:toLowerCase 412
13.7.13 fn:toUpperCase 413
13.7.14 fn:trim 413
13.7.15 fn:escapeXml 414
13.7.16 fn:length 414
13.8 小結 415
第14章 標簽文件(Tag Files) 416
14.1 標簽文件的語法 416
14.2 一個簡單的標簽文件 416
14.3 標簽文件的隱含對象 420
14.4 標簽文件的指令 421
14.4.1 tag指令 421
14.4.2 attribute指令 423
14.4.3 variable指令 423
14.5 標簽文件實例講解 425
14.5.1 實例一:<welcome>標簽 425
14.5.2 實例二:<toHtml>標簽 426
14.6 <jsp:invoke>動作元素 428
14.7 <jsp:doBody>動作元素 428
14.8 小結 429

應用篇
第15章 Servlet監聽器 430
15.1 監聽器接口 430
15.2 ServletContextListener接口 431
15.3 HttpSessionBindingListener接口 433
15.4 在線人數統計程序 434
15.5 小結 441
第16章 Filter在Web開發中的應用 442
16.1 過濾器概述 442
16.2 Filter API 443
16.2.1 Filter接口 444
16.2.2 FilterConfig接口 444
16.2.3 FilterChain接口 445
16.3 過濾器的部署 445
16.4 過濾器的開發 448
16.5 對用戶進行統一驗證的過濾器 450
16.6 對請求和響應數據進行替換的過濾器 456
16.7 對響應內容進行壓縮的過濾器 467
16.8 小結 474
第17章 中文亂碼問題與國際化 475
17.1 中文亂碼問題產生的由來 475
17.1.1 常用字符集 475
17.1.2 對亂碼產生過程的分析 478
17.2 中文亂碼問題的解決方案 480
17.3 使用過濾器解決中文問題 482
17.4 讓Tomcat支持中文文件名 487
17.5 國際化與本地化 488
17.5.1 Locale 488
17.5.2 資源包 490
17.5.3 消息格式化 492
17.5.4 編寫國際化的Web應用程序 493
17.6 小結 498
第18章 開發安全的Web應用程序 499
18.1 概述 499
18.2 理解驗證機制 501
18.2.1 HTTP Basic Authentication 501
18.2.2 HTTP Digest Authentication 502
18.2.3 HTTPS Client Authentication 502
18.2.4 Form Based Authentication 502
18.3 聲明式安全 503
18.3.1 <security-constraint>元素 503
18.3.2 多個安全約束的聯合 506
18.3.3 <login-config>元素 507
18.3.4 基本驗證的實現 508
18.3.5 基于表單驗證的實現 510
18.3.6 使用數據庫保存用戶名和密碼 513
18.4 程序式安全 517
18.5 SQL注入攻擊的防范 520
18.6 小結 522
第19章 避免表單的重復提交 523
19.1 在客戶端避免表單的重復提交 523
19.2 在服務器端避免表單的重復提交 526
19.3 小結 534
第20章 使用Eclipse開發Web應用 535
20.1 Eclipse介紹 535
20.1.1 下載并安裝Eclipse 535
20.1.2 Eclipse開發環境介紹 536
20.1.3 配置Eclipse 540
20.2 文件的上傳 544
20.2.1 基于表單的文件上傳 544
20.2.2 文件上傳格式分析 545
20.2.3 commons-fileupload組件 546
20.2.4 文件上傳實例 548
20.3 文件的下載 561
20.4 給圖片添加水印和文字 570
20.5 小結 574
第21章 Servlet 3.0新特性詳解 576
21.1 新增的注解 577
21.1.1 @WebServlet注解 577
21.1.2 @WebFilter注解 579
21.1.3 @WebInitParam注解 580
21.1.4 @WebListener注解 581
21.1.5 @MultipartConfig注解 582
21.2 異步處理 582
21.2.1 實例:計算斐波那契數列 585
21.2.2 AsyncListener 588
21.3 動態添加和配置Web組件 590
21.3.1 實例一:實現ServletContextListener接口來添加Servlet 592
21.3.2 實例二:實現ServletContainerInitializer接口來添加組件 593
21.4 Web片段和可插性支持 596
21.4.1 Web模塊開發 597
21.4.2 解決Web模塊加載順序的問題 599
21.5 HttpServletRequest 對文件上傳的支持 601
21.6 總結 605
附錄A 快速掌握HTML 606
A.1 WWW簡介 606
A.2 快速掌握HTML 608
A.2.1 HTML(Hypertext Markup Language) 608
A.2.2 HTML元素的四種形式 608
A.2.3 第一個頁面 608
A.2.4 第二個頁面 609
A.2.5 與段落控制相關的標簽 610
A.2.6 控制文本的顯示 611
A.2.7 如何輸入特殊的字符 613
A.2.8 注釋 615
A.2.9 列表 615
A.2.10 表格 619
A.2.11 HTML交互式表單 622
A.2.12 其他常用標簽 629
A.2.13 框架 633
A.3 小結 634
附錄B 解析HTTP 635
B.1 概述 635
B.2 HTTP URL 636
B.3 HTTP請求 637
B.3.1 請求行 637
B.3.2 消息報頭 638
B.3.3 請求正文 638
B.4 HTTP響應 639
B.4.1 狀態行 639
B.4.2 消息報頭 641
B.4.3 響應正文 641
B.5 HTTP消息 642
B.6 實驗 647
B.7 小結 649
附錄C server.xml文件 650
C.1 頂層元素 651
C.1.1 Server元素 651
C.1.2 Service元素 651
C.2 連接器 652
C.2.1 HTTP連接器 652
C.2.2 AJP連接器 654
C.3 容器 654
C.3.1 Engine元素 654
C.3.2 Host元素 655
C.3.3 Context元素 656
C.4 小結 657
附錄D web.xml文件 658
D.1 <description>元素 659
D.2 <display-name>元素 659
D.3 <icon>元素 660
D.4 <distributable>元素 660
D.5 <context-param>元素 660
D.6 <filter>元素 660
D.7 <filter-mapping>元素 661
D.8 <listener>元素 662
D.9 <servlet>元素 662
D.10 <servlet-mapping>元素 664
D.11 <session-config>元素 664
D.12 <mime-mapping>元素 664
D.13 <welcome-file-list>元素 665
D.14 <error-page>元素 665
D.15 <jsp-config>元素 665
D.16 <security-constraint>元素 667
D.17 <login-config>元素 668
D.18 <security-role>元素 669
D.19 <env-entry>元素 669
D.20 <ejb-ref>元素 670
D.21 <ejb-local-ref>元素 670
D.22 <resource-ref>元素 671
D.23 <resource-env-ref>元素 671
D.24 <locale-encoding-mapping-list>元素 671
D.25 小結 672
本書共分3篇,分別為Servlet篇、JSP篇及其應用篇,書中展示了Java Web開發中各種技術的應用,幫助讀者快速掌握Java Web開發。在知識的講解上,本書采用理論與實踐相結合的方式,從程序運行的內部機制進行分析講解,并通過大量的實例和實驗來驗證并運用本書的知識。大部分章節都提供了多個例子,而且很多例子都是目前Web開發中經常使用的,具有相當高的實用價值。本書不僅可以作為Java Web開發的學習用書,還可以作為從事Java Web開發的程序員的參考用書和必備手冊。


隨著Java語言的流行,Java在網站和企業級應用的開發上應用得越來越普遍,Java Web開發已經成為Java企業級解決方案中不可或缺的組成部分。
本書遵照Servlet和JSP 規范,系統、完整地介紹了Java Web開發中的各種技術,從知識的講解→知識的運用→實際問題的解決,一步一步地引導讀者掌握Java Web開發的知識體系結構。
本書面向的讀者
本書面向的讀者群包括:
? 毫無Web經驗的初學者。
? 有一定的Web經驗,但沒有從事過Web開發的讀者。
? 具有其他腳本語言Web開發經驗,想要快速轉向Java Web開發的程序員。
? 正在從事Java Web開發的初、中級程序員。

本書的內容組織
全書共分3篇,包括Servlet篇、JSP篇和應用篇。前兩篇相對獨立,但在內容上又有遞進的關系。最后一個部分綜合應用前兩個部分的知識,講解了一些高級應用,并結合實際開發中要解決的問題,給出了很多具有實用價值的實例程序。
附錄作為本書不可或缺的部分,對HTML和HTTP協議進行了介紹,缺少Web經驗的讀者可以從這部分內容中學到Web開發的必備知識。此外,附錄還提供了server.xml和web.xml文件的介紹,可以作為讀者從事Java Web開發的參考。
本書在內容的編排上獨具匠心,將知識的連貫性和學習規律有機地組織在一起。本書首先介紹了Servlet技術及其應用,并介紹了Tomcat服務器的體系結構和相關配置。在第一篇中,包括了下面的主題:
? Servlet與Tomcat
? Servlet技術
? Web應用程序的部署
? 數據庫訪問
? 會話跟蹤
? Servlet的異常處理機制
? 開發線程安全的Servlet
讀者如果掌握了這部分的內容,就可以開始Web應用程序的開發了。
本書第二篇是JSP篇,包括了與JSP相關的各種技術。主要內容有JSP技術、JSP與JavaBean、JSP開發的兩種架構模型、自定義標簽庫、表達式語言、JSTL、標簽文件。JSP是建立在Servlet規范提供的功能之上的動態網頁技術,讀者看完第1篇介紹的Servlet,自然也就能理解JSP了。第二篇的內容細致全面,不但可以作為學習資料使用,而且可以作為以后工作中的參考手冊。
本書第三篇是應用篇,結合前2篇介紹的知識,講解了一些高級應用,給出了很多具有實用價值的實例程序。主要內容有:
? Servlet監聽器
? 過濾器在Web開發中的應用
? 中文亂碼問題與國際化
? Web應用程序安全
? 避免表單重復提交等實例
? 使用Eclipse開發Web應用程序
? Servlet 3.0新特性詳解
這部分內容從應用開發的角度幫助讀者提升Java Web開發技能。
本書的實例程序
筆者在編寫本書時,使用的操作系統是Windows 8.1專業版,JDK版本是1.8.0_192,Web容器是Tomcat 9.0.14,開發工具是Eclipse IDE for Enterprise Java Developers(版本2018-12),數據庫是MySQL 8.0.13。本書所有的實例程序都在上述環境中運行正常。
本書絕大部分的例子程序,都沒有放在Tomcat安裝目錄的webapps目錄下,而是單獨放在自定義的一個目錄中。讀者要運行這些程序,有兩種方式:一種方式是直接將網站上下載的例子程序目錄復制到Tomcat的webapps目錄下運行;另一種方式是配置Web應用程序的運行目錄,在%CATALINA_HOME%confCatalinalocalhost目錄下(%CATALINA_ HOME%表示Tomcat的安裝目錄),建立chXX.xml(XX表示每章的序號,例如第5章是ch05.xml,第13章是ch13.xml)文件。例如,要配置第5章的例子程序,可以在%CATALINA_HOME%confCatalinalocalhost目錄下創建ch05.xml文件,編輯這個文件,輸入下面的內容:
<Context docBase="F:JSPLessonch05" reloadable="true"/>
將“F:JSPLessonch05”替換為讀者機器上對應章節的Web應用程序所在的目錄。
此外,在每章例子程序的開發步驟中也給出了詳細的配置過程,讀者按照步驟操作,會發現配置非常容易。
當采用數據源的方式來訪問數據庫時,你需要將MySQL的JDBC驅動復制到Tomcat安裝目錄的lib子目錄中。
學習建議
作者針對三種不同類型的讀者,提出下面的學習建議。
(1)對HTML和HTTP協議不是很了解的讀者,建議從附錄A、附錄B開始學習,然后再從第1章開始學習。在學習第1篇的Servlet時,要結合附錄B,隨時參照,以加深對HTTP Servlet的理解。
(2)對HTML和HTTP協議比較清楚的讀者,可以直接從第1章開始學習,按照章節的順序一步一步進行下去。
(3)有Java Web開發經驗的讀者,可以有選擇性地學習本書的內容,并在開發過程中,以本書作為參考用書。
最后,衷心地祝愿讀者能夠從此書獲益,從而實現自己的開發夢想。由于本書的內容較多、牽涉的技術較廣,錯誤和疏漏之處在所難免,歡迎廣大技術專家和讀者指正。
pagetop