第1部分 起步篇:Java Web开发准备工作 3
第1章 网站前台设计回顾 3
1.1 页面元素之HTML和XHTML 3
1.2 页面布局之CSS 6
1.2.1 Div+CSS概述 6
1.2.2 Case:易物网样式表 7
1.3 常用HTML标记应用实例 10
1.3.1 Case:应用表格呈现数据 10
1.3.2 Case:应用表单创建会员登录页面 12
1.3.3 Case:应用嵌入式框架构造管理功能区 14
1.4 树形结构的XML数据文件 15
1.4.1 初步了解XML 15
1.4.2 Case:省市和高校数据文件 16
1.4.3 XML知识拓展 18
1.5 让静态页面动起来的JavaScript应用实例 19
1.5.1 Case:使第一个文本框自动获得焦点 19
1.5.2 Case:验证客户端数据的有效性 20
1.5.3 Case:操纵XML数据构造级联菜单 21
1.5.4 Case:实现后台管理导航菜单的CSS样式 24
1.6 单元实训与课外拓展 26
1.6.1 课堂课后讨论 26
1.6.2 上机实训练习 26
1.6.3 课外拓展训练 26
小结 27
第2章 JSP技术概述 28
2.1 初识JSP 28
2.1.1 动态网页技术 28
2.1.2 JSP的特点 28
2.1.3 JSP技术原理 30
2.2 JSP运行环境的安装和配置 30
2.2.1 关于Java开发的版本选择策略 30
2.2.2 Case:JDK的安装和配置 31
2.2.3 Case:Tomcat的安装和测试 34
2.2.4 其他JSP环境配置方案简介 39
2.3 第一个JSP动态网页 39
2.3.1 站点结构规划 40
2.3.2 Case:第一个JSP页面 40
2.4 安装示例站点 42
2.5 怎样学好动态网站开发 43
2.5.1 站点开发的常用工具 43
2.5.2 学好JSP的几点建议 45
2.6 单元实训与课外拓展 45
2.6.1 课堂课后讨论 45
2.6.2 上机实训练习 46
2.6.3 课外拓展训练 46
小结 48
习题 48
第3章 集成开发工具Eclipse 50
3.1 Java和JSP开发工具概述 50
3.1.1 Java开发工具概述 50
3.1.2 JCreator简介 51
3.1.3 本书选择策略 51
3.2 Eclipse及其常用插件的安装 51
3.2.1 Eclipse的获取和安装 52
3.2.2 Eclipse插件的安装方法 52
3.2.3 Eclipse的常用插件简介 53
3.2.4 Case:安装Eclipse和MyEclipse 54
3.2.5 Case:Eclipse的汉化 55
3.2.6 Eclipse项目及其平台架构 57
3.3 Eclipse及其常用插件的基本配置 58
3.3.1 Eclipse的界面和菜单 58
3.3.2 配置Java和Tomcat插件 60
3.3.3 配置MyEclipse插件 63
3.3.4 配置工作空间及页面文件编码 64
3.4 Eclipse的基本应用 66
3.4.1 Case:使用Eclipse开发Java应用程序 66
3.4.2 Case:使用MyEclipse开发Web应用程序 68
3.4.3 Web项目目录结构初探 71
3.5 Eclipse与JUnit、Ant和CVS以及系统日志 72
3.5.1 一个令人焦头烂额的工作场景 72
3.5.2 Case:在Eclipse中应用JUnit进行单元测试 72
3.5.3 Eclipse的资源构建和构建工具Ant 76
3.5.4 Eclipse的版本控制和CVS 76
3.5.5 Log4j日志器和Eclipse日志插件Log4E 78
3.6 单元实训与课外拓展 79
3.6.1 课堂课后讨论 79
3.6.2 上机实训练习 79
3.6.3 课外拓展训练 80
小结 80
习题 80
第4章 初步构建“易物网”项目 83
4.1 项目开发流程 83
4.1.1 软件生命周期 83
4.1.2 软件生命周期模型 84
4.1.3 不得不说:关于软件涉及的领域——领域驱动设计 87
4.2 系统分析和总体设计 87
4.2.1 项目需求分析 87
4.2.2 系统用户角色及其主要功能 88
4.2.3 系统结构设计 90
4.3 数据库设计 92
4.3.1 数据库需求分析 92
4.3.2 数据库表的逻辑设计 93
4.4 “易物网”项目的开发和部署 93
4.4.1 系统架构设计 93
4.4.2 系统结构规划 93
4.4.3 系统设计和项目部署 94
4.5 单元实训与课外拓展 95
4.5.1 课堂课后讨论 95
4.5.2 上机实训练习 95
4.5.3 课外拓展训练 95
小结 95
习题 96
第2部分 基础篇:Java Servlet与JSP 99
第5章 Java Servlet技术 99
5.1 Case:手动编写第一个简单的Servlet 99
5.1.1 编写Servlet源程序 99
5.1.2 编译和部署Servlet 101
5.1.3 访问Servlet 102
5.1.4 手动开发Servlet小结 104
5.2 Case:应用Eclipse快速开发Servlet 104
5.2.1 编写Servlet源程序 104
5.2.2 编译、部署并直接访问Servlet 107
5.2.3 通过HTML页面调用Servlet 107
5.2.4 应用Eclipse/MyEclipse开发Servlet小结 108
5.3 Servlet理性认识——Servlet技术原理 108
5.3.1 什么是Servlet 108
5.3.2 Servlet类的继承结构 109
5.3.3 Servlet中的方法 110
5.3.4 Servlet的生命周期和特点 111
5.3.5 Servlet和Applet的比较 112
5.3.6 Servlet理性分析——修改Servlet是否需要重启Tomcat 112
5.4 Servlet深入剖析:Servlet的接口和类 113
5.4.1 Servlet的常用接口和类 114
5.4.2 请求/响应相关的接口和类 115
5.4.3 Servlet理性分析——相关中文问题 118
5.4.4 Servlet理性分析——如何防止客户绕过表单提交数据 120
5.5 项目实战:Servlet典型应用 122
5.5.1 Case:用户系统登录的逻辑实现 122
5.5.2 Case:为系统登录页面添加验证码 125
5.6 单元实训与课外拓展 131
5.6.1 课堂课后讨论 131
5.6.2 上机实训练习 132
5.6.3 课外拓展训练 132
小结 132
习题 133
第6章 JSP语法基础 135
6.1 JSP页面元素的基本构成 135
6.1.1 Case:应用Dreamweaver创建页面开发环境 135
6.1.2 Case:一个典型的JSP文件 137
6.1.3 模板元素和JSP元素 139
6.1.4 注释 140
6.1.5 Case:转义字符——Quoting和Escape规则 141
6.1.6 简单认识JSP中的XML 142
6.2 JSP指令元素 143
6.2.1 page指令 143
6.2.2 include指令 144
6.2.3 taglib指令 145
6.3 JSP脚本元素 145
6.3.1 表达式 145
6.3.2 脚本片段 146
6.3.3 声明 147
6.3.4 Case:脚本元素和页面指令综合实例 148
6.4 JSP动作元素 149
6.4.1 〈jsp:param〉、〈jsp:params〉标签 150
6.4.2 〈jsp:include〉标签 150
6.4.3 〈isp:forward〉标签 154
6.5 JSP和Servlet的关系 156
6.5.1 Servlet/JSP的发展和特点 156
6.5.2 JSP和Servlet关系剖析 156
6.6 项目实战:实现站点共同的页眉和版权信息 157
6.6.1 页面结构划分 157
6.6.2 Case:实现“易物网”共同的页眉和版权信息 157
6.7 单元实训与课外拓展 159
6.7.1 课堂课后讨论 159
6.7.2 上机实训练习 160
6.7.3 课外拓展训练 160
小结 160
习题 161
第7章 JSP的内置对象 163
7.1 JSP内置对象概述 163
7.2 JSP属性与属性范围 163
7.2.1 JSP的4种属性范围 164
7.2.2 JSP属性范围的设置和读取 164
7.2.3 JSP属性范围的选择 165
7.2.4 JSP内置对象的范围 166
7.3 out对象、request对象和response对象 167
7.3.1 out对象 167
7.3.2 request对象 170
7.3.3 response对象 177
7.4 session对象 178
7.4.1 会话跟踪技术 178
7.4.2 session对象的概念及其生命周期 179
7.4.3 session对象的方法 180
7.4.4 Case:session应用实例 181
7.5 pageContext对象和application对象 182
7.5.1 pageContext对象 182
7.5.2 application对象 187
7.6 page对象和config对象 190
7.6.1 page对象 190
7.6.2 config对象 190
7.7 exception对象 190
7.8 项目实战 193
7.8.1 小结:JSP和Servlet的交互方式 193
7.8.2 Case:强制用户登录并跟踪用户 194
7.8.3 Case:sendRedirect()和forward()之后的代码还执行吗 196
7.9 单元实训与课外拓展 199
7.9.1 课堂课后讨论 199
7.9.2 上机实训练习 199
7.9.3 课外拓展训练 200
小结 201
习题 201
第3部分 核心篇:Java Web数据库技术 207
第8章 数据访问技术初步 207
8.1 安装和配置数据库 207
8.1.1 常用Web数据库及其选择 207
8.1.2 Case:SQL Server 2000/2005的安装和管理 208
8.1.3 Case:MySQL 5.1的安装及管理 209
8.2 Case:创建综合实例“易物网”的站点数据库 211
8.2.1 在SQL Server 2005中创建数据库15eu 211
8.2.2 在MySQL 5.1中创建数据库15eu 212
8.3 JDBC连接常用数据库 212
8.3.1 Case:JDBC数据库驱动程序的获取和部署 212
8.3.2 Case:简单的JDBC测试文件 214
8.3.3 数据库中文显示乱码问题 217
8.4 永久话题:常用SQL语句 217
8.4.1 数据库和表操作 217
8.4.2 记录操作 218
8.4.3 数据控制语言 219
8.5 项目实战:在Servlet/JSP中访问数据库 220
8.5.1 Case:数据库连接文件和连接类 220
8.5.2 Case:连接数据库,验证系统登录的用户身份 223
8.6 单元实训与课外拓展 224
8.6.1 课堂课后讨论 225
8.6.2 上机实训练习 225
8.6.3 课外拓展训练 225
小结 226
习题 226
第9章 利用JavaBean增强JSP 228
9.1 Case:编写简单的JavaBean 228
9.1.1 编写JavaBean的源文件 228
9.1.2 编译和部署JavaBean 229
9.1.3 在JSP页面中应用JavaBean 230
9.1.4 应用Eclipse快速开发JavaBean 230
9.2 JavaBean理性认识:JavaBean的特征和工作原理 233
9.2.1 什么是JavaBean 233
9.2.2 JavaBean的特征 234
9.2.3 JavaBean的原理 235
9.3 存取JavaBean的JSP动作元素 235
9.3.1 〈jsp:useBean〉标签 236
9.3.2 〈jsp:setProperty〉标签 237
9.3.3 〈jsp:getProperty〉标签 238
9.3.4 JavaBean动作元素综合实例 239
9.4 JavaBean对象的属性范围 241
9.4.1 JavaBean属性范围概述 241
9.4.2 page范围的JavaBean 242
9.4.3 request范围的JavaBean 244
9.4.4 session范围的JavaBean 246
9.4.5 application范围的JavaBean 247
9.4.6 JavaBean的删除 248
9.5 项目实战:应用JavaBean实现用户注册 249
9.5.1 Model 1:JSP+JavaBean开发模式 249
9.5.2 用户表users和用户信息UserBean 249
9.5.3 创建用户注册页面 251
9.5.4 用户注册第一步的后台操作 253
9.5.5 用户注册第二步的后台操作 254
9.5.6 反思:JSP+JavaBean开发模式的不足 258
9.6 单元实训与课外拓展 259
9.6.1 课堂课后讨论 259
9.6.2 上机实训练习 259
9.6.3 课外拓展训练 260
小结 260
习题 260
第10章 JDBC数据库编程技术 263
10.1 JDBC概述 263
10.1.1 为什么应用JDBC 263
10.1.2 JDBC API包 264
10.1.3 JDBC驱动程序的分类 264
10.1.4 JDBC访问数据库的基本步骤 265
10.2 应用JDBC连接数据库 266
10.2.1 使用Driver接口注册并加载JDBC驱动程序 266
10.2.2 使用DriverManager类创建数据库连接 267
10.2.3 创建一个连接对象Connection 268
10.3 应用JDBC操纵数据库 271
10.3.1 SQL陈述式接口Statement 271
10.3.2 预编译语句接口PreparedStatement 274
10.3.3 结果集ResultSet 275
10.3.4 调用存储过程接口CallableStatement 278
10.4 JDBC数据库编程:CRUD实例 280
10.4.1 Case:表记录的遍历 280
10.4.2 Case:应用SQL语句实现CRUD操作 284
10.4.3 Case:应用ResultSet实现记录的定位和更新 287
10.5 JDBC数据库编程:其他实例 291
10.5.1 Case:事务处理 291
10.5.2 Case:成批更新 292
10.5.3 Case:元数据操作 295
10.6 单元实训与课外拓展 299
10.6.1 课堂课后讨论 299
10.6.2 上机实训练习 299
10.6.3 课外拓展训练 299
小结 300
习题 300
第11章 利用JSP技术进行XML编程 303
11.1 在HTML静态页面中呈现XML数据 303
11.1.1 Case:在IE中使用数据岛呈现XML数据 304
11.1.2 Case:使用JavaScript/Spry呈现XML数据 305
11.1.3 Case:使用XSLT来呈现XML数据 306
11.2 XML解析器 310
11.2.1 DOM及其解析 310
11.2.2 SAX及其常用API 311
11.2.3 DOM与SAX比较 312
11.3 使用JDOM操纵和解析XML 312
11.3.1 什么是JDOM 312
11.3.2 创建和遍历XML文档的常用方法 313
11.3.3 Case:创建和遍历XML文档 314
11.4 JSP中的XML语法 318
11.5 单元实训与课外拓展 320
11.5.1 课堂课后讨论 320
11.5.2 上机实训练习 320
11.5.3 课外拓展训练 321
小结 321
习题 321
第4部分 提高篇:JSTL和EL、Filter和Listener 325
第12章 应用JSTL和EL简化JSP开发 325
12.1 JSTL与EL概述 325
12.1.1 JSTL与EL的发展 325
12.1.2 Case:EL应用实例 326
12.1.3 Case:应用JSTL 1.2开发JSP页面 327
12.2 表达式语言 328
12.2.1 EL的语法基础 329
12.2.2 EL的操作运算符 330
12.2.3 EL中的隐含对象 331
12.2.4 EL的数据类型和自动类型转换 331
12.3 JSP标准标签库 332
12.3.1 JSTL标签库及其子标签 332
12.3.2 安装使用JSTL 1.2 333
12.3.3 核心标签库1:表达式操作的标签 334
12.3.4 核心标签库2:条件标签 336
12.3.5 核心标签库3:迭代标签 338
12.3.6 核心标签库4:URL标签 342
12.3.7 XML标签库 344
12.3.8 il8n标签库:编写多语言应用 345
12.3.9 SQL标签库 346
12.3.10 函数标签库 346
12.4 单元实训与课外拓展 348
12.4.1 课堂课后讨论 348
12.4.2 上机实训练习 348
12.4.3 课外拓展训练 348
小结 349
习题 349
第13章 创建Web过滤和监听程序 351
13.1 Case:开发一个简单的Filter 351
13.1.1 编写Filter的源文件 351
13.1.2 编译、部署和配置Filter 354
13.1.3 运行和测试Filter 355
13.1.4 开发Filter小结 355
13.2 Filter理性认识——Filter的运行机制 355
13.2.1 Filter概述 356
13.2.2 Filter的应用场景 356
13.2.3 Filter接口的方法 357
13.2.4 Filter的配置进阶 359
13.3 项目实战:Filter的典型应用 360
13.3.1 Case:字符编码过滤器 361
13.3.2 ServletRequest和ServletResponse之Wrapper类 363
13.4 Listener概述 365
13.4.1 ServletContext相关监听接口 366
13.4.2 HttpSession相关监听接口 367
13.4.3 ServletRequest监听接口 368
13.5 项目实战:Listener典型应用 368
13.5.1 开发Listener 368
13.5.2 配置和测试Listener 371
13.6 单元实训与课外拓展 373
13.6.1 课堂课后讨论 373
13.6.2 上机实训练习 374
13.6.3 课外拓展训练 374
小结 374
习题 375
第5部分 实践篇:项目实战开发 381
第14章 应用组件实现JSP高级应用开发 381
14.1 文件上传组件 381
14.1.1 文件上传问题的缘由 381
14.1.2 常用的文件上传组件及简单比较 383
14.1.3 Case:应用Apache Commons FileUpload组件上传文件 383
14.1.4 Case:应用COS组件上传文件 395
14.2 应用Commons Email组件发送邮件 399
14.2.1 Commons Email组件概述 399
14.2.2 Commons Email组件的主要类和方法 400
14.2.3 Case:发送基本的文本格式的邮件 401
14.2.4 Case:发送HTML格式带附件的邮件 403
14.3 应用POI组件读写Excel表格 406
14.3.1 POI组件概述 406
14.3.2 POI组件的主要类和方法 406
14.3.3 Case:应用POI组件读取Excel表格 407
14.3.4 Case:应用POI组件生成Excel报表 410
14.4 应用JFreeChart组件绘制统计图表 412
14.4.1 JFreeChart组件概述 413
14.4.2 JFreeChart组件的核心类库 413
14.4.3 Case:应用JFreeChart组件绘制饼图 414
14.4.4 Case:应用JFreeChart组件绘制多系列柱状图 417
14.4.5 Case:应用JFreeChart组件绘制Pareto图 421
14.5 单元实训与课外拓展 424
14.5.1 课堂课后讨论 425
14.5.2 上机实训练习 425
14.5.3 课外拓展训练 425
小结 426
习题 426
第15章 按MVC架构实现项目开发 429
15.1 Model 2与MVC架构 429
15.1.1 Model 1与Model 2 429
15.1.2 MVC思想及其优势 430
15.1.3 Model 2与MVC 431
15.1.4 常用的MVC框架 433
15.2 项目典型模块的MVC开发 434
15.2.1 Case:用户系统登录模块 434
15.2.2 Case:公告发布 438
15.3 DAO设计模式 443
15.3.1 为什么进行多层设计 443
15.3.2 经典的多层系统开发架构 444
15.3.3 DAO设计模式及其组件 445
15.3.4 DAO设计模式中的包和类命名规则 445
15.4 数据库连接池与数据分页技术 446
15.4.1 数据库连接池与Tomcat数据源 446
15.4.2 JSP数据分页技术 448
15.5 项目典型模块的MVC+DAO开发 452
15.5.1 按DAO设计模式创建包结构 452
15.5.2 创建DAO组件 452
15.5.3 定义Servlet 459
15.5.4 编写页面进行测试 464
15.6 单元实训与课外拓展 468
15.6.1 课堂课后讨论 468
15.6.2 上机实训练习 469
15.6.3 课外拓展训练 469
小结 469
习题 470
第6部分 展望篇:Java Web开发的前沿技术 475
第16章 模式与框架 475
16.1 Java EE概述 475
16.1.1 JavaEE规范 475
16.1.2 Java EE应用的分层模型和应用组件 476
16.1.3 Java EE服务器 477
16.2 企业设计模式 477
16.2.1 什么是设计模式 477
16.2.2 常用的9个设计模式 478
16.2.3 GRASP软件开发模式 479
16.3 SSH与TSH框架组合 480
16.3.1 为什么使用框架 481
16.3.2 SSH框架组合 481
16.3.3 TSH框架组合 482
16.4 Web 2.0与Java CMS 482
16.4.1 Web 2.0与Aiax技术 482
16.4.2 Java CMS 483
16.5 Web Service与SOA 483
16.5.1 Web Service 483
16.5.2 SOA 484
16.6 Java的变形与发展 484
16.6.1 从Rubv与RoR说起 485
16.6.2 JRuby和Jython 485
16.6.3 Groovy与Scala 486
小结 487
附录 部分习题参考答案 488
参考文献 493