Servlet和JSP是開發(fā)Java Web應(yīng)用程序的兩種基本技術(shù)。Spring MVC是Spring框架中用于Web應(yīng)用快速開發(fā)的一個模塊,是當(dāng)今流行的Web開發(fā)框架之一。
本書是Servlet、JSP和Spring MVC的學(xué)習(xí)指南。全書內(nèi)容分為兩個部分,首部分主要介紹Servlet和JSP基礎(chǔ)知識和技術(shù),包括第1章至第15章;第2部分主要介紹Spring MVC,包括第16章至第24章。附錄部分給出了Tomcat安裝和配置指導(dǎo),還介紹了Servlet and JSP注解以及SSL證書。
本書內(nèi)容充實、講解清晰,非常適合Web開發(fā)者尤其是基于Java的Web應(yīng)用開發(fā)者閱讀。
Budi Kurniawan,是計算機(jī)暢銷圖書作者,他以清晰的寫作風(fēng)格而著稱。他編寫的Java 教程被德國斯圖加特傳媒學(xué)院選作教材。Budi 有20 多年的軟件架構(gòu)師和開發(fā)者的經(jīng)驗。他還是How Tomcat Works、Servlet & JSP: A Tutorial 和Struts 2 Designand Programming 等圖書的作者。
Paul Deck,是一位杰出的Spring 框架開發(fā)人員,他還是How Tomcat Works 一書的合著者。
第一部分 Servlets和SP
第1章 Servlets 3
1.1 Servlet API概覽 3
1.2 Servlet 4
1.3 編寫基礎(chǔ)的Servlet應(yīng)用程序 5
1.3.1 編寫和編譯Servlet類 5
1.3.2 應(yīng)用程序目錄結(jié)構(gòu) 7
1.3.3 調(diào)用Servlet 8
1.4 ServletRequest 8
1.5 ServletResponse 9
1.6 ServletConfig 9
1.7 ServletContext 12
1.8 GenericServlet 12
1.9 Http Servlets 14
1.9.1 HttpServlet 15
1.9.2 HttpServletRequest 16
1.9.3 HttpServletResponse 16
1.10 處理HTML表單 17
1.11 使用部署描述符 22
1.12 小結(jié) 24
第2章 會話管理 25
2.1 URL重寫 25
2.2 隱藏域 30
2.3 Cookies 34
2.4 HttpSession對象 41
2.5 小結(jié) 49
第3章 JavaServer Pages(JSP) 50
3.1 JSP概述 50
3.2 注釋 54
3.3 隱式對象 55
3.4 指令 58
3.4.1 page指令 58
3.4.2 include指令 59
3.5 腳本元素 60
3.5.1 表達(dá)式 61
3.5.2 聲明 61
3.5.3 禁用腳本元素 64
3.6 動作 65
3.6.1 useBean 65
3.6.2 setProperty和
getProperty 66
3.6.3 include 67
3.6.4 forward 67
3.7 錯誤處理 67
3.8 小結(jié) 68
第4章 表達(dá)式語言 69
4.1 表達(dá)式語言的語法 69
4.1.1 關(guān)鍵字 70
4.1.2 [ ]和.運算符 70
4.1.3 取值規(guī)則 71
4.2 訪問JavaBean 71
4.3 EL隱式對象 72
4.3.1 pageContext 72
4.3.2 initParam 73
4.3.3 param 73
4.3.4 paramValues 73
4.3.5 header 74
4.3.6 cookie 74
4.3.7 applicationScope、sessionScope、
requestScope和pageScope 74
4.4 使用其他EL運算符 75
4.4.1 算術(shù)運算符 75
4.4.2 邏輯運算符 75
4.4.3 關(guān)系運算符 76
4.4.4 empty運算符 76
4.5 應(yīng)用EL 76
4.6 如何在JSP 2.0及其更高版本中
配置EL 80
4.6.1 實現(xiàn)免腳本的JSP頁面 80
4.6.2 禁用EL計算 80
4.7 小結(jié) 81
第5章 JSTL 82
5.1 下載JSTL 82
5.2 JSTL庫 82
5.3 一般行為 83
5.3.1 out標(biāo)簽 83
5.3.2 set標(biāo)簽 84
5.3.3 remove標(biāo)簽 86
5.4 條件行為 86
5.4.1 if標(biāo)簽 87
5.4.2 choose、when和otherwise
標(biāo)簽 88
5.5 遍歷行為 89
5.5.1 forEach標(biāo)簽 89
5.5.2 forTokens標(biāo)簽 96
5.6 與URL相關(guān)的行為 97
5.6.1 url標(biāo)簽 97
5.6.2 redirect標(biāo)簽 98
5.7 格式化行為 99
5.7.1 formatNumber標(biāo)簽 99
5.7.2 formatDate標(biāo)簽 101
5.7.3 timeZone標(biāo)簽 102
5.7.4 setTimeZone標(biāo)簽 103
5.7.5 parseNumber標(biāo)簽 104
5.7.6 parseDate標(biāo)簽 104
5.8 函數(shù) 106
5.8.1 contains函數(shù) 106
5.8.2 containsIgnoreCase
函數(shù) 106
5.8.3 endsWith函數(shù) 106
5.8.4 escapeXml函數(shù) 107
5.8.5 indexOf函數(shù) 107
5.8.6 join函數(shù) 107
5.8.7 length函數(shù) 107
5.8.8 replace函數(shù) 108
5.8.9 split函數(shù) 108
5.8.10 startsWith函數(shù) 108
5.8.11 substring函數(shù) 108
5.8.12 substringAfter函數(shù) 109
5.8.13 substringBefore函數(shù) 109
5.8.14 toLowerCase函數(shù) 109
5.8.15 toUpperCase函數(shù) 109
5.8.16 trim函數(shù) 109
5.9 小結(jié) 110
第6章 自定義標(biāo)簽 111
6.1 自定義標(biāo)簽概述 111
6.2 簡單標(biāo)簽處理器 112
6.3 SimpleTag示例 112
6.3.1 編寫標(biāo)簽處理器 113
6.3.2 注冊標(biāo)簽 114
6.3.3 使用標(biāo)簽 114
6.4 處理屬性 115
6.5 訪問標(biāo)簽內(nèi)容 118
6.6 編寫EL函數(shù) 120
6.7 發(fā)布自定義標(biāo)簽 122
6.8 小結(jié) 124
第7章 標(biāo)簽文件 125
7.1 Tag File簡介 125
7.2 第一個Tag File 126
7.3 Tag File指令 127
7.3.1 tag指令 127
7.3.2 include指令 128
7.3.3 taglib指令 130
7.3.4 attribute指令 131
7.3.4 variable指令 132
7.4 doBody 134
7.5 invoke 137
7.6 小結(jié) 138
第8章 監(jiān)聽器 139
8.1 監(jiān)聽器接口和注冊 139
8.2 Servlet Context監(jiān)聽器 140
8.2.1 ServletContextListener 140
8.2.2 ServletContextAttribute
Listener 142
8.3 Session Listeners 142
8.3.1 HttpSessionListener 142
8.3.2 HttpSessionAttribute
Listener 145
8.3.3 HttpSessionActivation
Listener 145
8.3.4 HttpSessionBinding
Listener 146
8.5 ServletRequest Listeners 147
8.5.1 ServletRequest
Listener 147
8.5.2 ServletRequestAttribute
Listener 149
8.6 小結(jié) 149
第9章 Filters 150
9.1 Filter API 150
9.2 Filter配置 151
9.3 示例1:日志Filter 153
9.4 示例2:圖像文件保護(hù)Filter 156
9.5 示例3:下載計數(shù)Filter 158
9.6 Filter順序 162
9.7 小結(jié) 162
第10章 修飾Requests及
Responses 163
10.1 Decorator模式 163
10.2 Servlet封裝類 164
10.3 示例:AutoCorrect Filter 165
10.4 小結(jié) 172
第11章 異步處理 173
11.1 概述 173
11.2 編寫異步Servlet和過濾器 173
11.3 編寫異步Servlets 174
11.4 異步監(jiān)聽器 179
11.5 小結(jié) 181
第12章 安全 182
12.1 身份驗證和授權(quán) 182
12.1.1 指定用戶和角色 183
12.1.2 實施安全約束 184
12.2 身份驗證方法 185
12.2.1 基于表單的認(rèn)證 189
12.2.2 客戶端證書認(rèn)證 192
12.3 安全套接層 192
12.3.1 密碼學(xué) 192
12.3.2 加密/解密 193
12.3.3 認(rèn)證 193
12.3.4 數(shù)據(jù)的完整性 195
12.3.5 SSL是怎么工作的 195
12.4 編程式安全 196
12.4.1 安全注釋類型 196
12.4.2 Servlet的安全API 197
12.5 總結(jié) 199
第13章 部署 200
13.1 概述 200
13.1.1 核心元素 202
13.1.2 context-param 202
13.1.3 distributable 202
13.1.4 error-page 202
13.1.5 filter 203
13.1.6 filter-mapping 204
13.1.7 listener 204
13.1.8 locale-encoding-mapping-list
和locale-encoding-
mapping 204
13.1.9 login-config 205
13.1.10 mime-mapping 205
13.1.11 security-constraint 206
13.1.12 security-role 207
13.1.13 Servlet 207
13.1.14 servlet-mapping 209
13.1.15 session-config 209
13.1.16 welcome-file-list 209
13.1.17 JSP-Specific
Elements 210
13.1.18 taglib 210
13.1.19 jsp-property-group 210
13.2 部署 212
13.3 web fragment 212
13.4 小結(jié) 214
第二部分 Spring mvc
第14章 動態(tài)加載及Servlet
容器加載器 217
14.1 動態(tài)加載 217
14.2 Servlet容器加載器 220
14.3 小結(jié) 222
第15章 Spring框架 223
15.1 Spring入門 223
15.2 依賴注入 223
15.3 XML配置文件 226
15.4 Spring控制反轉(zhuǎn)容器的
使用 226
15.4.1 通過構(gòu)造器創(chuàng)建一個
bean實例 226
15.4.2 通過工廠方法創(chuàng)建
一個bean實例 227
15.4.3 Destroy Method的
使用 227
15.4.4 向構(gòu)造器傳遞參數(shù) 228
15.4.5 setter方式依賴注入 229
15.4.6 構(gòu)造器方式依賴
注入 231
15.5 小結(jié) 232
第16章 模型2和MVC模式 233
16.1 模型1介紹 233
16.2 模型2介紹 233
16.3 模型2之Servlet控制器 234
16.3.1 Product類 236
16.3.2 ProductForm類 237
16.3.3 ControllerServlet類 238
16.3.4 視圖 241
16.3.5 測試應(yīng)用 243
16.4 解耦控制器代碼 243
16.5 校驗器 247
16.6 后端 251
16.7 小結(jié) 252
第17章 Spring MVC介紹 253
17.1 采用Spring MVC的好處 253
17.2 Spring MVC的
DispatcherServlet 254
17.3 Controller接口 255
17.4 第一個Spring MVC應(yīng)用 255
17.4.1 目錄結(jié)構(gòu) 255
17.4.2 部署描述符文件和Spring
MVC配置文件 256
17.4.3 Controller 257
17.4.4 View 259
17.4.5 測試應(yīng)用 260
17.5 View Resolver 261
17.6 小結(jié) 263
第18章 基于注解的控制器 264
18.1 Spring MVC注解類型 264
18.1.1 Controller注解
類型 264
18.1.2 RequestMapping
注解類型 265
18.2 編寫請求處理方法 267
18.3 應(yīng)用基于注解的控制器 269
18.3.1 目錄結(jié)構(gòu) 269
18.3.2 配置文件 270
18.3.3 Controller類 272
18.3.4 View 273
18.3.5 測試應(yīng)用 274
18.4 應(yīng)用@Autowired和@Service
進(jìn)行依賴注入 275
18.5 重定向和Flash屬性 278
18.6 請求參數(shù)和路徑變量 279
18.7 @ModelAttribute 281
18.8 小結(jié) 282
第19章 數(shù)據(jù)綁定和表單標(biāo)簽庫 283
19.1 數(shù)據(jù)綁定概覽 283
19.2 表單標(biāo)簽庫 284
19.2.1 form標(biāo)簽 284
19.2.2 input標(biāo)簽 285
19.2.3 password標(biāo)簽 286
19.2.4 hidden標(biāo)簽 287
19.2.5 textarea標(biāo)簽 287
19.2.6 checkbox標(biāo)簽 287
19.2.7 radiobutton標(biāo)簽 288
19.2.8 checkboxes標(biāo)簽 288
19.2.9 radiobuttons標(biāo)簽 289
19.2.10 select標(biāo)簽 290
19.2.11 option標(biāo)簽 290
19.2.12 options標(biāo)簽 291
19.2.13 errors標(biāo)簽 291
19.3 數(shù)據(jù)綁定范例 292
19.3.1 目錄結(jié)構(gòu) 292
19.3.2 Domain類 293
19.3.3 Controller類 294
19.3.4 Service類 295
19.3.5 配置文件 298
19.3.6 視圖 299
19.3.7 測試應(yīng)用 301
19.4 小結(jié) 302
第20章 轉(zhuǎn)換器和格式化 303
20.1 Converter 303
20.2 Formatter 307
20.3 用Registrar注冊
Formatter 310
20.4 選擇Converter,還是
Formatter 312
20.5 小結(jié) 312
第21章 驗證器 313
21.1 驗證概覽 313
21.2 Spring驗證器 314
21.3 ValidationUtils類 315
21.4 Spring的Validator范例 316
21.5 源文件 317
21.6 Controller類 318
21.7 測試驗證器 319
21.8 JSR 303驗證 320
21.9 JSR 303 Validator范例 322
21.10 小結(jié) 323
第22章 國際化 324
22.1 語言區(qū)域 324
22.2 國際化Spring MVC
應(yīng)用程序 326
22.2.1 將文本元件隔離成
屬性文件 326
22.2.2 選擇和讀取正確的
屬性文件 328
22.3 告訴Spring MVC使用哪個
語言區(qū)域 329
22.4 使用message標(biāo)簽 329
22.5 范例 330
22.6 小結(jié) 334
第23章 上傳文件 335
23.1 客戶端編程 335
23.2 MultipartFile接口 336
23.3 用Commons FileUpload
上傳文件 336
23.4 Domain類 337
23.5 控制器 338
23.6 配置文件 340
23.7 JSP頁面 341
23.8 應(yīng)用程序的測試 343
23.9 用Servlet 3.0及其更高版本
上傳文件 344
23.10 客戶端上傳 347
23.11 小結(jié) 355
第24章 下載文件 356
24.1 文件下載概覽 356
24.2 范例1:隱藏資源 357
24.3 范例2:防止交叉引用 360
24.4 小結(jié) 363
附錄A Tomcat 364
A.1 下載和配置Tomcat 364
A.2 啟動和終止Tomcat 364
A.3 定義上下文 365
A.4 定義資源 366
A.5 安裝SSL證書 366
附錄B Web Annotations 368
B.1 HandlesTypes 368
B.2 HttpConstraint 368
B.3 HttpMethodConstraint 369
B.4 MultipartConfig 369
B.5 ServletSecurity 370
B.6 WebFilter 370
B.7 WebInitParam 371
B.8 WebListener 371
B.9 WebServlet 371
附錄C SSL證書 372
C.1 證書簡介 372
C.2 KeyTool 373
C.2.1 生成密鑰對 373
C.2.2 獲得認(rèn)證 374
C.2.3 將證書導(dǎo)入到密鑰庫 375
C.2.4 從密鑰庫導(dǎo)出證書 375
C.2.5 列出密鑰庫條目 375