第1篇 JSP动态网站基础入门篇 1
第1章 建立首要的、基本的正确认知 3
第2章 JSP基础——JSP动态网页和Java语言基础 21
第3章 JSP基础——流程控制、数据运算和运算的封装 45
第4章 JSP基础——了解和使用Java常用内建类 71
第2篇 交互应用程序和数据库应用程序篇 97
第5章 JSP动态网页的请求和响应 99
第6章 JSP使用表单开发交互式应用程序 125
第7章 JSP和数据库集成——使用JDBC访问数据库 143
第8章 JSP和数据库集成——数据库设计和SQL语法 175
第9章 JSP和数据库集成——深入JDBC 201
第3篇 JHP应用程序高级进阶篇 235
第10章 Session、Cookies和状态管理 237
第11章 JSP内建对象 261
第12章 网页的国际化和区域化 273
第13章 JSP脚本出错、调试与异常情况处理 291
第14章 JSP网络应用程序的安全 299
第4篇 JSP应用程序架构和深入面向对象开发篇 327
第15章 JSP网络应用程序基础架构 329
第16章 在JSP内使用类和Java面向对象开发基础 341
第17章 JSP和Java Servlet的关系与部署 361
第18章 基于容器的安全和Tomcat领域(Realm) 391
第19章 使用JSP操作文件系统 407
第20章 使用JSP结合XML开发 425
第21章 使用JSP发送和接收电子邮件 455
第22章 JSP事务、JTA和关键应用程序开发 475
第5篇 JSP标签、动作和实用功能应用篇 485
第23章 在JSP网页中使用JavaBeans 487
第24章 使用统一表达式语言(Unified EL) 511
第25章 使用 JSP标准标签库(JSTL) 521
第26章 JSP的XML语法格式和标准动作标签 559
第27章 创建JSP自定义标签 571
第28章 深入JSP网络应用程序基础架构和MVC架构 593
第29章 JSF入门——使用基于MVC架构的实现 605
附录A JSP内建对象速查卡 635
附录B 常用字符集速查表 643
附录C 测试题答案 645
附录D 参考文献及资料来源 667
第1章 建立首要的、基本的正确认知 3
1.1 JSP网络应用程序的工作原理 4
1.1.1 Web应用程序的基本工作原理 4
1.1.2 JSP网络应用程序的基本工作原理 6
1.2 安装和设置JSP网络应用程序的运行环境 7
1.2.1 安装、配置JRE和JDK 8
1.2.2 安装和配置Resin 11
1.2.3 安装和配置Tomcat 12
1.2.4 创建第一个JSP网页 14
1.3 Web服务器根目录和虚拟目录 16
1.3.1 Web服务器根目录 16
1.3.2 虚拟目录 17
1.3.3 改变服务器端口号 18
1.4 测试题 19
第2章 JSP基础——JSP动态网页和Java语言基础 21
2.1 编写JSP网页的基本语法 22
2.1.1 定义JSP执行块 23
2.1.2 了解JSP处理指令 25
2.1.3 什么是脚本语言 26
2.1.4 JSP代码与HTML代码混合 27
2.1.5 怎样书写JSP代码 28
2.2 变量的定义 29
2.2.1 定义和命名变量 29
2.2.2 变量的数据类型 30
2.2.3 为变量赋值和更改变量值 32
2.2.4 使用变量和获取变量值 35
2.2.5 常量 37
2.2.6 数据类型转换 37
2.3 定义和使用数组 38
2.3.1 声明数组 38
2.3.2 声明二维或多维数组 39
2.4 定义和使用字符串 40
2.5 程序注释 41
2.5.1 使用JSP注释 41
2.5.2 使用Java注释 41
2.5.3 使用HTML注释 42
2.6 测试题 42
第3章 JSP基础——流程控制、数据运算和运算的封装 45
3.1 流程控制 46
3.1.1 if...else条件语句 46
3.1.2 switch条件语句 49
3.1.3 do...while循环 51
3.1.4 for循环 53
3.1.5 其他的流程控制 54
3.1.6 try...catch...fiinally语句 56
3.1.7 throw语句 57
3.2 数据类型和运算 58
3.2.1 算术运算符 58
3.2.2 字符串运算符 59
3.2.3 比较运算符和逻辑运算符 59
3.2.4 位运算符 61
3.2.5 赋值运算符 61
3.2.6 其他运算符 62
3.2.7 运算符的使用规则 63
3.3 引用(包含)文件 65
3.3.1 使用include指令实现SSI 65
3.3.2 被包含文件的内容 66
3.3.3 SSI的执行顺序 66
3.4 自定义函数 67
3.4.1 函数的定义 67
3.4.2 函数的调用 67
3.4.3 函数定义的位置 68
3.4.4 隐含的函数 68
3.5 变量的作用范围和生命周期 69
3.5.1 全局变量和局部变量 69
3.5.2 全局变量和局部变量的使用 69
3.6 测试题 70
第4章 JSP基础——了解和使用Java常用内建类 71
4.1 了解J2RE内建类 72
4.1.1 什么是Java软件包 72
4.1.2 了解J2RE软件包 72
4.1.3 在JSP网页中使用类和软件包 73
4.2 字符串运算 74
4.3 数学运算 75
4.4 日期和时间运算 77
4.4.1 返回当前时间和日期 78
4.4.2 获取特定时间和日期 80
4.4.3 改变日历字段 81
4.5 使用集合 82
4.5.1 了解Java集合框架 82
4.5.2 使用HashSet 83
4.5.3 迭代集合 86
4.5.4 使用HashMap 87
4.5.5 使用ArrayList 91
4.6 判断数据类型 94
4.7 测试题 96
第5章 JSP动态网页的请求和响应 99
5.1 了解请求和响应的基本过程 100
5.1.1 请求应t基本过 100
5.1.2 了解URI、URL和URN 102
5.2 HTTP协议基础 103
5.2.1 了解HTTP消息的内容 103
5.2.2 了解HTTP请求的内容 104
5.2.3 了解HTTP响应的内容 105
5.2.4 了解HTTP消息报头的内容 107
5.3 使用JSP处理请求报头 109
5.4 对请求做出响应 111
5.4.1 返回消息正文给客户端 111
5.4.2 返回状态行给客户端 113
5.4.3 返回消息报头给客户端 113
5.4.4 设置响应内容的格式和类型 115
5.4.5 服务端网页缓存的处理 117
5.4.6 客户端网页缓存的处理 120
5.5 测试题 123
第6章 JSP使用表单开发交互式应用程序 125
6.1 创建表单 126
6.1.1 HTML表单基本知识 126
6.1.2 使用样式表控制表单的呈现 130
6.1.3 创建访客留言表单 131
6.2 接收表单数据 134
6.2.1 了解POST方法和GET方法 134
6.2.2 接收表单提交的数据——POST方法和GET方法 135
6.2.3 处理单名多值表单 137
6.2.4 遍历查询变量 138
6.2.5 处理结果不良好的控件 140
6.3 测试题 142
第7章 JSP和数据库集成——使用JDBC访问数据库 143
7.1 了解JDBC 144
7.2 安装和使用数据库 144
7.2.1 安装和使用Access数据库 144
7.2.2 存放和保护Access数据库文件 148
7.2.3 安装和使用SQLServer数据库 148
7.3 理解数据库连接和配置数据源 153
7.3.1 理解数据库连结 153
7.3.2 理解数据库连接驱动 154
7.3.3 通过ODBC连接数据库 154
7.4 基本数据库查询操作 158
7.4.1 查询和显示数据记录 158
7.4.2 遍历列出数据库内容 159
7.5 修改数据 160
7.5.1 插入数据记录 160
7.5.2 更新数据记录 162
7.5.3 删除数据记录 163
7.5.4 插入和显示数据库中的图片(二进制数据) 164
7.6 操作数据库结构 168
7.7 在JSP中应用JDBC的基本步骤 169
7.7.1 创建连接 169
7.7.2 创建Statement对象 172
7.7.3 执行查询 172
7.7.4 处理结果 172
7.7.5 关闭连接 173
7.8 测试题 173
第8章 JSP和数据库集成——数据库设计和SQL语法 175
8.1 数据库设计基本知识 176
8.1.1 关于数据库 176
8.1.2 设计数据库 178
8.2 SQL语法入门 180
8.2.1 语法基础知识 180
8.2.2 定义记录集的列 182
8.2.3 限制记录集中的记录 182
8.2.4 对记录集中的记录进行排序 184
8.2.5 连接表 185
8.2.6 在SQLServer中使用SQL查询分析器 189
8.3 创建和使用SQL存储过程 190
8.3.1 使用向导创建存储过程 191
8.3.2 手动编码创建存储过程 193
8.3.3 调用存储过程 193
8.3.4 为调用存储过程定义参数 194
8.4 SQL注入缺陷和参数化查询 195
8.4.1 堵住非法字符 196
8.4.2 堵住信息泄露 197
8.4.3 使用参数化查询防止恶意SQL注入 198
8.5 测试题 200
第9章 JSP和数据库集成——深入JDBC 201
9.1 了解和使用Statement对象 202
9.1.1 创建和使用Statement对象 202
9.1.2 了解和使用SQL转义 204
9.1.3 预处理语句和参数化查询 206
9.1.4 创建和使用CallableStatement对象 209
9.2 使用ResuItSet对象 210
9.3 深入ResuItSet对象 212
9.3.1 了解并发控制和游标类型 212
9.3.2 检测记录的开始和结束 214
9.3.3 游标的移动 214
9.3.4 检测是否含有记录 215
9.4 使用ResuItSet对象更新数据库 215
9.4.1 更新数据记录 215
9.4.2 插入数据记录 217
9.4.3 删除数据记录 219
9.4.4 检索警告 220
9.5 使用RowSet对象 221
9.5.1 不同类型的RowSet 221
9.5.2 实现RowSet 222
9.5.3 使用CachedRowSet处理结果集 222
9.5.4 理解RowSet 223
9.6 结果集分页 224
9.6.1 结果集分页的方式 224
9.6.2 结果集分页的技术原理 225
9.6.3 结果集分页的范例 225
9.7 使用JDBC和JNDI 229
9.7.1 配置JNDI数据源 230
9.7.2 使用JNDI操控数据库 231
9.8 测试题 233
第10章 Session、Cookies和状态管理 237
10.1 理解Session和Cookie 238
10.1.1 什么是Cookie 238
10.1.2 什么是Session 239
10.1.3 了解Cookie的格式和内容 240
10.1.4 Session和Cookie的使用环境 241
10.2 使用Cookie完成状态管理 242
10.2.1 怎样传送和使用Cookie 242
10.2.2 创建Cookie 244
10.2.3 访问Cookie 245
10.2.4 使用Cookie对象 245
10.2.5 设置Cookie路径 246
10.2.6 检查浏览器是否接受Cookie 247
10.3 使用Session完成状态管理 249
10.3.1 激活JSP网页中的Session 249
10.3.2 怎样传送和使用Session 250
10.3.3 启动和结束Session 255
10.3.4 管理Session 257
10.4 其他维护状态的方法 259
10.5 测试题 260
第11章 JSP内建对象 261
11.1 了解JSP内建对象 262
11.1.1 了解request对象 262
11.1.2 了解response对象 262
11.1.3 了解out对象 262
11.1.4 了解confiig对象 262
11.1.5 了解exception对象 263
11.1.6 了解application对象 263
11.1.7 了解session对象 263
11.1.8 了解page对象 264
11.1.9 了解pageContext对象 264
11.2 使用scope 264
11.2.1 怎样保存变量数据 265
11.2.2 使用pageContext对象保存数据 266
11.2.3 使用session作用范围 267
11.2.4 使用application作用范围 268
11.3 重定向和转发 268
11.3.1 重定向 268
11.3.2 转发请求 269
11.3.3 区分重定向和转发 270
11.4 动态包含文件 271
11.5 测试题 271
第12章 网页的国际化和区域化 273
12.1 了解网页字符编码 274
12.1.1 计算机文字字符编码简介 274
12.1.2 文档字符集和选择字符编码 276
12.1.3 在HTML文档中使用字符引用 277
12.2 字符编码和JSP网页 278
12.2.1 指定网页字符编码 278
12.2.2 字符编码的优先级 279
12.2.3 乱码产生的根源和解决方案 280
12.2.4 为JSp网页设置编码字符集 280
12.2.5 创建多语言网站 281
12.3 区域化设置和JSP网页 282
12.3.1 了解区域化设置 282
12.3.2 区域化设置和字符集的匹配 283
12.3.3 使用response.setLocale和response.getLocale方法设置国际化和区域化设置 285
12.3.4 指定国际化和区域化标示 287
12.4 使用资源包实现国际化和区域化 288
12.4.1 使用ListResourceBundle 288
12.4.2 使用ProperryResourceBundle 289
12.5 测试题 290
第13章 JSP脚本出错、调试与异常情况处理 291
13.1 错误和异常情况 292
13.2 调试JSP网页 293
13.2.1 查看页面出错信息 293
13.2.2 使用出错日志 293
13.2.3 了解JPDA和断点调试 294
13.3 异常情况处理 295
13.3.1 定义出错重定向页面 295
13.3.2 使用try...catch...nally语句和throw语句 296
13.4 测试题 297
第14章 JSP网络应用程序的安全 299
14.1 身份验证和授权 300
14.1.1 使用基本身份验证 300
14.1.2 摘要式身份验证 302
14.1.3 使用基于表单的身份验证和基于角色的授权系统 303
14.2 传输过程中的加密 303
14.2.1 加密的工作原理 303
14.2.2 安全证书的工作原理 305
14.2.3 使用隐私和安全证书 305
14.3 配置IIS连接Tomcat 305
14.3.1 安装和配置TomcatConnectors 305
14.3.2 安装和配置HS 307
14.3.3 创建虚拟目录 307
14.3.4 添加ISAPI筛选器 308
14.4 配置IIS支持SSL 309
14.4.1 创建证书请求文件 309
14.4.2 创建证书 311
14.4.3 为网站安装证书 314
14.4.4 信任自己的CA 317
14.5 使用浏览器证书 319
14.5.1 使用浏览器证书的注意事项 319
14.5.2 请求和安装浏览器证书 319
14.5.3 查看浏览器证书 321
14.5.4 启用浏览器证书 322
14.6 配置Tomcat直接使用加密通信 324
14.7 测试题 326
第15章 JSP网络应用程序基础架构 329
15.1 Java网络相关技术 330
15.1.1 JavaApplet技术 330
15.1.2 JavaServlet技术 330
15.1.3 JavaServerPage技术 330
15.1.4 EnterpriseBean技术 331
15.1.5 JDBCAPI 331
15.1.6 JNDI 331
15.1.7 JTA/JTS 331
15.1.8 JMS 331
15.1.9 JavaMail 332
15.1.10 JAF 332
15.1.11 RMI 332
15.1.1 2JavaIDL/CORBA 332
15.1.1 3其他 332
15.2 JSP网络应用程序的三层架构模型 332
15.2.1 从C/S架构到B/S架构 334
15.2.2 从三层架构到N层架构 336
15.2.3 PHP网页在三层架构中的地位 336
15.2.4 JSP网络应用程序的部署目录 337
15.2.5 创建Web应用程序部署描述符文件 338
15.3 测试题 340
第16章 在JSP内使用类和Java面向对象开发基础 341
16.1 第一个面向对象开发的范例 342
16.2 关于面向对象设计和类 343
16.2.1 面向对象和结构化程序设计的区别 343
16.2.2 什么是面向对象程序设计 343
16.2.3 面向对象程序设计的优点和基本特征 344
16.3 创建和使用类 345
16.3.1 定义方法和属性 346
16.3.2 方法的重载 347
16.3.3 构造方法和析构方法 347
16.3.4 类的继承 348
16.3.5 方法的覆载 349
16.3.6 在类中使用fiinal修饰符 350
16.4 抽象方法、抽象类和接口 351
16.4.1 抽象方法和抽象类 351
16.4.2 接口、继承和实现 352
16.5 访问类的方法和属性 353
16.5.1 导入类和访问成员 353
16.5.2 控制成员访问 354
16.5.3 访问类的属性和方法 355
16.5.4 区别实例成员和类成员(静态成员) 357
16.6 Java类的编译 358
16.6.1 关于编译器和解释器 358
16.6.2 关于类路径 358
16.6.3 在哪里放置Java类 358
16.7 测试题 359
第17章 JSP和JavaServlet的关系与部署 361
17.1 了解JSP的执行过程 362
17.1.1 转换阶段 362
17.1.2 执行阶段 362
17.2 创建和部署第一个Servlet 363
17.2.1 创建、编译和部署Servlet 363
17.2.2 使用Web浏览器调用Servlet 367
17.2.3 在Servlet中使用包 367
17.2.4 将JSP部署为Servlet 369
17.3 Servlet的基本结构和生命周期 369
17.3.1 Servlet的基本结构 369
17.3.2 Servlet的生命周期 371
17.4 JSP网页的生命周期 374
17.5 JSP、Servlet和Web应用程序的部署配置 374
17.5.1 定制URL映射 375
17.5.2 定义初始化参数 377
17.5.3 在服务器启动时加载servlet 379
17.5.4 配置JSP 379
17.6 创建和使用监听器 381
17.6.1 事件类型 381
17.6.2 创建第一个监听器 382
17.6.3 配置事件监听器 383
17.7 配置和创建过滤器 383
17.7.1 创建第一个过滤器 384
17.7.2 过滤器的工作原理 387
17.7.3 配置过滤器 387
17.8 测试题 389
第18章 基于容器的安全和Tomcat领域(Realm) 391
18.1 基于容器的安全——限制对Web资源的访问 392
18.1.1 使用security-constriaint元素保护Web资源 392
18.1.2 使用login-confiig元素访问受保护的Web资源 394
18.1.3 使用security-role元素配置角色 395
18.1.4 一个实际的配置范例 396
18.2 了解Tomcat领域 397
18.2.1 ACL和实现ACL的方式 397
18.2.2 了解Tomcat领域 398
18.3 使用Tomcat标准领域 398
18.3.1 使用JDBCRealm 399
18.3.2 使用DataSourceRealm 400
18.3.3 使用JNDIRealm 401
18.3.4 使用MemoryRealm 403
18.3.5 使用JAASRealm 404
18.3.6 关于密码的加密 404
18.4 测试题 405
第19章 使用JSP操作文件系统 407
19.1 使用java.io.File类 408
19.1.1 遍历磁盘、文件和文件夹 408
19.1.2 获取文件和文件夹的属性信息 411
19.2 创建文件夹和文件 413
19.2.1 创建文件夹 414
19.2.2 创建文件 414
19.2.3 修改文件或者文件夹 416
19.2.4 删除文件或者文件夹 417
19.3 读取文件内容 418
19.3.1 以字符流读取文件 418
19.3.2 以字节流读取文件 420
19.4 向文件中写入内容 422
19.4.1 写入字符内容 422
19.4.2 写入二进制内容和复制文件 423
19.5 测试题 424
第20章 使用JSP结合XML开发 425
20.1 Java和XML 426
20.1.1 XML处理工具 426
20.1.2 了解DOM、SAX、JDOM和JAXP 428
20.2 使用DOM操作XML 429
20.2.1 了解文档对象模型(DOM) 429
20.2.2 使用JSP产生XML 431
20.2.3 JDK中用来操作XML的类 432
20.2.4 将规范的XML文件转换成DOM文档对象 432
20.2.5 将规范的XML字符串转换成DOM文档对象 433
20.2.6 遍历DOM节点树 433
20.2.7 对DOM文档进行修改操作 434
20.2.8 将DOM文档转换成XML文件 435
20.2.9 将DOM文档转换成XML字符串 435
20.3 使用JDOM操作XML 436
20.4 使用SAX处理XML文档 438
20.4.1 什么是SAX 438
20.4.2 SAX的工作原理 438
20.4.3 怎样使用SAX解析 440
20.5 了解XPath 443
20.5.1 部署运行环境 443
20.5.2 XPath表达式语法 443
20.5.3 XPath表达式结果 445
20.5.4 XPath函数 445
20.6 了解XSL和XSLT 446
20.7 从XPath和XSL到XQuery 447
20.8 从XQuery到XUpdate语法 448
20.9 测试题 454
第21章 使用JSP发送和接收电子邮件 455
21.1 安装和配置JavaMaiIAPI 456
21.2 安装和使用SMTP服务 456
21.2.1 安装SMTP服务 457
21.2.2 配置SMTP服务 457
21.2.3 配置Outlook使用本地SMTP服务发送邮件 460
21.2.4 区分POP3和SMTP服务 460
21.3 创建发送邮件的JSP应用程序 461
21.3.1 发送第一封邮件 462
21.3.2 使用远程SMTP服务 463
21.3.3 了解JavaMailAPI成员 465
21.3.4 SMTP服务和JavaMailAPI的工作原理 465
21.4 创建增强的邮件发送程序 466
21.4.1 发送带附件的电子邮件 466
21.4.2 发送多媒体邮件 468
21.4.3 群发邮件 470
21.5 使用POPS方式收信 472
21.6 测试题 474
第22章 JSP事务、JTA和关键应用程序开发 475
22.1 理解事务 476
22.1.1 事务的工作过程 476
22.1.2 事务的共同特点 477
22.2 在JSP应用程序中使用事务 477
22.2.1 在JSP网页中使用组件自身事务处理系统 478
22.2.2 使用数据库系统完成事务 481
22.2.3 使用JSP网页处理分布式事务 483
22.3 测试题 484
第23章 在JSP网页中使用JavaBeans 487
23.1 使用JavaBeans 488
23.1.1 创建第一个JavaBeans 488
23.1.2 在JSP网页中使用JavaBeans(方式一) 489
23.1.3 在JSP网页中使用JavaBeans(方式二) 490
23.1.4 对比JavaBeans使用方式 491
23.2 了解JavaBeans属性的访问方法 491
23.3 使用JSP内建动作标签访问JavaBeans 493
23.3.1 使用<jsp:useBean> 493
23.3.2 使用<jsp:getProper> 496
23.3.3 使用<jsp:setProper> 497
23.3.4 使用JSP+JavaBeans实现用户验证 499
23.4 深入组件模型和JavaBeans 502
23.4.1 组件模型和JavaBeans 503
23.4.2 了解JavaBeans组件模型的实现 503
23.4.3 基于JavaBeans的组件模型能实现什么 503
23.4.4 区分JavaBeans和Java类 504
23.5 测试题 508
第24章 使用统一表达式语言(UnifiiedEL) 511
24.1 表达式和变量 512
24.1.1 EL表达式 512
24.1.2 存取器 514
24.2 标识符和隐含对象 515
24.3 数据类型 515
24.4 运算符 516
24.5 保留的关键字 518
24.6 函数 518
24.7 测试题 519
第25章 使用JSP标准标签库(JSTL) 521
25.1 了解和配置JSTL1.2. 522
25.1.1 配置JSTL 522
25.1.2 创建第一个使用JSTL的范例 522
25.1.3 怎样使用JSTL 523
25.2 使用核/心标签库(core) 524
25.2.1 通用动作标签 524
25.2.2 条件动作标签 527
25.2.3 迭代器动作标签 529
25.2.4 URL相关动作标签 533
25.3 使用118N格式化标签库(fmt) 536
25.3.1 区域化设置标签 536
25.3.2 资源包标签 536
25.3.3 时区标签 539
25.3.4 日期标签 540
25.3.5 数字标签 542
25.3.6 使用<fmt:requestEncoding>解码 543
25.4 使用关系数据库访问标签库(sql) 544
25.4.1 设置数据源 544
25.4.2 数据库查询和更新 545
25.4.3 使用事务 548
25.5 使用XML处理标签库(Xml) 549
25.5.1 核心动作标签 549
25.5.2 转换动作标签 551
25.5.3 流程控制动作标签 553
25.6 使用函数标签库(fn) 554
25.6.1 字符串处理函数 554
25.6.2 获取对象的长度 556
25.7 JSTL的配置 556
25.8 测试题 557
第26章 JSP的XML语法格式和标准动作标签 559
26.1 声明使用XML语法 560
26.1.1 基本语法 560
26.1.2 使用<jsp:root>标识JSP文档 560
26.2 指令和执行块 562
26.3 创建XML文档 563
26.3.1 <jsp:output> 563
26.3.2 <jsp:element> 566
26.3.3 <jsp:attribute> 566
26.3.4 <jsp:body> 567
26.4 其他动作标签 568
26.4.1 <jsp:include> 568
26.4.2 <jsp:forward> 568
26.4.3 <jsp:plugin> 569
26.4.4 <jsp:text> 570
26.5 测试题 570
第27章 创建JSP自定义标签 571
27.1 使用简单tag处理器 572
27.1.1 创建第一个自定义标签 572
27.1.2 简单标签处理器的生命周期 575
27.1.3 了解简单标签处理器实现的类和接口 575
27.1.4 关于JspFragment 576
27.2 使用tag文件创建自定义标签 576
27.2.1 创建第一个tag文件 577
27.2.2 tag文件专用的指令和标准动作标签 579
27.3 创建自定义函数标签 585
27.3.1 创建一个类并定义抽象方法 585
27.3.2 创建标签库描述符文件 586
27.3.3 在JSP文件中使用自定义函数 586
27.4 部署和配置自定义标签 587
27.4.1 部署和配置TLD文件 587
27.4.2 部署和配置tag文件 590
27.4.3 在部署描述符文件中配置标签库 590
27.5 测试题 591
第28章 深入JSP网络应用程序基础架构和MVC架构 593
28.1 深入JSP网络应用程序基础架构 594
28.1.1 基础的设计模式 594
28.1.2 控制器设计模式 594
28.1.3 设计模式中的Model1和Model2. 595
28.2 使用MVC设计模式 597
28.2.1 创建一个基本的MVC程序 597
28.2.2 关于MVC的导航规则 601
28.3 测试题 604
第29章 JSF入门——使用基于MVC架构的实现 605
29.1 了解和配置JSF1.2 606
29.1.1 JSF怎样有优势 606
29.1.2 配置JSF运行环境 606
29.1.3 验证配置 607
29.1.4 怎样使用JSF 608
29.1.5 使用JSF执行用户验证 609
29.2 使用HTML标签库——在JSP网页中使用UI组件 612
29.2.1 使用<h:form>标签 613
29.2.2 输出类标签 613
29.2.3 输入类标签 614
29.2.4 命令类标签 615
29.2.5 选择类的标签 616
29.2.6 表单布局标签 618
29.2.7 数据表格 619
29.2.8 其他标签 620
29.3 使用核心标签库 621
29.3.1 使用Facet 621
29.3.2 标准验证器 622
29.3.3 标准转换器 624
29.3.4 事件监听 626
29.3.5 其他标签 626
29.4 JSF生命周期和MVC 629
29.4.1 JSF标准的请求处理生命周期 630
29.4.2 关于事件的处理 631
29.5 JSF的配置 631
29.5.1 配置文件的基本格式 631
29.5.2 声明JavaBeans托管 631
29.5.3 声明导航规则 632
29.6 测试题 634
附录A JSP内建对象速查卡 635
附录B 常用字符集速查表 643
附录C 测试题答案 645
附录D 参考文献及资料来源 667