第1章 Java EE体系结构 1
1.1 软件开发现状和发展趋势 1
1.1.1 软件开发现状 1
1.1.2 未来发展趋势 2
1.2 Jave EE概述 3
1.2.1 Java EE定义 3
1.2.2 Java EE规范 4
1.3 Java EE容器 5
1.3.1 客户端应用容器 5
1.3.2 Applet容器 5
1.3.3 Web容器 6
1.3.4 企业JavaBean容器 6
1.4 Java EE组件 6
1.4.1 客户端(JavaBean)组件 7
1.4.2 Applet组件 7
1.4.3 Web组件 7
1.4.4 EJB组件 7
1.5 Java EE服务API 8
1.5.1 数据库连接服务API-JDBC 8
1.5.2 消息服务连接服务API-JMS 9
1.5.3 数据持久化服务API-JPA 9
1.5.4 命名和目录服务API-JNDI 9
1.5.5 安全性验证和授权服务API-JAAS 9
1.5.6 电子邮件服务API-JavaMail 10
1.5.7 事务服务API-JTA 10
1.5.8 XML处理服务API-JAXP 10
1.5.9 XMLWeb服务API-JAX-WS 10
1.5.10 XML绑定服务API-JAXB 10
1.5.11 带附件的SOAP服务API-SAAJ 10
1.5.12 XML Web服务注册API-JAXR 11
1.5.13 与其他遗留系统交互服务API-J2EE Connector Architecture 11
1.6 组件间通信协议 11
1.6.1 HTTP 12
1.6.2 HTTPS 12
1.6.3 RMI 12
1.6.4 RMI-IIOP 12
1.6.5 SOAP 12
1.7 Java EE角色 13
1.7.1 Java EE产品提供者 13
1.7.2 Java EE开发工具提供者 13
1.7.3 Java EE应用组件提供者 13
1.7.4 Java EE应用组装者 13
1.7.5 Java EE应用部署者和管理者 14
1.8 Java EE体系架构 14
1.8.1 客户层 14
1.8.2 Web表示层 15
1.8.3 业务处理层 15
1.8.4 资源数据层 15
习题1 15
第2章 Java EE服务器和开发环境的安装和配置 16
2.1 Java EE服务器的概述 16
2.1.1 符合Java EE规范的服务器产品 16
2.1.2 Java EE服务器产品的比较和选择 16
2.2 Tomcat服务器 18
2.2.1 Tomcat的下载 18
2.2.2 Tomcat的安装 19
2.2.3 Tomcat的测试 20
2.3 Java EE开发工具比较和选择 22
2.4 Eclipse工具的安装和配置 22
2.4.1 Eclipse的下载 23
2.4.2 Eclipse的安装和启动 23
2.4.3 Eclipse配置Java EE服务器 24
2.4.4 Eclipse创建Java EE Web项目 25
2.4.5 部署Java EE Web项目 26
2.5 MyEclipse IDE安装和配置 28
2.5.1 MyEclipse下载和安装 28
2.5.2 启动MyEclipse并配置Java EE服务器 28
2.5.3 创建Java EE Web项目 29
2.5.4 部署Java EE Web项目 31
2.5.5 启动并测试Java EE Web项目 32
习题2 33
第3章 Servlet编程 34
3.1 Web基础回顾 34
3.1.1 Web基本概念 34
3.1.2 Web工作模式 35
3.1.3 Web请求方式 35
3.1.4 Web响应类型 35
3.2 Servlet概述 36
3.2.1 什么是Servlet 36
3.2.2 Servlet体系结构 36
3.2.3 Servlet功能 37
3.3 Servlet编程 37
3.3.1 引入包 37
3.3.2 类定义 37
3.3.3 重写doGet方法 37
3.3.4 重写doPost方法 38
3.3.5 重写init方法 38
3.3.6 重写destroy方法 38
3.4 Servlet生命周期 39
3.4.1 加载类和实例化阶段 39
3.4.2 初始化阶段 39
3.4.3 处理请求阶段 40
3.4.4 销毁阶段 40
3.5 Servlet配置 40
3.5.1 Servlet声明 41
3.5.2 Servlet映射 42
3.6 Servlet部署 43
3.7 Servlet应用案例:取得数据表记录并显示 44
3.7.1 案例功能简述 44
3.7.2 案例分析设计 44
3.7.3 案例编程实现 44
3.7.4 案例部署和测试 46
习题3 47
第4章 HTTP请求处理编程 48
4.1 HTTP请求内容 48
4.1.1 HTTP请求中包含信息的分析 49
4.1.2 请求头 49
4.1.3 请求体内容 50
4.2 Java EE请求对象 50
4.2.1 请求对象类型与生命周期 50
4.2.2 请求对象功能与方法 51
4.2.3 取得请求头方法 51
4.2.4 取得请求中包含的提交参数数据 52
4.2.5 取得其他客户端信息 53
4.2.6 取得服务器端信息 54
4.3 请求对象应用实例:取得HTML表单提交的数据 54
4.3.1 业务描述 54
4.3.2 案例编程 55
4.4 请求对象应用实例:取得客户端信息并验证 60
4.4.1 业务描述 60
4.4.2 项目编程 60
4.4.3 应用部署和测试 64
习题4 64
第5章 HTTP响应处理编程 66
5.1 HTTP响应的内容 66
5.1.1 响应状态 67
5.1.2 响应头 68
5.1.3 响应体 69
5.2 Java EE Web响应对象 70
5.2.1 响应对象类型 70
5.2.2 响应对象生命周期 71
5.3 响应对象功能和方法 71
5.3.1 设置响应状态码功能方法 71
5.3.2 设置响应头功能方法 72
5.3.3 设置响应头便捷方法 73
5.3.4 设置响应体发送功能方法 74
5.4 HTTP文本类型响应案例 75
5.4.1 案例功能 75
5.4.2 案例程序设计 75
5.4.3 案例编程 76
5.4.4 案例测试 80
5.5 HTTP二进制类型响应案例 81
5.5.1 案例功能 81
5.5.2 案例组件设计 81
5.5.3 案例编程 82
5.5.4 案例测试 84
习题5 85
第6章 HTTP会话跟踪编程 86
6.1 会话基本概念 86
6.1.1 什么是会话 86
6.1.2 会话跟踪 87
6.1.3 Java EE Web会话跟踪方法 87
6.2 URL重写 88
6.2.1 URL重写实现 88
6.2.2 URL重写的缺点 88
6.3 隐藏域表单元素 89
6.3.1 隐藏域表单的实现 89
6.3.2 隐藏域表单的缺点 89
6.4 Cookie 90
6.4.1 什么是Cookie 90
6.4.2 Java EE规范Cookie API 90
6.4.3 将Cookie保存到客户端 92
6.4.4 Web服务器读取客户端保存的Cookie对象 92
6.4.5 Cookie的缺点 92
6.5 Java EE会话对象 93
6.5.1 会话对象的类型和取得 93
6.5.2 会话对象的功能和方法 94
6.5.3 会话对象的生命周期 96
6.5.4 会话ID的保存方式 97
6.6 会话对象应用实例:验证码生成和使用 100
6.6.1 业务描述 100
6.6.2 案例设计与编程 100
6.6.3 案例测试 107
习题6 108
第7章 ServletContext和Web配置 110
7.1 Web应用环境对象 110
7.1.1 Web应用环境对象的类型和取得 110
7.1.2 服务器环境对象的生命周期 111
7.1.3 服务器环境对象的功能和方法 111
7.2 Java EE Web的配置 115
7.2.1 配置文件和位置 115
7.2.2 Web级初始参数配置 116
7.2.3 Web应用级异常处理配置 117
7.2.4 MIME类型映射配置 118
7.2.5 Session会话超时配置 118
7.2.6 外部资源引用配置 119
7.3 Servlet配置对象ServletConfig 119
7.3.1 配置对象类型和取得 119
7.3.2 ServletConfig功能和方法 120
7.3.3 ServletConfig对象应用案例 121
7.4 转发 123
7.4.1 转发的实现 123
7.4.2 转发与重定向的区别 127
7.4.3 转发编程注意事项 127
7.5 ServletContext应用案例 128
7.5.1 项目设计与编程 128
7.5.2 案例部署与测试 133
习题7 134
第8章 Java EE过滤器编程 136
8.1 过滤器概述 136
8.1.1 过滤器的基本概念 136
8.1.2 过滤器的基本功能 137
8.2 Java EE过滤器API 138
8.2.1 javax.servlet.Filter接口 138
8.2.2 javax.servlet.FilterChain接口 138
8.2.3 javax.servlet.FilterConfig接口 139
8.3 Java EE过滤器编程和配置 139
8.3.1 Java EE过滤器编程 140
8.3.2 过滤器配置 142
8.3.3 过滤器生命周期 145
8.4 过滤器主要过滤任务 146
8.4.1 处理HTTP请求 146
8.4.2 处理HTTP响应 147
8.4.3 阻断HTTP请求 147
8.5 过滤器应用实例:用户登录验证和权限验证 148
8.5.1 项目功能描述 148
8.5.2 项目设计与编程 148
8.5.3 过滤器测试 150
8.6 过滤器应用实例:修改响应头和响应体 150
8.6.1 项目功能描述 151
8.6.2 项目设计与编程 151
8.6.3 过滤器测试 153
习题8 154
第9章 Java EE监听器编程 155
9.1 监听器概述 155
9.1.1 监听器的基本概念 156
9.1.2 监听器的基本功能 156
9.2 Java EE Web监听器类型 156
9.3 ServletContext对象监听器 157
9.3.1 ServletContext对象监听器概述 157
9.3.2 ServletContext对象监听器编程 158
9.3.3 ServletContext对象监听器配置 159
9.3.4 ServletContext对象监听器应用 159
9.4 ServletContext对象属性监听器 160
9.4.1 ServletContext对象属性监听器概述 160
9.4.2 ServletContext对象属性监听器编程 161
9.4.3 ServletContext对象属性监听器配置 162
9.4.4 ServletContext对象属性监听器应用 162
9.5 会话对象监听器 162
9.5.1 会话对象监听器概述 162
9.5.2 会话对象监听器编程 163
9.5.3 会话对象监听器配置 164
9.5.4 会话对象监听器应用 164
9.6 会话对象属性监听器 164
9.6.1 会话对象属性监听器概述 164
9.6.2 会话对象属性监听器编程 165
9.6.3 会话对象属性监听器配置 166
9.6.4 会话对象属性监听器应用 166
9.7 请求对象监听器 167
9.7.1 请求对象监听器概述 168
9.7.2 请求对象监听器编程 168
9.7.3 请求对象监听器配置 169
9.7.4 请求对象监听器应用 169
9.8 请求对象属性监听器 170
9.8.1 请求对象属性监听器概述 170
9.8.2 请求对象属性监听器编程 170
9.9 会话对象监听器应用实例:在线用户显示 171
9.9.1 项目设计与编程 171
9.9.2 项目部署和测试 176
习题9 177
第10章 JSP 178
10.1 JSP概述 178
10.1.1 JSP概念 178
10.1.2 JSP与Servlet的比较 179
10.1.3 JSP工作流程 179
10.1.4 JSP组成 180
10.2 JSP指令 180
10.2.1 指令语法和类型 180
10.2.2 page指令 181
10.2.3 include指令 182
10.2.4 taglib指令 186
10.3 JSP动作 187
10.3.1 JSP动作语法和类型 187
10.3.2 include动作 188
10.3.3 useBean动作 190
10.3.4 setProperty动作 192
10.3.5 getProperty动作 192
10.3.6 forward动作 193
10.3.7 param动作 193
10.4 JSP脚本 194
10.4.1 JSP脚本类型 194
10.4.2 代码脚本 194
10.4.3 表达式脚本 196
10.4.4 声明脚本 196
10.4.5 注释脚本 198
10.5 JSP内置对象 198
10.5.1 请求对象request 199
10.5.2 响应对象response 200
10.5.3 会话对象session 201
10.5.4 服务器环境对象application 202
10.5.5 页面对象page 204
10.5.6 页面环境对象pageContext 205
10.5.7 输出对象out 205
10.5.8 异常对象exception 205
10.5.9 配置对象config 207
10.6 JSP应用实例:使用脚本和动作显示数据库记录列表 208
10.6.1 设计与编程 208
10.6.2 项目部署和测试 212
习题10 212
第11章 EL与JSTL 214
11.1 EL表达式基础 214
11.1.1 EL基本概念 215
11.1.2 EL基本语法 215
11.1.3 EL运算符 218
11.1.4 EL内置对象访问 220
11.2 JSTL基础 221
11.2.1 JSTL的目的 221
11.2.2 JSTL标记类型 222
11.2.3 JSTL引入 222
11.3 JSTL核心标记 223
11.3.1 核心基础标记 224
11.3.2 逻辑判断标记 226
11.3.3 容器循环遍历标记〈c:forEach〉 229
11.3.4 字符串分隔遍历标记〈c:forTokens〉 231
11.4 JSTL格式输出和I18N标记 232
11.4.1 数值输出格式标记 232
11.4.2 日期输出格式标记 234
11.4.3 国际化I18N标记 237
11.5 JSTL数据库标记 243
11.5.1 〈sql:setDataSource〉标记 243
11.5.2 〈sql:query〉标记 244
11.5.3 〈sql:update〉标记 246
11.6 JSTL应用实例:使用JSTL标记显示数据库记录列表 247
11.6.1 案例功能简述 247
11.6.2 案例中组件设计与编程 248
11.6.3 项目部署和测试 251
习题11 252
第12章 JNDI命名服务编程 253
12.1 Naming Service概述 253
12.1.1 命名服务核心概念 253
12.1.2 命名服务系统的基本功能 254
12.2 Directory Service概述 255
12.2.1 目录服务系统基本概念 255
12.2.2 目录服务基本功能 256
12.2.3 常见的目录服务 257
12.3 JNDI概述 257
12.3.1 JNDI基础 258
12.3.2 JNDI API组成 258
12.4 命名服务JNDI编程 259
12.4.1 命名服务API 259
12.4.2 命名服务连接 260
12.4.3 命名服务注册编程 261
12.4.4 命名服务注册对象查找编程 261
12.4.5 命名服务注册对象注销编程 262
12.4.6 命名服务注册对象重新注册编程 262
12.4.7 命名服务子目录编程 263
习题12 265
第13章 JDBC数据库连接编程 266
13.1 JDBC基础和结构 266
13.1.1 JDBC基本概念 266
13.1.2 JDBC框架结构 267
13.2 JDBC驱动类型 268
13.2.1 TYPE Ⅰ(1)类型 268
13.2.2 TYPE Ⅱ(2)类型 270
13.2.3 TYPE Ⅲ(3)类型 271
13.2.4 TYPE Ⅳ(4)类型 271
13.3 JDBC API 273
13.3.1 java.sql.DriverManager 273
13.3.2 java.sql.Connection 274
13.3.3 java.sql.Statement 275
13.3.4 java.sql.PreparedStatement 276
13.3.5 java.sql.CallableStatement 277
13.3.6 java.sql.ResultSet 279
13.4 JDBC编程 282
13.4.1 执行SQL DML编程 282
13.4.2 执行SQL SELECT语句编程 283
13.4.3 调用数据库存储过程编程 284
13.5 JDBC连接池 286
13.5.1 连接池基本概念 286
13.5.2 连接池的管理 286
13.5.3 Tomcat 6.x连接池配置 287
13.5.4 JBoss 4.x连接池配置 289
13.6 JDBC新特性 290
习题13 291
第14章 JavaMail编程 292
14.1 Mail基础 292
14.1.1 电子邮件系统结构 293
14.1.2 电子邮件协议 294
14.1.3 主流的电子邮件服务器 295
14.1.4 邮件服务器安装与配置 296
14.2 JavaMail API 300
14.2.1 什么是JavaMail API 300
14.2.2 JavaMail API框架结构 300
14.2.3 安装JavaMail API 301
14.2.4 JavaMail API主要接口和类 301
14.2.5 JavaMail的基本编程步骤 305
14.3 JavaMail编程实例:发送邮件 306
14.3.1 发送纯文本邮件 306
14.3.2 发送HTML邮件 308
14.3.3 需要验证的发送邮件 309
14.3.4 发送带附件的邮件 310
14.4 JavaMail编程实例:接收邮件 312
14.4.1 接收纯文本邮件 312
14.4.2 接收带附件的邮件 313
习题14 316
第15章 Java EE企业级应用MVC模式 317
15.1 MVC模式概述 317
15.1.1 MVC模式基本概念 317
15.1.2 MVC模式各组成部分职责 318
15.1.3 Java EE应用MVC模式实现 319
15.2 MVC模式实际应用设计 320
15.2.1 JavaEE应用MVC模式的分层结构 320
15.2.2 传输层设计 321
15.2.3 持久层DAO设计 324
15.2.4 业务层BO设计 327
15.2.5 控制层CO设计 332
15.2.6 表示层UIO设计 333
15.3 MVC模式应用实例:企业OA的员工管理系统 336
15.3.1 项目功能描述 336
15.3.2 项目设计与编程 336
15.3.3 项目部署与测试 351
15.3.4 案例项目开发总结 353
习题15 353