第1章 Model 2與Struts 1
1.1 傳輸對象 3
1.2 簡單的Model 2應用程序 4
1.2.1 ProductTO類 6
1.2.2 ControllerServlet類 6
1.2.3 視圖 8
1.2.4 部署描述文件 11
1.2.5 運行示例程序 11
1.3 視圖管理器和動作管理器 11
1.4 Struts入門 14
1.4.1 Struts配置文件 14
1.4.2 Action、ActionForward和ActionMapping 16
1.4.3 編輯部署描述文件(web.xml文件) 17
1.5 Struts應用程序示例 18
1.5.1 部署描述文件和Struts配置文件 19
1.5.2 動作類 20
1.5.3 運行示例程序 21
1.6 Struts的MVC特性 21
1.7 小結 22
第2章 利用動作表單驗證輸入 23
2.1 動作表單概述 23
2.2 ActionForm類 25
2.3 使用動作表單 27
2.4 使用HTML標簽庫 34
2.4.1 重新顯示表單里的值 37
2.4.2 出錯處理 37
2.5 另一個示例程序 38
2.5.1 目錄結構 39
2.5.2 Struts配置文件 39
2.5.3 動作類 40
2.5.4 JSP頁面 42
2.5.5 運行app02c應用程序 43
2.6 多頁表單 44
2.6.1 目錄結構 45
2.6.2 Struts配置文件 45
2.6.3 動作表單 46
2.6.4 動作類 47
2.6.5 運行app02d應用程序 48
2.7 動態(tài)動作表單 48
2.7.1 目錄結構 49
2.7.2 Struts配置文件 49
2.7.3 動作類 50
2.7.4 運行app02e應用程序 50
2.8 小結 51
第3章 HTML標簽庫 52
3.1 html標簽 54
3.2 base標簽 55
3.3 form標簽 55
3.4 text、password、hidden、textarea標簽 56
3.5 submit和cancel標簽 60
3.6 reset標簽 61
3.7 button標簽 61
3.8 checkbox標簽 61
3.9 multibox標簽 62
3.10 radio標簽 64
3.11 select標簽 66
3.12 option標簽 67
3.13 options標簽 68
3.13.1 options標簽的用法:與包含集合的對象配合使用 69
3.13.2 options標簽的用法:與作用域集合配合使用 70
3.14 optionsCollection標簽 71
3.14.1 optionsCollection標簽的用法:與包含集合的對象配合使用 71
3.14.2 optionsCollection標簽的用法:與集合配合使用 72
3.15 link標簽 72
3.15.1 添加一個請求參數 74
3.15.2 添加多個請求參數 75
3.16 img標簽 75
3.17 rewrite標簽 77
3.18 frame標簽 77
3.19 image標簽 77
3.20 xhtml標簽 78
3.21 小結 78
第4章 輸入驗證和數據轉換 79
4.1 為動作表單的屬性選擇數據類型 79
4.2 輸入驗證和數據轉換示例 80
4.3 使用BeanUtils類 87
4.4 提高數據轉換的效率 89
4.5 小結 95
第5章 Validator插件 96
5.1 Validator插件的默認驗證器 96
5.1.1 required驗證器 97
5.1.2 minlength驗證器 97
5.1.3 maxlength驗證器 98
5.1.4 byte、short、integer、long、float、double驗證器 98
5.1.5 intRange驗證器 98
5.1.6 floatrange驗證器 98
5.1.7 date驗證器 98
5.1.8 mask驗證器 98
5.1.9 email驗證器 99
5.1.10 url驗證器 99
5.1.11 creditCard驗證器 99
5.1.12 validwhen驗證器 99
5.2 使用Validator插件 100
5.2.1 編寫動作表單 102
5.2.2 編寫驗證規(guī)則 103
5.2.3 運行app05a應用程序 104
5.3 驗證文件 104
5.3.1 global元素及validator元素 106
5.3.2 formset元素及form子元素 106
5.3.3 向驗證器傳遞參數 108
5.3.4 Validator的出錯處理機制 109
5.4 使用客戶端驗證 110
5.5 使用DynaValidatorForm類 112
5.6 Validator與自定義驗證的結合 112
5.7 聲明基于動作的驗證規(guī)則 114
5.8 編寫自定義驗證器 118
5.8.1 編寫自定義驗證器:MyCustomValidator類 119
5.8.2 注冊自定義驗證器 120
5.8.3 驗證文件 121
5.8.4 注冊Validator插件 121
5.8.5 運行app05f應用程序 122
5.9 支持客戶端驗證的自定義驗證器 122
5.9.1 編寫JavaScript函數 122
5.9.2 注冊改進版的自定義驗證器 124
5.9.3 JSP頁面 124
5.9.4 運行app05g應用程序 125
5.10 使用validwhen驗證器 125
5.11 小結 126
第6章 EL語言 127
6.1 EL語言的語法 127
6.1.1 EL語言中的保留字 128
6.1.2 [ ] 和 . 操作符 128
6.1.3 EL表達式求值規(guī)則 129
6.2 訪問JavaBean 130
6.3 EL語言的隱含對象 130
6.3.1 pageContext對象 131
6.3.2 initParam對象 132
6.3.3 param對象 132
6.3.4 paramValues對象 132
6.3.5 header對象 132
6.3.6 headerValues對象 132
6.3.7 cookie對象 133
6.3.8 applicationScope、sessionScope、requestScope和pageScope對象 133
6.4 其他EL操作符 133
6.4.1 算術操作符 133
6.4.2 關系操作符 134
6.4.3 邏輯操作符 134
6.4.4 條件操作符 134
6.4.5 empty操作符 135
6.5 JSP 2.0中的EL語言 135
6.5.1 無腳本JSP頁面 135
6.5.2 禁用EL求值 135
6.6 小結 137
第7章 JSTL 138
7.1 JSTL簡介 138
7.2 通用動作 139
7.2.1 out標簽 139
7.2.2 set標簽 140
7.2.3 remove標簽 142
7.3 條件動作 143
7.3.1 if標簽 143
7.3.2 choose、when和otherwise標簽 144
7.4 遍歷動作 145
7.4.1 forEach標簽 145
7.4.2 forTokens標簽 147
7.5 格式化動作 148
7.5.1 formatNumber標簽 148
7.5.2 formatDate標簽 150
7.5.3 timeZone標簽 151
7.5.4 setTimeZone標簽 152
7.5.5 parseNumber標簽 152
7.5.6 parseDate標簽 153
7.6 函數 155
7.6.1 contains函數 155
7.6.2 containsIgnoreCase函數 155
7.6.3 endsWith函數 155
7.6.4 escapeXml函數 156
7.6.5 indexOf函數 156
7.6.6 join函數 156
7.6.7 length函數 156
7.6.8 replace函數 157
7.6.9 split函數 157
7.6.10 startWith函數 157
7.6.11 substring函數 157
7.6.12 substringAfter函數 158
7.6.13 substringBefore函數 158
7.6.14 toLowerCase函數 158
7.6.15 toUpperCase函數 158
7.6.16 trim函數 158
7.7 小結 159
第8章 Bean標簽庫 160
8.1 write標簽 162
8.2 cookie標簽 163
8.3 header標簽 164
8.4 parameter標簽 164
8.5 define標簽 164
8.6 page標簽 165
8.7 include標簽 165
8.8 message標簽 166
8.9 resource標簽 167
8.10 size標簽 167
8.11 struts標簽 168
8.12 小結 168
第9章 Logic標簽庫 169
9.1 值比較標簽 170
9.1.1 present和notPresent標簽 171
9.1.2 equal、notEqual、lessThan、lessEqual、greaterThan和greaterEqual標簽 171
9.2 子串匹配標簽 171
9.3 表現定位標簽 173
9.3.1 forward標簽 173
9.3.2 redirect標簽 173
9.4 集合處理標簽 174
9.5 小結 176
第10章 Struts-EL標簽庫、Nested標簽庫和selectLabel標簽 177
10.1 Struts-EL標簽庫 177
10.2 Nested標簽庫 179
10.3 selectLabel標簽 182
10.4 小結 186
第11章 消息處理與國際化 187
11.1 在Struts中處理地區(qū) 187
11.2 注冊屬性文件 190
11.3 HTML標簽庫中的errors標簽 190
11.4 HTML標簽庫中的messages標簽 191
11.5 JSTL i18n標簽庫 192
11.5.1 setLocale標簽 192
11.5.2 bundle標簽 193
11.5.3 setBundle標簽 193
11.5.4 message標簽 194
11.5.5 param標簽 195
11.5.6 requestEncoding標簽 195
11.6 小結 195
第12章 Tiles框架 196
12.1 JSP包含的不足 197
12.2 初識Tiles 198
12.3 使用JSP定義文件 200
12.4 使用XML定義 201
12.5 XML定義的繼承 204
12.6 Tiles標簽庫里的標簽 205
12.6.1 add標簽 206
12.6.2 definition標簽 207
12.6.3 getAsString標簽 207
12.6.4 importAttribute標簽 207
12.6.5 insert標簽 208
12.6.6 put標簽 209
12.6.7 putList標簽 209
12.6.8 useAttribute標簽 210
12.7 編寫XML格式的Tiles定義文件 210
12.7.1 tiles-definition元素 211
12.7.2 definition元素 211
12.7.3 put元素 211
12.7.4 putList元素 212
12.7.5 add元素 212
12.7.6 bean元素 212
12.7.7 item元素 213
12.7.8 set-property元素 213
12.8 小結 213
第13章 Struts應用程序的安全性 214
13.1 用戶和角色 214
13.2 編寫安全策略 215
13.2.1 保護資源 215
13.2.2 指定登錄方法 216
13.3 身份驗證方法 217
13.3.1 使用基本身份驗證方法 218
13.3.2 使用基于表單的身份驗證方法 218
13.4 隱藏資源 220
13.5 Struts安全配置 221
13.6 以編程方式提高安全性 222
13.6.1 getAuthType方法 222
13.6.2 isUserInRole方法 222
13.6.3 getUserPrincipal方法 223
13.6.4 getRemoteUser方法 223
13.7 小結 223
第14章 Config對象 224
14.1 使用web.xml文件或屬性文件 224
14.2 Config對象 225
14.2.1 Singleton模式簡介 225
14.2.2 實現Singleton Config對象 226
14.2.3 運行app14a應用程序 230
14.3 小結 230
第15章 持久層 231
15.1 DAO模式 232
15.1.1 DAO模式的最簡單實現 232
15.1.2 使用DAO接口的DAO模式 232
15.1.3 使用Abstract Factory模式的DAO模式 233
15.2 實現DAO模式 234
15.2.1 DAO接口和DAOBase類 234
15.2.2 Config類 237
15.2.3 CustomerDAO接口 238
15.2.4 CustomerDAOMySQLImpl類 239
15.2.5 DAOFactory類 244
15.2.6 客戶組件 245
15.2.7 運行app15a應用程序 245
15.3 復雜的數據結構 246
15.4 Hibernate 247
15.5 小結 247
第16章 對象緩存 248
16.1 實現緩存 248
16.2 小結 250
第17章 文件的上傳與下載 251
17.1 文件上傳 251
17.1.1 文件上傳概述 251
17.1.2 Struts中的文件上傳 252
17.2 文件下載 256
17.3 小結 261
第18章 分頁與排序 262
18.1 大數據集/超大數據集 262
18.2 Display標簽庫簡介 263
18.2.1 table標簽 264
18.2.2 column標簽 265
18.2.3 setProperty標簽 265
18.3 處理大數據集 266
18.4 處理超大數據集 269
18.4.1 searchCustomers方法 270
18.4.2 CustomerSearchCriteria- Form動作表單 272
18.4.3 SearchCustomerAction類 273
18.4.4 displaySearchCustomer- Form.jsp頁面 276
18.4.5 運行app18b應用程序 278
18.5 小結 279
第19章 防止重復提交 280
19.1 Struts中的標記管理 280
19.2 使用標記 281
19.3 小結 283
第20章 早期會話驗證 284
20.1 在Struts應用程序中讓HttpSession對象失效 284
20.2 讓HttpSession對象盡早失效 285
20.3 小結 287
第21章 裝飾HttpServletRequest對象 288
21.1 Decorator模式 288
21.2 去空格過濾器 290
21.3 小結 292
第22章 Struts的工作原理 293
22.1 動作servlet 293
22.2 創(chuàng)建ModuleConfig對象 295
22.3 請求處理器 298
22.3.1 processMultipart方法 299
22.3.2 processPath方法 300
22.3.3 processLocale方法 301
22.3.4 processContent方法 302
22.3.5 processNoCache方法 302
22.3.6 processPreprocess方法 302
22.3.7 processCachedMessages方法 303
22.3.8 processMapping方法 303
22.3.9 processRoles方法 305
22.3.10 processActionForm方法 305
22.3.11 processPopulate方法 306
22.3.12 processValidate方法 307
22.3.13 processForward方法 308
22.3.14 processInclude方法 309
22.3.15 processActionCreate方法 309
22.3.16 processActionPerform方法 310
22.3.17 processForwardConfig方法 311
22.4 小結 312
附錄A Struts配置 313