第1篇 JSP基础
第1章 JSP介绍 3
1.1 JSP技术概述 4
1.2 JSP技术特征 4
1.2.1 跨平台 4
1.2.2 分离静态内容和动态内容 4
1.2.3 可重复使用的组件 5
1.2.4 沿用了Java Servlet的所有功能 5
1.2.5 预编译 5
1.3 JSP的生命周期 5
1.4 JSP的处理过程 6
1.5 JSP与其他服务器端脚本语言的比较 6
1.5.1 CGI 6
1.5.2 ASP 7
1.5.3 PHP 7
1.5.4 JSP 7
1.6 JSP程序开发设计模式 7
1.6.1 单纯的JSP页面编程 7
1.6.2 JSP+JavaBean编程 7
1.6.3 JSP+Servlet+JavaBean编程 8
1.7 JSP应用 8
第2章 环境搭建和开发工具 11
2.1 JDK的安装与配置 12
2.1.1 JDK 1.5的下载 12
2.1.2 在Windows下安装JDK 1.5 13
2.1.3 在Windows下配置和测试JDK 1.5 14
2.1.4 在Linux下安装和配置JDK 1.5 15
2.2 Tomcat服务器 16
2.2.1 Tomcat服务器的下载 16
2.2.2 在Windows下安装Tomcat服务器 17
2.2.3 在Linux下安装Tomcat服务器 18
2.2.4 配置Tomcat连接池 19
2.3 WebLogic服务器 21
2.3.1 WebLogic服务器的下载 21
2.3.2 WebLogic服务器的安装 21
2.3.3 配置WebLogic服务器 23
2.3.4 配置WebLogic连接池 27
2.4 JBoss服务器 31
2.4.1 JBoss服务器的下载与安装 32
2.4.2 JBoss服务器的应用 33
2.5 Resin服务器 34
2.5.1 Resin服务器的下载与安装 34
2.5.2 Resin服务器的应用 35
2.6 Dreamweaver 8开发工具 36
2.6.1 Dreamweaver 8的安装 36
2.6.2 Dreamweaver 8的操作环境介绍 38
2.6.3 Dreamweaver 8的基本操作 41
2.7 Eclipse 3.2开发工具 44
2.7.1 Eclipse 3.2的下载与安装 44
2.7.2 Eclipse 3.2插件的安装 46
2.7.3 查询已安装的插件 48
2.7.4 常用插件资源 48
2.7.5 Eclipse 3.2快捷键 53
2.7.6 在Eclipse 3.2开发工具下创建简单的JSP程序 54
2.8 JBuilder 2007开发工具 55
2.8.1 JBuilder 2007下载与安装 55
2.8.2 JBuilder 2007的新功能简介 59
2.8.3 在JBuilder 2007中配置MyEclipse 61
2.8.4 在JBuilder 2007开发工具下,创建简单的JSP程序 61
第1篇 JSP基础
第1章 JSP介绍 3
1.1 JSP技术概述 4
1.2 JSP技术特征 4
1.2.1 跨平台 4
1.2.2 分离静态内容和动态内容 4
1.2.3 可重复使用的组件 5
1.2.4 沿用了Java Servlet的所有功能 5
1.2.5 预编译 5
1.3 JSP的生命周期 5
1.4 JSP的处理过程 6
1.5 JSP与其他服务器端脚本语言的比较 6
1.5.1 CGI 6
1.5.2 ASP 7
1.5.3 PHP 7
1.5.4 JSP 7
1.6 JSP程序开发设计模式 7
1.6.1 单纯的JSP页面编程 7
1.6.2 JSP+JavaBean编程 7
1.6.3 JSP+Servlet+JavaBean编程 8
1.7 JSP应用 8
第2章 环境搭建和开发工具 11
2.1 JDK的安装与配置 12
2.1.1 JDK 1.5的下载 12
2.1.2 在Windows下安装JDK 1.5 13
2.1.3 在Windows下配置和测试JDK 1.5 14
2.1.4 在Linux下安装和配置JDK 1.5 15
2.2 Tomcat服务器 16
2.2.1 Tomcat服务器的下载 16
2.2.2 在Windows下安装Tomcat服务器 17
2.2.3 在Linux下安装Tomcat服务器 18
2.2.4 配置Tomcat连接池 19
2.3 WebLogic服务器 21
2.3.1 WebLogic服务器的下载 21
2.3.2 WebLogic服务器的安装 21
2.3.3 配置WebLogic服务器 23
2.3.4 配置WebLogic连接池 27
2.4 JBoss服务器 31
2.4.1 JBoss服务器的下载与安装 32
2.4.2 JBoss服务器的应用 33
2.5 Resin服务器 34
2.5.1 Resin服务器的下载与安装 34
2.5.2 Resin服务器的应用 35
2.6 Dreamweaver 8开发工具 36
2.6.1 Dreamweaver 8的安装 36
2.6.2 Dreamweaver 8的操作环境介绍 38
2.6.3 Dreamweaver 8的基本操作 41
2.7 Eclipse 3.2开发工具 44
2.7.1 Eclipse 3.2的下载与安装 44
2.7.2 Eclipse 3.2插件的安装 46
2.7.3 查询已安装的插件 48
2.7.4 常用插件资源 48
2.7.5 Eclipse 3.2快捷键 53
2.7.6 在Eclipse 3.2开发工具下创建简单的JSP程序 54
2.8 JBuilder 2007开发工具 55
2.8.1 JBuilder 2007下载与安装 55
2.8.2 JBuilder 2007的新功能简介 59
2.8.3 在JBuilder 2007中配置MyEclipse 61
2.8.4 在JBuilder 2007开发工具下,创建简单的JSP程序 61
第3章 Java语言基础 63
3.1 基本语法入门 64
3.1.1 面向对象程序设计 64
3.1.2 Java类 64
3.1.3 Java类的对象 66
3.1.4 Java中的包 67
3.1.5 Java的继承 67
3.1.6 Java类的多态性 69
3.1.7 Java的接口 70
3.1.8 Java中代码的注释 71
3.2 数据类型 71
3.2.1 Java基本数据类型 72
3.2.2 常量与变量 72
3.2.3 对应基本数据类型的内置类 74
3.3 数据类型转换 78
3.3.1 自动转型 78
3.3.2 强制转型 79
3.3.3 内置类作转型 80
3.4 运算符 80
3.4.1 赋值运算符 80
3.4.2 算术运算符 81
3.4.3 关系运算符 83
3.4.4 逻辑运算符 84
3.4.5 位运算符 84
3.4.6 条件运算符 85
3.4.7 运算符的优先级与运算方向 85
3.5 流程控制语句 86
3.5.1 顺序语句 86
3.5.2 选择语句 87
3.5.3 循环语句 89
3.6 对字符串的处理 92
3.6.1 字符串的声明 92
3.6.2 常用方法 93
3.6.3 字符串的典型应用 94
3.7 数组 96
3.7.1 一维数组 96
3.7.2 二维数组 97
3.7.3 数组的复制 98
3.8 对象容器 98
3.8.1 Set容器 99
3.8.2 List容器 100
3.8.3 Map容器 101
3.9 日期类的操作 102
3.9.1 Date类 102
3.9.2 DateFormat类 103
3.9.3 Calendar类 103
3.10 异常处理 104
3.10.1 常用异常列表 104
3.10.2 异常处理的语句 104
3.10.3 使用异常处理的原则 107
3.11 JDK 1.5的新特性 107
3.11.1 泛型 108
3.11.2 foreach循环 108
3.11.3 自动实现装箱和解箱 109
3.11.4 可变参数 110
3.11.5 静态导入 110
3.11.6 枚举类型 110
3.11.7 格式化输入/输出 111
第4章 JSP语法 113
4.1 了解JSP的基本构成 114
4.1.1 JSP中的指令标识 114
4.1.2 HTML标记语言 114
4.1.3 嵌入的Java代码片段 114
4.1.4 JSP表达式 114
4.2 指令标识 115
4.2.1 page指令 115
4.2.2 include指令 117
4.2.3 taglib指令 118
4.3 脚本标识 119
4.3.1 JSP表达式 119
4.3.2 声明标识 119
4.3.3 脚本程序 120
4.4 JSP注释 122
4.4.1 HTML中的注释 122
4.4.2 带有JSP表达式的注释 122
4.4.3 隐藏注释 123
4.4.4 脚本程序中的注释 123
4.5 动作标识 126
4.5.1 jsp:include 126
4.5.2 jsp:forward 128
4.5.3 jsp:param 130
4.5.4 jsp:useBean 130
4.5.5 jsp:setProperty 136
4.5.6 jsp:getProperty 141
4.5.7 jsp:fallback 141
4.5.8 jsp:plugin 141
第5章 JSP内建对象 145
5.1 out输出对象 146
5.1.1 print()方法 146
5.1.2 getBufferSize()方法 148
5.1.3 getRemaining()方法 149
5.1.4 isAutoFlush()方法 149
5.1.5 clear()方法 150
5.1.6 clearBuffer()方法 151
5.1.7 flush()方法 151
5.1.8 close()方法 152
5.2 page对象 152
5.2.1 page对象的常用方法 152
5.2.2 page对象的简单示例 153
5.3 request对象 153
5.3.1 getParameter()方法 154
5.3.2 setAttribute()和getAttribute()方法 155
5.3.3 removeAttribute()方法 156
5.3.4 getMethod()方法 157
5.3.5 getProtocol()方法 158
5.3.6 getRequestURI()方法 159
5.3.7 getRemoteAddr()方法 159
5.3.8 getServerPort()方法 160
5.3.9 getServerName()方法 160
5.4 response对象 160
5.4.1 sendRedirect()方法 161
5.4.2 setHeader()方法 162
5.4.3 addCookie()方法 162
5.5 session对象 163
5.5.1 setAttribute()和getAttribute()方法 164
5.5.2 invalidate()方法 165
5.5.3 removeAttribute()方法 165
5.5.4 setMaxInactiveInterval()和getMaxInactiveInterval()方法 166
5.5.5 isNew()方法 166
5.6 application对象 167
5.6.1 setAttribute()和getAttribute()方法 168
5.6.2 getServletInfo()方法 168
5.6.3 getRealPath()方法 169
5.6.4 removeAttribute()方法 169
5.7 config对象 170
5.7.1 config对象的常用方法 170
5.7.2 config对象的简单示例 171
5.8 pageContext对象 171
5.8.1 pageContext对象的常用方法 172
5.8.2 pageContext对象的简单示例 172
5.9 exception对象 173
5.9.1 exception对象的常用方法 174
5.9.2 exception对象的简单示例 174
第2篇 JSP核心技术
第6章 JavaBean技术 177
6.1 JavaBean概述 178
6.1.1 JavaBean技术介绍 178
6.1.2 JavaBean的种类 179
6.1.3 JavaBean的形式和要素 179
6.2 JavaBean属性 181
6.2.1 Simple属性 181
6.2.2 Indexed属性 182
6.2.3 Bound属性 182
6.2.4 Constrained属性 182
6.3 JavaBean方法 183
6.4 在JSP中使用JavaBean 183
6.4.1 JavaBean的作用域 183
6.4.2 JSP与JavaBean的结合 184
6.4.3 JavaBean的移除 187
第7章 Servlet技术 191
7.1 Servlet基础 192
7.1.1 Servlet技术简介 192
7.1.2 Servlet技术功能 192
7.1.3 Servlet技术特点 193
7.1.4 Servlet的生命周期 193
7.1.5 Servlet与JSP的区别 194
7.1.6 Servlet的代码结构 194
7.1.7 开发简单的Servlet程序 195
7.2 Servlet API编程常用接口和类 197
7.2.1 Servlet接口 197
7.2.2 HttpServlet类 197
7.2.3 ServletConfig接口 198
7.2.4 HttpServletRequest接口 198
7.2.5 HttpServletResponse接口 199
7.2.6 GenericServlet类 199
7.3 Servlet开发 200
7.3.1 Servlet的创建 200
7.3.2 Servlet的配置 201
7.4 Servlet的典型应用 203
7.4.1 通过初始化参数取得数据操作 203
7.4.2 在Servlet中实现页面转发的操作 205
7.4.3 在Servlet中获取当前页的绝对路径 205
7.4.4 在Servlet中对Cookie的操作 206
7.4.5 利用JavaBean由Servlet向JSP传递数据 208
7.5 Servlet过滤器 209
7.5.1 Servlet过滤器简介 209
7.5.2 javax.servlet.Filter接口 209
7.5.3 javax.servlet.FilterConfig接口 210
7.5.4 Servlet过滤器的配置 210
7.5.5 Servlet过滤器的典型应用 211
7.6 Servlet监听器 215
7.6.1 Servlet监听器简介 215
7.6.2 Servlet监听器的原理 215
7.6.3 Servlet上下文监听 215
7.6.4 HTTP会话监听 216
7.6.5 Servlet请求监听 217
7.6.6 Servlet监听器的典型应用 217
第8章 JSP经典设计模式 223
8.1 Model1:JSP+JavaBean 224
8.1.1 Model1模式简介 224
8.1.2 采用Model1模式实现显示论坛主题类别和帖子列表 224
8.2 Model2:JSP+Servlet+JavaBean 231
8.2.1 Model2模式简介 231
8.2.2 采用Model2模式实现发表帖子和回复帖子 231
8.3 两种模式的比较 234
第3篇 数据库编程技术
第9章 数据库的安装与创建 237
9.1 SQL Server数据库 238
9.1.1 安装SQL Server数据库 238
9.1.2 安装SQL Server SP4补丁 241
9.1.3 创建数据库 242
9.1.4 创建数据表 244
9.2 MySQL数据库 245
9.2.1 安装MySQL数据库 245
9.2.2 创建数据库 251
9.2.3 创建数据表 251
9.3 Oracle数据库 254
9.3.1 安装Oracle数据库 254
9.3.2 创建数据库 257
9.3.3 创建数据表 261
第10章 数据库访问技术 263
10.1 JDBC概述 264
10.1.1 JDBC-ODBC桥技术介绍 264
10.1.2 JDBC技术介绍 265
10.1.3 JDBC驱动类型 265
10.2 JDBC中的常用接口 266
10.2.1 Driver 266
10.2.2 DriverManager 266
10.2.3 Connection 267
10.2.4 Statement 268
10.2.5 PreparedStatement 269
10.2.6 CallableStatement 270
10.2.7 ResultSet 270
10.3 连接数据库 272
10.3.1 加载JDBC驱动程序 272
10.3.2 创建数据库连接 273
10.3.3 执行SQL语句 273
10.3.4 获得查询结果 275
10.3.5 关闭连接 276
10.4 典型JSP数据库连接 276
10.4.1 SQL Server 2000数据库的连接 277
10.4.2 SQL Server 2005数据库的连接 278
10.4.3 Access数据库的连接 279
10.4.4 MySQL数据库的连接 280
10.4.5 Oracle数据库的连接 282
10.5 开发可重用的负责数据库连接的JavaBean 283
10.6 关于数据库的典型应用 284
10.6.1 通过继承负责数据库连接的JavaBean获得数据库连接 284
10.6.2 利用实现数据分页的JavaBean对ResultSet结果集进行分页 285
10.7 应用JDBC事务 289
10.8 连接池技术 292
10.8.1 连接池简介 292
10.8.2 获得JNDI的名称实现对数据库的连接 293
第11章 SQL语句在JSP中的应用 295
11.1 SQL语言简介 296
11.2 SELECT子句 296
11.2.1 选择所有列 297
11.2.2 选择部分列 298
11.2.3 使用列别名 299
11.3 WHERE子句 302
11.3.1 使用WHERE子句定义查询条件 302
11.3.2 使用比较运算符查询 303
11.3.3 查询介于某一范围的数据 303
11.3.4 模糊查询 305
11.3.5 使用列表运算符查询 306
11.3.6 查询空数据 307
11.4 去除查询结果中的重复记录 308
11.5 ORDER BY子句 309
11.5.1 单列排序 309
11.5.2 多列排序 310
11.6 限制结果集返回的行数 311
11.6.1 在SQL Server中使用TOP关键字限制结果集返回的行数 311
11.6.2 在MySQL中使用LIMIT关键字限制结果集返回的行数 312
11.7 使用聚合函数 313
11.7.1 求和函数 313
11.7.2 求平均值函数 314
11.7.3 求最小值/最大值函数 315
11.7.4 统计记录个数的函数 315
11.8 GROUP BY子句 316
11.8.1 按单列进行分组 317
11.8.2 按多列进行分组 318
11.8.3 与聚合函数一起使用 318
11.8.4 与HAVING子句一起使用 319
11.8.5 对分组结果进行排序 320
11.9 子查询 320
11.9.1 返回单值的子查询 320
11.9.2 带IN的子查询 321
11.9.3 带NOT IN的子查询 322
11.9.4 带SOME和ANY的子查询 322
11.9.5 带ALL的子查询 322
11.9.6 带EXISTS子查询 323
11.9.7 嵌套子查询 323
11.10 连接查询 324
11.10.1 内连接 324
11.10.2 外连接 325
11.10.3 交叉连接 328
11.10.4 自连接 328
11.11 数据查询技术的典型应用 329
11.11.1 复杂条件查询 329
11.11.2 应用SQL语句进行动态数据分页 332
11.12 数据添加、修改和删除 333
11.12.1 INSERT语句 333
11.12.2 UPDATE语句 335
11.12.3 DELETE语句 336
11.13 使用SQL维护数据库 337
11.13.1 备份数据库 337
11.13.2 还原数据库 339
11.13.3 附加数据库 340
11.13.4 分离数据库 342
第12章 高性能数据处理技术 345
12.1 视图 346
12.1.1 视图的概述 346
12.1.2 创建视图的规则 346
12.1.3 新建视图 346
12.1.4 修改视图 351
12.1.5 删除视图 352
12.1.6 在JSP中应用视图显示留言信息 352
12.2 存储过程 353
12.2.1 存储过程的概述 353
12.2.2 新建存储过程 354
12.2.3 修改存储过程 358
12.2.4 删除存储过程 359
12.2.5 获取数据库中的存储过程 360
12.2.6 获取指定存储过程语句 360
12.2.7 在JSP中调用存储过程 360
12.2.8 应用存储过程验证登录用户的身份 362
12.3 触发器 363
12.3.1 触发器的概述 363
12.3.2 SQL Server触发器类型 363
12.3.3 创建触发器 363
12.3.4 删除触发器 366
12.3.5 应用触发器自动插入日志信息 366
12.4 游标 367
12.4.1 游标的概述 367
12.4.2 声明游标 368
12.4.3 打开游标 369
12.4.4 读取游标 369
12.4.5 关闭游标 370
12.4.6 释放游标 370
12.4.7 应用游标自动设置版主 370
第4篇 JSP实用组件
第13章 文件上传与下载组件 375
13.1 jspSmartUpload组件的安装与配置 376
13.2 jspSmartUpload组件中的主要类 377
13.2.1 File类 377
13.2.2 Files类 378
13.2.3 Request类 379
13.2.4 SmartUpload类 379
13.3 采用jspSmartUpload组件进行文件操作 381
第14章 JFreeChart与JSP动态图表 387
14.1 JFreeChart基础 388
14.1.1 JFreeChart的下载与使用 388
14.1.2 JFreeChart核心类简介 388
14.2 利用JFreeChart生成柱形图 389
14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 389
14.2.2 利用XYDataset数据集绘制柱形图 392
14.3 利用JFreeChart生成饼形图 393
14.4 利用JFreeChart生成折线图 395
14.5 利用JFreeChart生成区域图 397
14.6 利用JFreeChart生成时序图 398
14.7 利用JFreeChart生成多轴图表 399
14.8 利用JFreeChart生成组合图表 401
第15章 报表组件 403
15.1 iText组件简介 404
15.2 iText组件开发 404
15.2.1 PDF文档输出的基本组成部分 404
15.2.2 PDF文档的页面设置与生成 406
15.2.3 中文的输出 407
15.2.4 表格的设置 408
15.2.5 图像处理 411
15.3 iText组件的典型应用 413
15.3.1 访问Servlet,读取PDF报表 413
15.3.2 查询数据表中的信息并显示在PDF报表 414
第16章 发送E-mail组件 419
16.1 Java Mail简介 420
16.1.1 邮件传输相关协议简介 420
16.1.2 什么是Java Mail 420
16.1.3 Java Mail关键类简介 421
16.2 建立Java Mail的开发环境 424
16.2.1 下载并构建Java Mail API 424
16.2.2 下载并构建JAF 424
16.3 在JSP中应用Java Mail发送邮件和接收邮件 425
16.3.1 发送普通文本邮件 425
16.3.2 发送HTML格式邮件 427
16.3.3 发送带附件的邮件 428
16.3.4 邮件群发 431
16.3.5 接收邮件 432
第17章 程序日志组件 437
17.1 Log4j简介 438
17.2 Loggers 438
17.2.1 日志输出 439
17.2.2 配置日志 439
17.2.3 日志的继承 440
17.3 Appenders 440
17.4 Layouts 441
17.5 应用日志调试程序 442
第5篇 Ajax技术
第18章 JavaScript脚本语言 447
18.1 JavaScript入门 448
18.1.1 JavaScript概述 448
18.1.2 JavaScript脚本的运行环境 448
18.1.3 在Web页面中使用JavaScript 448
18.2 JavaScript语言基础 450
18.2.1 常量 450
18.2.2 变量 452
18.2.3 运算符 453
18.2.4 表达式 457
18.3 流程控制结构 457
18.3.1 if条件判断语句 457
18.3.2 for循环语句 459
18.3.3 检查表单元素是否为空 460
18.3.4 for...in循环语句 461
18.3.5 while循环语句 462
18.3.6 do...while循环语句 462
18.3.7 break语句 462
18.3.8 continue语句 463
18.3.9 switch多路分支语句 463
18.4 函数 464
18.4.1 函数的定义和调用 464
18.4.2 Function()构造函数 465
18.4.3 函数直接量 466
18.5 事件 466
18.5.1 事件概述 466
18.5.2 事件类型 467
18.5.3 事件的典型应用 468
18.6 对象 470
18.6.1 Global对象 470
18.6.2 String对象 472
18.6.3 Math对象 476
18.6.4 Date对象 477
18.6.5 Window对象 479
18.6.6 Document对象 482
18.6.7 Location对象 484
18.6.8 Array对象 485
18.6.9 Function对象 487
18.6.10 Boolean对象 488
18.6.11 Number对象 489
18.6.12 History对象 489
18.7 文档对象模型 490
18.7.1 文档对象模型概述 490
18.7.2 DOM的分层结构 490
18.7.3 节点类型 491
18.7.4 DOM的核心接口 492
18.7.5 与DHTML相对的DOM 495
18.7.6 使用DOM添加和删除HTML元素 497
第19章 CSS样式 501
19.1 CSS样式表 502
19.1.1 CSS样式表的概念 502
19.1.2 CSS样式表的特点 502
19.2 如何使用CSS样式表 503
19.2.1 CSS样式表的类型 503
19.2.2 CSS样式表的写法 506
19.2.3 CSS样式表作用的优先顺序 507
19.2.4 CSS样式代码规范 507
19.3 CSS样式表的属性 507
19.3.1 字体属性 507
19.3.2 颜色和背景属性 511
19.3.3 文本属性 514
19.3.4 边框属性 520
19.3.5 定位属性 522
19.3.6 区块属性 523
19.3.7 列表属性 524
19.3.8 鼠标光标属性 527
19.3.9 空白属性 528
19.3.10 滤镜属性 530
第20章 XML入门技术 539
20.1 XML介绍 540
20.1.1 XML文档结构 540
20.1.2 XML语法要求 541
20.1.3 XML声明 541
20.1.4 元素 541
20.1.5 属性 542
20.1.6 注释 542
20.1.7 字符和实体引用 542
20.2 XML的两种语法规则 543
20.2.1 DTD文档类型定义 543
20.2.2 Schema文档规则 546
20.3 XML规范中的字符集 547
20.3.1 ASCII字符集 547
20.3.2 Unicode字符集 547
20.3.3 中文字符集 548
20.4 XML的3种显示格式 548
20.4.1 CSS样式表 548
20.4.2 XSL样式语言 549
20.4.3 XML数据岛技术 551
第21章 在JSP中应用Ajax技术 553
21.1 Ajax简介 554
21.1.1 什么是Ajax 554
21.1.2 Ajax的开发模式 554
21.1.3 Ajax的优点 554
21.2 Ajax使用的技术 555
21.2.1 JavaScript脚本语言 555
21.2.2 XMLHttpRequest 555
21.2.3 XML语言 557
21.2.4 DOM 557
21.2.5 CSS 557
21.3 搭建Ajax开发框架 558
21.4 Ajax的MVC架构设计 559
21.5 Ajax开发需要注意的问题 563
21.5.1 浏览器兼容性问题 563
21.5.2 XMLHttpRequest对象封装 563
21.5.3 性能问题 563
21.5.4 中文编码问题 563
21.6 在JSP中应用Ajax技术的典型应用 564
21.6.1 检测用户名 564
21.6.2 级联下拉列表 565
第6篇 JSP中解析XML
第22章 在JSP中应用DOM解析XML 571
22.1 DOM简介 572
22.2 DOM编程 572
22.2.1 DOM接口 572
22.2.2 DOM的使用 574
第23章 在JSP中应用JDOM解析XML 577
23.1 JDOM简介 578
23.1.1 JDOM的优点与不足 578
23.1.2 JDOM的使用条件 578
23.2 JDOM编程 579
23.2.1 类包解析 579
23.2.2 数据类型 579
23.2.3 格式转换 580
23.2.4 输入 581
23.2.5 输出 581
23.3 JDOM实例介绍 581
第24章 在JSP中应用SAX解析XML 585
24.1 SAX概述 586
24.2 SAX和DOM比较 586
24.3 选择DOM还是选择SAX 587
24.4 SAX编程 587
24.4.1 SAX常用接口 587
24.4.2 SAX实现方法 590
第7篇 EL表达式及标签
第25章 EL表达式 597
25.1 EL表达式概述 598
25.1.1 EL表达式的简单使用 598
25.1.2 EL表达式的特点和使用范围 598
25.2 EL表达式的基本应用 598
25.2.1 EL表达式的语法 599
25.2.2 EL表达式的存取范围 600
25.2.3 禁用表达式 600
25.3 EL表达式的运算符 601
25.3.1 存取数据运算符 601
25.3.2 算术运算符 601
25.3.3 关系运算符 602
25.3.4 逻辑运算符 602
25.3.5 empty运算符 603
25.3.6 条件运算符 603
25.3.7 运算符的优先级 603
25.4 EL表达式中的隐含对象 604
25.4.1 pageContext对象 605
25.4.2 获取参数隐含对象 606
25.4.3 访问作用域范围的隐含对象 608
25.4.4 Cookie和initParam隐含对象 609
25.5 EL表达式中的保留字 609
25.6 EL表达式的典型应用 609
25.6.1 访问JavaBean属性的典型应用 609
25.6.2 访问集合中元素的典型应用 612
25.6.3 访问Servlet中的作用域 613
25.6.4 表达式与函数的应用 615
第26章 JSTL标签库 617
26.1 JSTL核心标签库 618
26.1.1 表达式标签 618
26.1.2 流程控制标签 621
26.1.3 循环标签 623
26.1.4 URL操作标签 627
26.2 JSTL的格式标签库 632
26.2.1 格式化日期与数字 632
26.2.2 读取消息资源 638
26.2.3 国际化 641
26.2.4 国际化的典型应用 642
26.3 JSTL的SQL标签库 645
26.3.1 设置数据源 645
26.3.2 SQL操作标签 646
26.4 JSTL的XML标签库 650
26.4.1 XPath简介 650
26.4.2 XPath基础 650
26.4.3 XML核心标签 651
26.4.4 XML流程控制 653
26.4.5 XML文件转换 655
26.5 JSTL的函数标签库 656
26.5.1 fn:contains 656
26.5.2 fn:containsIgnoreCase 657
26.5.3 fn:startsWith 657
26.5.4 fn:endsWith 657
26.5.5 fn:escapeXml 658
26.5.6 fn:indexOf 658
26.5.7 fn:split 658
26.5.8 fn:join 659
26.5.9 fn:replace 659
26.5.10 fn:trim 659
26.5.11 fn:substring 660
26.5.12 fn:substringAfter 660
26.5.13 fn: substringBefore 660
26.5.14 fn:toLowerCase 660
26.5.15 fn:toUpperCase 660
26.5.16 fn:length 661
第27章 自定义标签 663
27.1 自定义标签库的构建 664
27.1.1 自定义标签的定义格式 664
27.1.2 自定义标签的构成 664
27.1.3 在JSP文件中引用自定义标签 665
27.1.4 使用自定义标签的优点 666
27.1.5 自定义标签与JavaBean的区别 666
27.2 自定义标签的常用类 666
27.2.1 接口Tag 667
27.2.2 实现类TagSupport 670
27.2.3 实现类BodyTagSupport 671
27.3 嵌套标签的开发 673
27.4 循环标签的开发 676
27.5 SimpleTag接口 679
27.5.1 SimpleTag接口的生命周期 679
27.5.2 SimpleTag接口的典型应用 679
27.6 标签文件 680
27.6.1 静态标签文件 680
27.6.2 动态标签文件 681
第8篇 JSP框架技术
第28章 Hibernate技术 685
28.1 Hibernate简介 686
28.2 Hibernate包的下载与放置 686
28.3 Hibernate核心接口一览 687
28.3.1 Configuration接口 687
28.3.2 SessionFactory接口 687
28.3.3 Session接口 687
28.3.4 Transaction接口 687
28.3.5 Query和Criteria接口 687
28.4 Hibernate入门 688
28.4.1 Hibernate配置文件解析 688
28.4.2 编写持久化类和映射文件 689
28.4.3 持久化类映射文件解析 691
28.4.4 编写Hibernate的初始化类 692
28.4.5 开发第一个Hibernate应用 693
28.5 Hibernate访问持久化类属性的策略 695
28.6 Hibernate命名策略的运用 696
28.7 HQL检索基础 700
28.7.1 Query的list()方法 700
28.7.2 利用HQL绑定参数查询 701
28.7.3 在映射文件中定义命名查询语句 702
28.7.4 将查询结果排序 703
28.7.5 分批检索对象 704
28.7.6 利用分批检索功能开发分页Bean 705
28.7.7 比较查询 707
28.7.8 限定范围查询 708
28.7.9 逻辑关系查询 709
28.7.10 字符串匹配查询 710
28.7.11 统计查询 711
28.7.12 分组查询 712
28.8 Session接口提供的常用方法 713
28.8.1 在Hibernate中持久化类实例的3种状态 713
28.8.2 save()方法 715
28.8.3 update()方法 716
28.8.4 delete()方法 718
28.8.5 get()方法 719
28.9 控制insert和update操作 721
28.10 映射一对多关联 724
28.10.1 一对多双向关联的建立 724
28.10.2 将集合中的元素排序 726
28.10.3 过滤集合中的元素 727
28.11 级联操作在关联中的使用 727
28.11.1 none的用法 728
28.11.2 save-update的用法 729
28.11.3 delete的用法 730
28.11.4 delete-orphan的用法 730
第29章 Struts框架 733
29.1 Struts框架介绍 734
29.1.1 MVC模式 734
29.1.2 Struts框架简介 734
29.1.3 Struts框架的工作流程 735
29.2 控制器 735
29.2.1 主要控制器组件 735
29.2.2 辅助Struts Action类 739
29.3 模型 747
29.3.1 MVC设计模式中的模型 747
29.3.2 建立模型 747
29.4 视图 748
29.4.1 视图概述 748
29.4.2 Struts中的视图 749
29.4.3 视图中的ActionForm类 749
29.4.4 应用ActionForm类 749
29.5 Struts配置文件 752
29.5.1 struts-config元素 752
29.5.2 form-beans元素 752
29.5.3 global-exceptions元素 753
29.5.4 global-forwards元素 754
29.5.5 action-mappings元素 755
29.5.6 controller元素 756
29.5.7 message-resources元素 756
29.5.8 plug-in元素 757
29.6 Struts标签库 757
29.6.1 HTML标签库 758
29.6.2 Bean标签库 763
29.6.3 Logic标签库 765
29.7 Validator验证框架 768
29.7.1 Validator验证框架的安装和配置 768
29.7.2 Validator验证框架和ActionForm 774
29.7.3 Validator验证框架的国际化 775
29.8 使用Struts框架开发Web应用 776
第30章 Spring框架 783
30.1 Spring框架的组成模块 784
30.2 Spring的IoC 785
30.2.1 控制反转 785
30.2.2 依赖注入 785
30.2.3 依赖注入的3种实现类型 785
30.3 Spring的AOP 787
30.3.1 AOP简介 788
30.3.2 切面 788
30.3.3 连接点 788
30.3.4 通知 788
30.3.5 切入点 789
30.3.6 目标对象 790
30.3.7 代理 790
30.3.8 引入 790
30.3.9 织入 790
30.3.10 AOP应用 790
30.4 装配JavaBean 790
30.4.1 Spring IoC容器 790
30.4.2 定义JavaBean配置 791
30.4.3 配置JavaBean的典型应用 793
30.4.4 JavaBean的赋值标签 796
30.4.5 自动装配 798
30.5 容器的高级应用 801
30.5.1 JavaBean的预处理和后处理 801
30.5.2 容器的后处理方法 801
30.5.3 定制属性编辑器 802
30.5.4 容器与JavaBean的耦合 805
30.5.5 实现Spring的国际化 806
30.5.6 国际化的典型应用 807
30.5.7 事件的监听与发布 808
30.6 Spring的数据持久化 809
30.6.1 Spring对DAO的支持 809
30.6.2 Spring的JDBC 810
30.6.3 核心类JdbcTemplate实现JDBC操作 812
30.6.4 Spring整合Hibernate 816
30.7 Spring的Web框架 818
30.7.1 配置DispatcherServlet(分发器) 818
30.7.2 处理器映射 818
30.7.3 视图解析器 819
30.7.4 异常解析器 820
30.7.5 控制器简介 821
30.7.6 模型与视图 821
30.7.7 命令控制器 822
30.7.8 表单控制器 822
30.7.9 表单控制器的典型应用 823
30.7.10 表单验证器 826
30.7.11 多动作控制器 826
30.7.12 多动作控制器在分页上的典型应用 827
30.7.13 向导控制器 831
30.7.14 向导控制器典型应用 832
30.8 Spring标签 837
30.8.1 spring:bind标签 837
30.8.2 spring:message标签 838
第9篇 网站调试与发布
第31章 错误处理与程序调试 841
31.1 程序编码中出现的语法错误及处理 842
31.1.1 指令标识的语法错误 842
31.1.2 动作标识的语法错误 843
31.1.3 脚本标识中的错误 845
31.1.4 空指针错误 848
31.2 调试程序中的逻辑错误 850
第32章 Web程序优化与发布 853
32.1 从代码中优化Web程序 854
32.1.1 编写优化的JavaBean 854
32.1.2 编写优化的JSP页 854
32.2 优化配置Tomcat服务器 855
32.2.1 禁用DNS查询 855
32.2.2 加速JSP编译速度 855
32.3 发布Java Web程序到Internet 856
32.3.1 发布Java Web程序到Internet的前提条件 856
32.3.2 在Windows系统下发布Java Web程序 856
32.3.3 在Linux系统下发布Java Web程序 857