第1篇 Java Web开发基础知识第1章 Web应用开发概述 1
1.1 Internet与万维网 1
1.1.1 Internet的历史 1
1.1.2 Internet的定义 3
1.1.3 万维网 3
1.1.4 Web的特点 5
1.1.5 Web 2.0 5
1.2 Web概述 6
1.2.1 Web是什么 6
1.2.2 超文本、HTML、XML 7
1.2.3 Web工作机制 11
1.3 Web相关知识 11
1.3.1 概念和术语 11
1.3.2 客户机/服务器模式 12
1.3.3 浏览器/服务器模式 13
1.3.4 网格计算 14
1.3.5 Web Service技术 14
1.4 主流Web应用开发技术 14
1.4.1 Web客户端开发技术 14
1.4.2 Web服务器端开发技术 15
1.5 Java Web应用的核心技术 17
1.5.1 JSP 17
1.5.2 Servlet 17
1.5.3 EJB 17
1.5.4 容器 17
1.6 小结 18
1.7 习题 18
第2章 Java Wed应用开发与运行环境的建立 19
2.1 Java Web应用开发和运行环境概述 19
2.2 安装和配置JDK 19
2.3 安装和配置Tomcat 22
2.3.1 Tomcat简介 22
2.3.2 Tomcat与Servlet容器 23
2.3.3 安装和配置Tomcat的步骤 24
2.3.4 测试Tomcat 26
2.3.5 Tomcat的目录结构 26
2.4 创建和发布Web应用 27
2.4.1 创建和发布Web应用的步骤 27
2.4.2 配置虚拟目录 29
2.5 安装、配置和使用MyEclipse 30
2.5.1 安装和配置MyEclipse 6.5 31
2.5.2 MyEclipse的使用初步 33
2.6 小结 35
2.7 习题 35
第3章 HTTP和Servlet基础 36
3.1 HTTP请求/响应模型 36
3.1.1 HTTP简介 36
3.1.2 HTTP请求 37
3.1.3 HTTP响应 39
3.1.4 状态管理 41
3.2 Servlet简介 42
3.2.1 Servlet是什么 42
3.2.2 Servlet的生命周期 42
3.2.3 Java Servlet API 43
3.3 HTTP与Http Servlet 44
3.3.1 创建Http Servlet的步骤 45
3.3.2 ServletContext和Web应用的关系 46
3.4 Servlet的调用 49
3.4.1 由URL调用Servlet 49
3.4.2 在〈FORM〉标记中指定Servlet 49
3.4.3 在〈SERVLET〉标记中指定Servlet 49
3.4.4 在JSP文件中调用Servlet 50
3.5 小结 50
3.6 习题 50
第4章 JSP运行机制与基本语法 52
4.1 JSP技术概述 52
4.1.1 JSP的应用实例 52
4.1.2 JSP的运行机制 53
4.1.3 JSP的特点 54
4.2 JSP的基本语法 55
4.2.1 JSP的页面组成 55
4.2.2 注释 56
4.2.3 声明 58
4.2.4 表达式 58
4.2.5 JSP脚本段 59
4.2.6 JSP基本语法的应用案例 59
4.3 JSP指令 60
4.3.1 JSP指令功能 60
4.3.2 include指令 60
4.3.3 page指令 61
4.3.4 taglib指令 64
4.3.5 JSP指令的应用案例 64
4.4 JSP动作 65
4.4.1 JSP动作功能 65
4.4.2 jsp:include动作 65
4.4.3 jsp:forward动作 68
4.4.4 jsp:plugin动作 71
4.4.5 jsp:useBean动作 75
4.4.6 jsp:setProperty动作 76
4.4.7 jsp:getProperty动作 77
4.4.8 JSP动作的应用案例 77
4.5 小结 80
4.6 习题 80
第5章 JSP内置对象 82
5.1 JSP内置对象概述 82
5.2 request对象 82
5.2.1 request对象的功能 83
5.2.2 getParameter方法 83
5.2.3 获取客户提交信息案例 83
5.2.4 request对象的常用方法 84
5.2.5 request对象常用方法的应用案例 86
5.3 response对象 87
5.3.1 response对象的功能 87
5.3.2 sendRedirect方法 87
5.3.3 response的状态行 89
5.3.4 setContentType方法 92
5.3.5 response对象的其他方法 94
5.3.6 response方法的应用案例 94
5.4 out对象 95
5.4.1 out对象的功能 95
5.4.2 out对象中预定义的常量和变量 95
5.4.3 out对象方法 96
5.4.4 out对象的应用案例 96
5.5 session对象 99
5.5.1 会话和会话ID 99
5.5.2 session对象的常用方法 100
5.5.3 session对象的应用案例 100
5.6 application对象 104
5.6.1 application对象的功能 104
5.6.2 application对象的常用方法 104
5.6.3 application对象的应用案例 104
5.7 exception对象 106
5.7.1 exception对象的功能 106
5.7.2 JSP异常处理语句 107
5.7.3 exception对象的常用方法 107
5.7.4 异常处理的应用案例 108
5.8 JSP其他内置对象 109
5.8.1 page对象 109
5.8.2 pageContext对象 110
5.8.3 config对象 111
5.9 Cookie 111
5.9.1 Cookie的功能 111
5.9.2 Cookie的属性 112
5.9.3 创建Cookie对象 112
5.9.4 Cookie方法 112
5.9.5 Cookie应用案例 112
5.10 小结 114
5.11 习题 115
第6章 JSP数据库的应用开发 116
6.1 安装和配置MySQL数据库 116
6.1.1 MySQL数据库基础 116
6.1.2 安装MySQL数据库 120
6.1.3 配置MySQL数据库 122
6.1.4 测试MySQL数据库 123
6.2 用JDBC访问MySQL数据库 126
6.2.1 JDBC概述 126
6.2.2 JDBC.ODBC桥 126
6.2.3 JDBC建立数据库连接的应用案例 127
6.2.4 JDBC建立数据库连接方法详解 129
6.3 数据源 134
6.3.1 数据源简介 134
6.3.2 配置数据源 134
6.3.3 在程序中访问数据源 138
6.4 JSP数据库的应用案例 139
6.5 小结 140
6.6 习题 141
第7章 JavaBean在JSP中的应用 142
7.1 JavaBean简介 142
7.1.1 什么是JavaBean 142
7.1.2 编写JavaBean 142
7.1.3 编译JavaBean 143
7.2 JavaBean的范围 144
7.2.1 页面范围 145
7.2.2 请求范围 145
7.2.3 对话范围 145
7.2.4 应用范围 145
7.3 JSP访问JavaBean的语法 145
7.4 在JSP中使用JavaBean 146
7.5 小结 151
7.6 习题 152
第8章 Struts和MVC设计模式 153
8.1 MVC框架简介 153
8.1.1 什么是MVC框架 153
8.1.2 为什么要用MVC 155
8.1.3 MVC的实现 156
8.2 用Struts2实现MVC设计模式 160
8.2.1 Struts概述 160
8.2.2 Struts2的安装与测试 162
8.2.3 Struts2的配置 164
8.2.4 Struts2的常用标签 166
8.2.5 Struts2的Action 172
8.3 Struts的Web应用开发案例 172
8.4 小结 177
8.5 习题 177
第9章 JSP开发中的常用技巧 179
9.1 JSP程序的国际化与本地化 179
9.1.1 国际化和本地化的概念 179
9.1.2 语言的国际化 179
9.1.3 日期和时间的国际化 180
9.2 中文乱码的问题 182
9.2.1 常见编码的基本概念 182
9.2.2 JSP页面显示时的中文乱码问题 183
9.2.3 JSP页面传递中文参数时的乱码问题 184
9.2.4 Servlet处理中文参数时的乱码问题 186
9.2.5 URL传递的中文参数的乱码问题 188
9.3 错误处理问题 190
9.3.1 异常处理 190
9.3.2 转译错误与客户端请求错误处理 191
9.3.3 错误显示页 192
9.4 在JSP中动态生成图像 192
9.5 限制表单重复提交 194
9.5.1 在客户端限制表单重复提交 194
9.5.2 在服务器端限制表单重复提交 198
9.6 Web应用的3种数据共享方式 199
9.6.1 基于请求的共享 199
9.6.2 基于会话的共享 200
9.6.3 基于应用的共享 200
9.7 Web组件的3种关联关系 200
9.7.1 请求转发 200
9.7.2 请求重定向 201
9.7.3 包含 202
9.8 4种典型的会话跟踪方法 202
9.8.1 使用Cookie 202
9.8.2 URL重写 203
9.8.3 隐藏的表单域 204
9.9 小结 204
9.10 习题 204
第2篇 JSP高级技术 206
第10章 JSP 2.0表达式语言 206
10.1 表达式语言简介 206
10.2 JSP表达式语言的语法和使用 207
10.2.1 表达式语言的定义 207
10.2.2 表达式求值 209
10.2.3 访问作用域变量 212
10.2.4 隐含对象 215
10.2.5 存取运算符 216
10.3 小结 222
10.4 习题 222
第11章 JSP标准标签库 224
11.1 JSTL概述 224
11.1.1 JSTL简介 224
11.1.2 JSTL的安装 225
11.1.3 一个简单的JSTL应用案例 226
11.2 JSTL的核心标签库 226
11.2.1 通用标签 227
11.2.2 流程控制标签 231
11.2.3 迭代标签 234
11.2.4 URL相关标签 237
11.3 JSTL的XML标签库 240
11.3.1 XPath简介 240
11.3.2 〈x:parse〉标签 240
11.3.3 〈x:out〉标签 241
11.3.4 〈x:set〉标签 241
11.3.5 〈x:if〉标签 241
11.3.6 〈x:choose〉、〈x:when〉和〈x:otherwise〉标签 242
11.3.7 〈x:foreach〉标签 242
11.3.8 〈x:transform〉标签 243
11.4 JSTL的格式化/国际化标签库 244
11.4.1 国际化标签 244
11.4.2 消息标签 246
11.4.3 数字日期格式化标签 248
11.5 JSTL的SQL标签库 255
11.6 JSTL的函数标签库 255
11.7 小结 256
11.8 习题 256
第12章 创建自定义JSP标签 258
12.1 JSP标签库 258
12.1.1 标签的工作原理 258
12.1.2 自定义标签的构成 259
12.1.3 自定义标签入门实例 260
12.2 开发自定义标签 261
12.2.1 创建标签处理类 262
12.2.2 创建标签库描述文件 266
12.2.3 在Web应用中使用自定义标签 269
12.3 在Web应用中使用标签 270
12.3.1 开发带属性的标签 271
12.3.2 开发带标签体的标签 273
12.4 标签的开发技巧 276
12.4.1 调试错误的相关问题 276
12.4.2 使用SimpleTag接口简化自定义标签的开发 276
12.4.3 多个标签的嵌套 277
12.4.4 开发迭代标签 281
12.5 小结 283
12.6 习题 283
第13章 Servlet过滤器和监听器 284
13.1 Servlet过滤器简介 284
13.1.1 Servlet过滤器的特点 284
13.1.2 Servlet过滤器的适用场合 284
13.1.3 Servlet过滤器的作用 285
13.2 Servlet过滤器的体系结构 285
13.2.1 Servlet过滤器对请求的过滤 285
13.2.2 Servlet过滤器对响应的过滤 286
13.2.3 Servlet过滤器的发布 286
13.3 实现一个Servlet过滤器 286
13.3.1 Servlet过滤器接口的构成 286
13.3.2 Servlet过滤器的创建步骤 287
13.3.3 编写实现类的程序 287
13.3.4 配置部署Servlet过滤器 289
13.4 过滤器的应用案例 290
13.4.1 版权过滤器的应用案例 290
13.4.2 禁止未授权的IP访问站点过滤器的应用案例 292
13.5 Servlet监听器 295
13.5.1 监听器的原理 295
13.5.2 监听器的类型 295
13.5.3 监听器管理共享数据库连接 296
13.5.4 监听器的应用案例 297
13.6 小结 299
13.7 习题 299
第14章 使用Log4j进行日志操作 301
14.1 Log4j简介 301
14.2 Log4j关键类和接口介绍 302
14.2.1 Logger 302
14.2.2 Level 303
14.2.3 Appender接口 303
14.2.4 Layout类 304
14.2.5 Logger的层次命名规则 304
14.2.6 一个在程序中配置Log4j的例子 305
14.2.7 配置文件 306
14.3 使用Java properties配置 307
14.3.1 配置根Logger 307
14.3.2 配置日志信息输出目的地Appender 308
14.3.3 配置日志信息的格式(布局) 309
14.3.4 配置文件举例 310
14.3.5 其他输出地的配置 311
14.4 配置log4j.xml 312
14.4.1 xml配置文件头 312
14.4.2 根元素log4j:configuration 312
14.4.3 appender元素 312
14.4.4 layout元素 313
14.4.5 logger元素 313
14.4.6 root元素 313
14.4.7 level元素 313
14.4.8 appender-ref元素 313
14.4.9 param元素 313
14.4.10 元素创建实例 314
14.4.11 配置文件实例 314
14.5 Log4j配置实现过程 315
14.5.1 Servlet的初始化 316
14.5.2 在需要使用Log4j的地方获取Logger实例 317
14.6 在Web应用中使用Log4j 317
14.6.1 配置Log4j环境的Servlet 317
14.6.2 编写配置文件 318
14.6.3 在JSP页面中输出日志 319
14.6.4 发布运行这个Log4j程序 320
14.7 优化 321
14.7.1 日志为禁用时的优化 321
14.7.2 日志状态为启用时的优化 321
14.7.3 日志信息输出时的优化 321
14.8 小结 322
14.9 习题 322
第15章 Hibernate框架的应用 323
15.1 Hibernate框架简介 323
15.1.1 什么是Hibernate框架 323
15.1.2 为什么要使用Hibernate框架 323
15.2 Hibernate的安装与配置 324
15.2.1 Hibernate的下载 324
15.2.2 Hibernate的安装 325
15.2.3 传统JDBC的数据库操作 325
15.2.4 Hibernate的数据库操作 326
15.3 Hibernate核心类与编程步骤 329
15.3.1 Hibernate的核心类 329
15.3.2 使用hibernate编程的步骤 330
15.3.3 Hibernate的主键生成方式 330
15.3.4 Hibernate的映射配置文件 332
15.3.5 Hibernate中的对象 333
15.4 用Hibernate开发Web的应用案例 333
15.4.1 编写实体对象文件 333
15.4.2 编写实体映射文件Teacher.hbm.xml 334
15.4.3 编写Hibernate配置文件hibernate.cfg.xml 335
15.4.4 开发JSP文件 335
15.5 小结 337
15.6 习题 337
第16章 Spring框架的应用 338
16.1 Spring框架简介 338
16.1.1 Spring框架的系统架构 338
16.1.2 Spring框架中模块组件的功能说明 339
16.1.3 Spring框架系统架构的特性体现 340
16.2 Spring的安装与配置 340
16.2.1 Spring的下载 340
16.2.2 Spring的安装 341
16.2.3 Spring的配置 342
16.3 用Spring开发Java的应用 346
16.4 Spring数据源的配置 347
16.4.1 环境和背景 347
16.4.2 创建项目 348
16.4.3 创建数据库环境 348
16.4.4 Spring Bean容器环境获取工具类 349
16.4.5 写获取数据库工具类 349
16.4.6 写测试类 350
16.4.7 数据源置换 352
16.4.8 使用JNDI数据源 352
16.5 小结 353
16.6 习题 353
第3篇 JSP Web技术应用第17章 注册登录模块的应用 354
17.1 关键技术 354
17.1.1 验证码简介 354
17.1.2 验证码技术的实现 354
17.1.3 MD5数据加密简介 358
17.1.4 MD5加密算法技术的实现 358
17.1.5 表单验证 364
17.2 一个基本的用户注册模块的设计与实现 364
17.2.1 用户注册模块的设计 365
17.2.2 用户注册页面的实现 366
17.2.3 用户信息Bean 370
17.2.4 用户信息数据库操作Bean 373
17.2.5 用户注册Servlet 376
17.2.6 用户注册成功/失败页面 379
17.2.7 用户注册信息的验证 381
17.2.8 用户注册信息的加密 383
17.3 一个基本的用户登录模块的设计与实现 383
17.3.1 用户登录模块的设计 383
17.3.2 用户登录页面的实现 384
17.3.3 用户登录Servlet 385
17.3.4 用户登录信息的验证 387
17.3.5 保存登录信息 387
17.4 小结 388
17.5 习题 388
第18章 JSP页面分页技术的实现 389
18.1 分页技术的设计思路 389
18.2 在JSP页面中直接分页 389
18.3 在Servlet中实现分页 393
18.4 结合JavaBean实现分页 396
18.5 万能分页技术的实现 400
18.6 根据不同的数据库实现分页技术 403
18.6.1 Oracle数据库分页 403
18.6.2 DB2数据库分页 404
18.6.3 SQL Server 2000数据库分页 404
18.6.4 SQL Server 2005数据库分页 404
18.6.5 MySQL数据库分页 405
18.6.6 PostgreSQL数据库分页 405
18.7 本章难点剖析 405
18.8 小结 406
18.9 习题 406
第19章 开发Java Mail Web的应用 407
19.1 E-mail协议简介 407
19.1.1 SMTP 408
19.1.2 POP 409
19.1.3 IMAP 409
19.1.4 MIME 410
19.2 JavaMail API简介 410
19.2.1 安装JavaMail 410
19.2.2 安装JavaBeans Activation Framework 411
19.2.3 JavaMail核心类 411
19.3 使用JavaMail API发送普通文本邮件 415
19.4 使用JavaMail发送HTML格式的邮件 417
19.5 使用JavaMail发送带附件的邮件 420
19.6 使用JavaMail接收邮件 423
19.7 小结 426
19.8 习题 426
第20章 文件上传/下载的应用 427
20.1 上传/下载文件模块的设计原理 427
20.2 在JSP中读写文件 427
20.2.1 采用ServletContext读文件 428
20.2.2 采用FileReader类读文件 429
20.2.3 采用FileWriter类写文件 430
20.3 jspSmartUpload组件 432
20.3.1 jspSmartUpload组件介绍 432
20.3.2 jspSmartUpload组件的下载和安装 433
20.4 jspSmartUpload常用类和函数 433
20.4.1 File类 433
20.4.2 Files类 435
20.4.3 Request类 436
20.4.4 上传与下载共用的方法 436
20.4.5 上传文件使用的方法 436
20.4.6 下载文件使用的方法 438
20.5 上传文件的实现 439
20.6 下载文件的实现 441
20.7 本章难点剖析 442
20.8 小结 443
20.9 习题 443
第21章 JSP的安全控制 444
21.1 JSP安全控制的必要性 444
21.2 传递信息的加密 444
21.2.1 采用DES算法加密文字 445
21.2.2 采用MD5算法加密文字 447
21.3 添加SSL认证信息 448
21.3.1 SSL协议简介 448
21.3.2 在Tomcat上配置SSL 449
21.4 请求页面的访问权限控制 450
21.4.1 通过Session信息控制页面访问权限 450
21.4.2 访问权限判断函数 451
21.5 本章难点剖析 452
21.6 小结 452
21.7 习题 452
参考文献 453