第1章 开发环境准备、安装和配置 2
1.1 Java Web开发技术框图 2
1.2 客户端编程技术 2
1.2.1 HTML/XHTML与其实例 2
1.2.2 Applet与其实例 3
1.2.3 JavaScript与其实例 4
1.2.4 XML与其实例 5
1.2.5 CSS与其实例 5
1.2.6 AJAX与其实例 6
1.3 集成开发工具 8
1.3.1 常用Web应用程序服务器 8
1.3.2 常用Web框架 8
1.3.3 Java应用程序开发平台 9
1.3.4 Java Web应用数据库 9
1.3.5 Java Web应用程序 9
1.4 安装JDK 10
1.4.1 安装JDK的具体操作步骤 10
1.4.2 测试JDK是否安装成功 11
1.5 安装和配置Tomcat服务器 11
1.5.1 安装Tomcat操作步骤 11
1.5.2 Tomcat安装目录下的子目录 13
1.5.3 启动和停止Tomcat服务 13
1.5.4 配置Tomcat 14
1.5.5 Tomcat配置文件:server.xml介绍 16
1.5.6 Tomcat配置文件相关配置修改 16
1.6 Tomcat Web应用程序管理 17
1.6.1 管理Web应用程序 18
1.6.2 Web应用程序自动部署 19
1.6.3 使用Tomcat Web应用程序管理器部署 19
1.7 安装和配置MySQL 21
1.7.1 安装MySQL 21
1.7.2 配置MySQL 22
1.7.3 安装MySQL图形界面管理工具 25
1.7.4 登录MySQL管理器 26
1.7.5 创建连接 27
1.7.6 使用MySQL管理器启动和停止MySQL服务 28
1.7.7 从Windows命令行启动和停止MySQL 28
1.7.8 使用Windows服务管理功能启动和停止MySQL 29
1.8 开源的NetBeans IDE 31
1.8.1 NetBeans IDE介绍 31
1.8.2 NetBeans IDE安装 31
1.9 安装Eclipse/MyEclipse 33
1.10 上机实践 35
1.10.1 用Eclipse创建Web应用程序 35
1.10.2 用NetBeans IDE创建Web应用程序 40
第2章 JavaScript核心编程 44
2.1 了解JavaScript 44
2.1.1 JavaScript的特点 44
2.1.2 JavaScript与Java的区别 45
2.1.3 不同浏览器下的JavaScript版本和标准 45
2.1.4 JavaScript开发工具——Windows记事本 46
2.2 使用JavaScript脚本:在HTML中嵌入JavaScript脚本 47
2.2.1 直接在页面中嵌入JavaScript代码 47
2.2.2 <script>标记的language和type属性 48
2.2.3 <script>标记的defer属性 48
2.2.4 <noscript>标记 49
2.2.5 嵌入外部文件中的JavaScript代码 49
2.2.6 将JavaScript代码作为事件处理程序 50
2.2.7 在URL中执行JavaScript 51
2.3 使用JavaScript脚本:查看浏览器脚本错误信息 51
2.4 JavaScript的语法特点 52
2.5 JavaScript基本数据类型、常量和变量 54
2.5.1 数值型常量 54
2.5.2 字符串常量 55
2.5.3 布尔型常量、null和undifined 55
2.5.4 变量命名、声明和赋值 55
2.5.5 变量作用范围和实例说明 56
2.6 运算符与表达式 57
2.6.1 算术运算 57
2.6.2 字符串运算 58
2.6.3 关系运算 58
2.6.4 逻辑运算 59
2.6.5 位运算 59
2.6.6 赋值运算 59
2.7 程序流程控制语句 60
2.7.1 if语句3种格式和实例 60
2.7.2 switch语句和实例 62
2.7.3 for循环执行步骤和实例 64
2.7.4 while循环 65
2.7.5 do...while循环 65
2.7.6 continue语句 66
2.7.7 break语句的格式和实例 66
2.8 数组 68
2.8.1 使用直接量创建数组 68
2.8.2 使用Array构造函数创建数组 68
2.8.3 数组长度 69
2.8.4 使用数组元素 69
2.8.5 数组赋值 70
2.8.6 数组迭代 70
2.8.7 Array类定义的数组操作方法 70
2.8.8 数组的应用实例 72
2.9 函数 73
2.10 事件处理 74
2.11 使用对象 75
2.11.1 对象的基本操作 75
2.11.2 字符串对象 76
2.11.3 字符串对象的方法 76
2.11.4 将字符串转换为数值 78
2.11.5 将数字转换为字符串 79
2.11.6 Math对象 79
2.11.7 Date对象 80
2.12 window对象 80
2.12.1 window对象的常用属性和方法 81
2.12.2 “警告”、“确认”和“输入”对话框的使用 81
2.12.3 定时操作及实例 82
2.12.4 捕捉和处理脚本错误的方法及实例 83
2.12.5 获取浏览器信息 85
2.12.6 window对象提供的窗口控制方法 86
2.13 document对象 89
2.14 上机实践 91
2.14.1 “注册信息验证”分析及说明 91
2.14.2 “注册信息验证”设计分析 92
2.14.3 “注册信息验证”实现步骤 93
2.14.4 发布到Tomcat 98
2.14.5 “注册信息验证”运行测试 98
2.14.6 “下拉式菜单”分析及说明 102
2.14.7 “下拉式菜单”设计分析 102
2.14.8 “下拉式菜单”实现 104
2.14.9 “下拉式菜单”运行测试 106
第3章 JSP核心编程 108
3.1 认识JSP 108
3.1.1 一个JSP文档 108
3.1.2 JSP的主要特点 108
3.1.3 JSP文档处理过程 109
3.1.4 JSP实例:在浏览器中输出当前日期时间 109
3.1.5 查看JSP文档转换成的Java Servlet类源代码和class文件 112
3.1.6 NetBeans IDE保存JSP文档为模板 115
3.2 Servlet编程基础 115
3.2.1 ServletContext类 116
3.2.2 HttpServletRequest类 116
3.2.3 HttpServletResponse类 116
3.2.4 创建Servlet计数器实例 117
3.2.5 NetBeans IDE自动添加Servlet部署信息 121
3.3 JSP核心语法 122
3.3.1 注释 122
3.3.2 声明 123
3.3.3 表达式 124
3.3.4 代码段 124
3.4 JSP指令 125
3.4.1 page指令及属性 125
3.4.2 include指令及实例 127
3.4.3 taglib指令及实例 129
3.5 JSP动作标签 130
3.5.1 <jsp:include>和<jsp:param>语法及实例 130
3.5.2 <jsp:forward>语法 131
3.5.3 <jsp:plugin>和<jsp:fallback>语法及实例 132
3.6 JSP内置对象 134
3.6.1 config引用ServletConfig对象 135
3.6.2 out对象用法及实例 138
3.6.3 request对象用法及实例 139
3.6.4 GET和POST客户端请求方式 141
3.6.5 获取请求参数 142
3.6.6 参数中的中文问题 144
3.6.7 response对象用法及实例 145
3.6.8 实现客户端用户身份验证 147
3.6.9 session对象用法及实例 149
3.6.10 application对象用法及实例 153
3.6.11 application实例:访问资源文件 155
3.6.12 application实例:使用监听程序实现访问量统计 156
3.6.13 exception对象用法及实例 158
3.7 上机实践 159
3.7.1 文件上传操作分析 159
3.7.2 文件上传:获取“消息正文”并进行分析 160
3.7.3 文件上传:上传一个名称为data.txt的文件 163
3.7.4 文件上传:从上传“消息正文”中解析参数和文件内容 164
3.7.5 文件上传:分离表单元素数据和文件内容 165
3.7.6 图形验证码原理分析 168
3.7.7 图形验证码设计实现 170
第4章 用于JSP中的JavaBean技术 170
4.1 JavaBean的特点 176
4.2 JavaBean的属性 176
4.3 在JSP中使用JavaBean 176
4.3.1 <jsp:usebean>语法 176
4.3.2 <jsp:setproperty>语法 177
4.3.3 <jsp:getproperty>语法 178
4.3.4 JavaBean应用举例 178
4.4 JavaBean的索引属性应用 181
4.4.1 JavaBean索引属性讲解 181
4.4.2 JavaBean索引属性实例:存取图书清单 182
4.5 上机实践 185
4.5.1 使用JavaBean实现数据库管理与登录验证 185
4.5.2 创建MySQL数据库 185
4.5.3 创建数据库操作JavaBean 186
4.5.4 创建用户登录验证JavaBean 187
4.5.5 创建用户登录页面 188
4.5.6 实现用户登录信息验证 189
4.5.7 创建数据浏览页面 191
4.5.8 实现数据库记录删除功能 192
4.5.9 实现数据库记录修改功能 193
4.5.10 实现数据库记录添加功能 195
4.5.11 保存、测试项目 196
第 5章 EL核心编程 198
5.1 EL基本语法 198
5.2 EL运算符及实例 199
5.2.1 EL运算符 199
5.2.2 EL运算符实例 200
5.3 EL隐含对象及实例 202
5.3.1 EL隐含对象 202
5.3.2 EL隐含对象实例 204
5.4 EL访问Java的方法——函数 207
5.5 上机实践——使用EL读取初始化参数 210
第6章 JSP标准标签库:JSTL 210
6.1 JSTL简介 215
6.2 核心标签库 216
6.2.1 输出标签<c:out> 216
6.2.2 使用标签<c:out>输出数据的操作 217
6.2.3 赋值标签<c:set> 218
6.2.4 使用标签<c:set>为变量赋值的操作 219
6.2.5 删除标签<c:remove> 220
6.2.6 异常处理标签<c:catch> 220
6.2.7 条件标签<c:if> 221
6.2.8 选择标签<c:choose>、<c:when>和<c:otherwise>语法 222
6.2.9 选择标签<c:choose>、<c:when>和<c:otherwise>实例 223
6.2.10 迭代标签<c:foreach> 225
6.2.11 迭代标签<c:fortokens> 227
6.2.12 导入URL标签<c:import> 229
6.2.13 标签<c:import>语法内容解析 229
6.2.14 URL编码标签<c:url> 231
6.2.15 重定向标签<c:redirect> 233
6.3 I18N标签库 233
6.3.1 设置语言环境标签<fmt:setLocale> 234
6.3.2 加载本地资源包标签<fmt:bundle> 234
6.3.3 设置默认资源包标签<fmt:setBundle> 235
6.3.4 从资源包中读出指定键的键值标签<fmt:message> 236
6.3.5 提供参数标签<fmt:param> 236
6.3.6 提供编码字符集标签<fmt:requestEncoding> 240
6.3.7 设置时区标签<fmt:timeZone> 240
6.3.8 设置时区标签<fmt:setTimeZone> 240
6.3.9 格式化日期和时间标签<fmt:formatDate> 241
6.3.10 从字符串中解析日期和时间标签<fmt:parseDate> 241
6.3.11 格式化数值标签<fmt:formatNumber> 242
6.3.12 从字符串中解析数值标签<fmt:parseNumber> 243
6.3.13 格式化标签综合应用实例 244
6.4 SQL标签库 246
6.4.1 准备用来测试标签的MySQL数据库 246
6.4.2 数据源标签<sql:setDataSource> 249
6.4.3 执行查询标签<sql:query> 249
6.4.4 指定查询参数值标签<sql:param> 251
6.4.5 设置日期和时间值标签<sql:dateParam> 252
6.4.6 执行SQL更新命令标签<sql:update> 252
6.4.7 将子标签作为事务执行的标签<sql:transaction> 253
6.4.8 SQL标签实例 254
6.5 XML标签库 258
6.5.1 XML和XPath 258
6.5.2 三类XML标签 259
6.5.3 解析XML文档标签<x:parse> 259
6.5.4 <x:out>标签 260
6.5.5 <x:set>标签 261
6.5.6 <x:if>标签 261
6.5.7 <x:choose>、<x:when>和<x:otherwise>标签 262
6.5.8 <x:forEach>标签 263
6.5.9 <x:transform>和<x:param>标签 263
6.5.10 XML标签实例 264
6.6 函数标签库 266
6.6.1 JSTL函数标签库 266
6.6.2 JSTL函数标签实例 268
6.7 上机实践 271
6.7.1 使用JSTL实现数据库管理与登录验证 271
6.7.2 创建用户信息存储JavaBean 272
6.7.3 创建用户登录页面 273
6.7.4 实现数据浏览页面 275
6.7.5 实现数据库记录删除功能 277
6.7.6 实现数据库记录修改功能 278
6.7.7 实现数据库记录添加功能 280
6.7.8 保存、测试项目 282
第7章 Servlet过滤器和监听器 282
7.1 Servlet过滤器 284
7.1.1 过滤器类 284
7.1.2 配置过滤器 285
7.1.3 过滤器实例 285
7.2 Servlet监听器 288
7.2.1 监听器类 288
7.2.2 监听器配置 289
7.2.3 监听器实例 290
7.3 上机实践 293
7.3.1 在线用户监测 293
7.3.2 技术要点 294
7.3.3 创建项目 295
7.3.4 创建包 296
7.3.5 创建用户信息类 296
7.3.6 设计Web应用程序监听器 297
7.3.7 设计HTTP会话监听器 297
7.3.8 设计过滤器 298
7.3.9 设计首页 299
7.3.10 设计在线用户列表浏览页面 299
7.3.11 设计用户注销页面 300
7.3.12 配置过滤器和监听器 301
7.3.13 部署、测试 302
第8章 AJAX核心编程 304
8.1 AJAX简介 304
8.1.1 XMLHttpRequest对象 304
8.1.2 典型AJAX脚本结构 305
8.2 文档对象模型DOM 307
8.2.1 结点的常用属性和方法 309
8.2.2 文档结点 309
8.2.3 创建结点 310
8.2.4 修改结点 311
8.2.5 AJAX实例 311
8.3 上机实践 314
8.3.1 用户注册与登录 314
8.3.2 创建项目 315
8.3.3 设计用户类 316
8.3.4 设计Web应用程序监听器类 317
8.3.5 配置Web应用程序监听器 318
8.3.6 设计用户注册页面 319
8.3.7 设计用户登录页面 325
第9章 数据库核心编程 329
9.1 关系数据库核心技术 329
9.1.1 数据模型 329
9.1.2 基本概念 329
9.1.3 关系模型中“关系”的基本特点 330
9.1.4 关系的基本运算 331
9.1.5 关系完整性 332
9.2 JDBC驱动程序 332
9.2.1 JDBC架构 332
9.2.2 安装JDBC驱动程序 333
9.3 SQL Server简介 334
9.4 安装SQL Server 2005 Express 334
9.5 配置SQL Server 2005 Express 336
9.5.1 配置SQL Server服务 336
9.5.2 配置SQL Server通信协议 337
9.5.3 配置客户端协议 337
9.5.4 外围应用配置器 337
9.5.5 配置服务属性和配置连接属性 338
9.6 SQL Server管理操作 338
9.6.1 修改sa密码 338
9.6.2 附加数据库 339
9.6.3 分离数据库 340
9.6.4 创建数据库 340
9.6.5 创建表 341
9.6.6 查看和添加数据 342
9.6.7 创建和执行查询 342
9.7 SQL的分类 342
9.7.1 数据定义语言 343
9.7.2 数据操作语言 347
9.7.3 数据查询语言 348
9.8 T-SQL简介 353
9.8.1 数据类型 353
9.8.2 运算符 354
9.8.3 常用函数:数学函数 356
9.8.4 常用函数:字符串函数 357
9.8.5 常用函数:日期时间函数 360
9.8.6 T-SQL基本语句 361
9.9 NetBeans中的数据库操作 363
9.9.1 注册JDBC驱动程序 364
9.9.2 创建数据库连接 364
9.9.3 SQL Server固定数据库角色成员及其权限 365
9.9.4 查看数据库结构 366
9.9.5 删除表和管理表结构 366
9.9.6 查看表数据 366
9.10 使用JDBC 368
9.10.1 建立连接的方式和实例展示 368
9.10.2 JDBC驱动程序提供的“执行数据库操作”类 374
9.10.3 SQLServerStatement类的常用方法 374
9.10.4 执行简单查询 375
9.10.5 执行数据库更新操作 376
9.10.6 执行参数查询 378
9.10.7 执行存储过程 380
9.10.8 管理结果集 381
9.10.9 处理元数据 386
9.10.10 执行事务 388
9.11 上机实践 390
9.11.1 “基于数据库的在线用户注册系统”分析 390
9.11.2 创建数据库 391
9.11.3 创建项目 392
9.11.4 实现用户登录功能 394
9.11.5 实现新用户注册功能 397
9.11.6 实现个人账户修改功能 402
9.11.7 实现注册用户管理功能 408
第10章 MVC Web开发框架——Struts 2技术第一部分 408
10.1 了解Struts 2 412
10.1.1 图解MVC 412
10.1.2 图解Struts 2的MVC架构 413
10.1.3 图解Struts 2体系结构 414
10.1.4 满足Struts 2应用开发的常用类 415
10.1.5 下载Struts 2 416
10.1.6 Struts 2工作原理 418
10.1.7 Struts 2执行过程 423
10.1.8 Struts 2表达式语言OGNL 423
10.1.9 OGNL核心语法 423
10.1.10 OGNL语法综合应用 425
10.2 Struts 2配置 429
10.2.1 Struts 2 Web应用程序配置文件web.xml 429
10.2.2 Struts 2核心配置文件struts.xml的主要结构 430
10.2.3 具体struts.xml文件配置 432
10.2.4 Struts 2属性配置文件struts.properties 433
10.2.5 配置拦截器 436
10.3 Struts 2控制器 440
10.3.1 实现Action接口的Action类 440
10.3.2 Action类实例 440
10.3.3 继承ActionSupport类的Action类 444
10.3.4 实现模型驱动的Action类 448
10.3.5 调用方法的Action 450
10.3.6 处理Action异常 452
10.3.7 Action表单数据校验 453
10.3.8 Struts 2内置校验器 453
10.3.9 Struts 2内置校验器应用实例 456
10.4 Struts 2国际化 460
10.4.1 资源文件和其命名规则 460
10.4.2 Struts 2国际化应用实例 462
第11章 MVC Web开发框架——Struts 2技术第二部分 462
11.1 Struts 2控制标签 469
11.1.1 if、elseif和else标签 469
11.1.2 iterator标签 470
11.1.3 append标签 472
11.1.4 generator标签 472
11.1.5 merge标签 473
11.1.6 subset标签 474
11.1.7 sort标签 476
11.2 Struts 2数据标签 477
11.2.1 action标签 477
11.2.2 bean标签 480
11.2.3 date标签 482
11.2.4 include标签 483
11.2.5 param标签 485
11.2.6 push标签 485
11.2.7 set标签 486
11.2.8 url标签 487
11.2.9 property标签 488
11.2.10 i18n标签 489
11.2.11 text标签 490
11.3 Struts 2表单标签 491
11.3.1 form标签 492
11.3.2 reset与submit标签 493
11.3.3 checkbox标签 493
11.3.4 checkboxlist标签 496
11.3.5 combobox标签 498
11.3.6 doubleselect标签 500
11.3.7 file标签 502
11.3.8 hidden标签 504
11.3.9 label标签 504
11.3.10 optiontransferselect标签 504
11.3.11 select和optgroup标签 507
11.3.12 password标签 510
11.3.13 radio标签 510
11.3.14 textarea标签 510
11.3.15 textfield标签 511
11.3.16 token标签 511
11.3.17 updownselect标签 511
11.4 Struts 2 Action信息标签 513
11.5 Struts 2 AJAX标签 516
11.5.1 head标签 516
11.5.2 a标签 516
11.5.3 autocompleter标签 523
11.5.4 bind标签 526
11.5.5 datetimepicker标签 528
11.5.6 div标签 528
11.5.7 submit标签 529
11.5.8 tabbedPanel标签 529
11.5.9 textarea标签 531
11.5.10 tree和treenode标签 533
第12章 Struts 2案例——Web新闻发布系统 533
12.1 Web新闻发布系统——实例分析 538
12.2 新闻数据库设计 539
12.3 创建和配置项目 540
12.4 设计系统模型Java类 544
12.4.1 数据库模型类doSqlDb.java 544
12.4.2 新闻内容模型类newsContent.java 545
12.4.3 新闻栏目模型类newsTopic.java 546
12.5 实现系统异常处理 546
12.6 设计新闻栏目业务控制器类 547
12.7 设计新闻内容业务控制器类 553
12.8 设计管理主页面 560
12.8.1 admin mains.html 561
12.8.2 admin_top.jsp 561
12.8.3 getdate.jsp 562
12.8.4 adrnin_main.jsp 563
12.8.5 admin_left.jsp 564
12.8.6 admin_getNewsAdminList.jsp 566
12.9 实现新闻栏目添加功能 567
12.10 实现新闻栏目管理 570
12.10.1 admin_topicAdmin.jsp 570
12.10.2 admin_topicDelete.jsp 572
12.10.3 admin_topicEdit.jsp 572
12.10.4 TopicAdmin-admin_topicEditSave-validation.xml 574
12.11 实现新闻内容添加功能 574
12.11.1 admin_contentAdd.jsp 575
12.11.2 ContentAdmin-admin_contentAdd-validation.xml 577
12.12 实现新闻内容管理功能 577
12.12.1 admin_contentAdmin.jsp 578
12.12.2 admin_contentEdit.jsp 580
12.12.3 ContentAdmin-admin_contentEditSave-validation.xml 582
12.13 实现新闻展示功能 582
12.13.1 index.jsp 584
12.13.2 getheader.jsp 589
12.13.3 getNewsBar.jsp 590
12.13.4 getBulletin.jsp 591
12.13.5 getfooter.jsp 591
12.13.6 showIndexList.jsp 591
12.13.7 getNewsList.jsp 591
12.13.8 search.jsp 593
12.13.9 showContent.jsp 595
12.14 实现管理员登录功能 596
12.14.1 user.java 596
12.14.2 adminLog.java 597
12.14.3 adminlogin.jsp 598
12.14.4 adminLog-adminLog-validation.xml 599
12.15 实现管理登录控制功能 600