《J2EE技术内幕》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)巴姆巴拉(Bambara J.J.)等著;刘堃等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2002
  • ISBN:7111102002
  • 页数:581 页
图书介绍:

第1章 Java、分布式计算和J2EE 1

1.1 Java背景知识 4

1.1.1 应用开发的各项能力 4

1.1.2 Java是应用开发的粘合剂 5

1.2 公司必须为网络经济进行改造 6

1.2.1 公司日益需要Internet来参与竞争 6

1.2.2 企业应用开发的挑战 7

1.3 Web结构的要求 9

1.3.1 速度的比较 9

1.3.2 服务有效性 10

1.3.3 连接到现有数据 10

1.3.4 扩展的用户概念:客户、职员和合伙人 10

1.3.5 灵活的用户交互 10

1.3.6 灵活的事务组件模型 11

1.4 Web应用的生存周期 11

1.4.1 多个开发人员角色 11

1.4.2 迭代式开发 12

1.4.3 简化的结构和开发 13

1.4.4 方便地映射到应用功能 13

1.4.5 基于组件的结构 14

1.4.6 对客户端组件的支持 14

1.4.7 对事务逻辑组件的支持 15

1.5 J2EE API和认证 16

1.5.1 Java2 平台企业版规范 17

1.5.2 J2EE兼容性测试套件 17

1.5.3 J2EE中的Sun BluePrints设计指南 18

1.5.4 将来的企业标准 18

1.6 XML和J2EE 18

1.6.1 为什么使用XML 19

1.6.2 电子数据交换和电子商务 19

1.6.3 电子数据交换 20

1.6.4 企业应用集成 20

1.6.5 软件开发和XML 20

1.6.6 XML技术和Java平台 21

1.6.7 Java平台的XML技术标准扩展 21

1.7 J2EE应用的打包 22

1.8 本书研究的应用范例 22

1.9 小结 23

第2章 J2EE应用设计和开发 24

2.1 J2EE层次 24

2.1.1 客户层 25

2.1.2 表示层 25

2.1.3 业务逻辑层 25

2.1.4 数据层 26

2.2 J2EE应用组件 26

2.2.1 客户组件 26

2.2.2 Web组件 28

2.2.3 业务组件 28

2.3 J2EE结构 29

2.3.1 容器和服务 29

2.3.2 容器类型 30

2.4 开发的方法和过程 30

2.4.1 建模工具 31

2.4.2 开发工具 31

2.4.3 J2EE应用的内容 32

2.4.4 J2EE应用的开发阶段 33

2.5 范例应用程序简介 38

2.6 小结 38

第3章 设计J2EE应用 39

3.1 建模工具的历史 39

3.2 概况 39

3.3 设计应用 39

3.3.1 为什么创建模型 40

3.3.2 实体关系基础 41

3.3.3 CASE工具 43

3.3.4 逆向工程 44

3.3.5 实体建模 46

3.3.6 关系建模 47

3.3.7 支持的数据库 49

3.4 为Web应用建模 49

3.5 系统建模 51

3.6 统一建模语言 52

3.6.1 UML的目标和原则 53

3.6.2 规范和术语 53

3.7 为Web页面建模 56

3.7.1 表单 59

3.7.2 框架 59

3.8 EJB UML映射 59

3.8.1 Java社团应该遵循规范 60

3.8.2 将要开发的规范,以及它如何满足当前的需求 60

3.9 工具支持 61

3.10 小结 61

第4章 构建J2EE应用程序的任务列表 62

4.1 完成前提任务 62

4.1.1 后勤前提条件 62

4.1.2 物理前提条件 64

4.2 设计数据库 65

4.2.1 确定应用实体 65

4.2.2 提炼每个实体和属性 66

4.2.3 确定关系 66

4.3 创建表和列 66

4.3.1 选择数据类型 67

4.3.2 创建关键字 68

4.3.3 完成数据库物理设计 68

4.3.4 估计数据库大小 69

4.3.5 建立数据库开发环境 69

4.4 定义应用程序 70

4.5 创建后端接口 71

4.5.1 初始数据的加载 71

4.5.2 创建EJB类和数据库存储过程 72

4.5.3 数据库调整和修复的批处理工具 72

4.5.4 备份和恢复的批处理工具 72

4.6 创建界面 72

4.6.1 选择应用的用户界面风格 73

4.6.2 为界面风格设置TAGLIB类库 73

4.7 构建页面 74

4.7.1 确定页面类型 74

4.7.2 为页面或子页面添加控件 75

4.7.3 设计菜单交互动作 76

4.8 创建数据访问对象 76

4.9 验证代码 76

4.9.1 决定使用调试器的时机 76

4.9.2 选择断点代码 77

4.10 提炼代码 77

4.11 创建可执行程序 77

4.12 小结 78

第5章 建立资源访问:JNDI和LDAP 79

5.1 命名和目录服务 79

5.2 什么是JNDI 79

5.3 寻找应用范例资源 80

5.3.1 JNDI的好处 80

5.3.2 JNDI和J2EE 80

5.3.3 JNDI服务提供者 81

5.4 JNDI结构 82

5.4.1 JNDI程序包 83

5.4.2 命名 83

5.4.3 上下文 83

5.4.4 命名空间 84

5.5 JNDI操作 85

5.6 轻型目录访问协议 85

5.7 JNDI/LDAP实用范例 86

5.8 小结 88

第6章 建立数据访问:JDBC 89

6.1 介绍 89

6.1.1 什么是JDBC 90

6.1.2 JDBC的好处 90

6.2 JDBC结构:API和驱动 91

6.3 JDBC API 93

6.4 获得和更新数据 97

6.4.1 语句 97

6.4.2 ResultSet 100

6.5 SQL-to-Java数据类型 101

6.5.1 处理Null 102

6.5.2 存储过程 102

6.6 JDBC异常类型 103

6.6.1 SQLException 103

6.6.2 SQLWarning 104

6.6.3 DataTruncation警告 104

6.7 元数据 104

6.7.1 ResultSetMetaData对象 104

6.7.2 DatabaseMetaData接口 105

6.8 可滚动的结果集 105

6.8.1 可滚动结果集方法 106

6.8.2 可滚动结果集范例 106

6.8.3 可更新结果集 107

6.8.4 创建可更新结果集 107

6.9 更新行 107

6.9.1 删除行 108

6.9.2 插入行 108

6.10 事务支持 109

6.11 批处理语句 109

6.12 JDBC 2.1新数据类型 111

6.12.1 BLOB和CLOB 111

6.12.2 ARRAY 112

6.12.3 STRUCT 113

6.12.4 REF 113

6.13 JDBC2.0可选程序包API:javax.sql 113

6.13.1 使用JNDI进行数据库访问 113

6.13.2 连接池 114

6.13.3 分布式事务 115

6.13.4 JDBC RowSets 115

6.14 范例研究:SilverStream应用服务器 115

6.14.1 SilverStream的数据库连接 115

6.14.2 SilverStream内部的JDBC 116

6.14.3 从SilverStream数据库中的会话bean访问JDBC 117

6.14.4 从会话bean访问JDBC 118

6.14.5 在会话bean中定义资源引用查找 118

6.14.6 建立JDBC调用 118

6.14.7 建立连接 119

6.14.8 建立、编译和执行SQL Select语句 119

6.14.9 创建环境入口 120

6.14.10 把资源引用映射为SilverStream数据库 120

6.15 小结 121

第7章 建立控制流:servlet 122

7.1 什么是servlet 122

7.1.1 第一代--CGI 123

7.1.2 第二代--ISAPI/NSAPI 123

7.1.3 Java替代品--servlet 124

7.2 servlet的优点 124

7.3 在MVC和应用范例中用做控制器 124

7.4 基本HTTP 125

7.5 Servlet容器 127

7.6 Sevlet API 127

7.7 服务方法细节 128

7.7.1 把数据传递给客户端 128

7.7.2 设置MIME类型 129

7.8 HTML客户 130

7.8.1 表单 130

7.8.2 经常使用的<FORM>标签属性 130

7.9 servlet生命周期 132

7.9.1 初始化 133

7.9.2 服务 133

7.9.3 销毁 133

7.10 ServletContext 134

7.11 HTTP请求报头 134

7.11.1 参数 134

7.11.2 内容 134

7.11.3 连接 135

7.11.4 Cookie 137

7.11.5 报头 137

7.12 HTTP响应报头 140

7.13 会话管理 141

7.13.1 隐藏表单字段 141

7.13.2 改写URL 142

7.13.3 持久Cookie 142

7.13.4 会话跟踪API 144

7.14 发送请求 145

7.15 使用JDBC的servlet 146

7.16 Web应用 149

7.16.1 Web存档 149

7.16.2 目录结构 149

7.16.3 部署描述符/映射到servlet的请求 150

7.16.4 Multi-MIME类型 152

7.17 在SilverStream应用服务器中使用servlet 152

7.18 Servlet2.3 API 157

7.19 小结 157

第8章 Java服务器页面:介绍 158

8.1 JSP页面的特性 160

8.1.1 服务器端Java资源的高效利用 160

8.1.2 Web开发、部署和维护 160

8.1.3 可重用的组件 161

8.1.4 分离业务逻辑和表示 161

8.1.5 大型开发团体和广泛的支持 161

8.1.6 平台无关性 161

8.1.7 使用标签的下一代页面开发 161

8.2 JSP页面的各个组成部分 161

8.2.1 JSP指令 162

8.2.2 JSP标签 162

8.2.3 脚本元素 163

8.3 开发和部署JSP页面 163

8.3.1 编写JSP页面 163

8.3.2 JSP 1.1 页面范例 166

8.4 JSP结构 169

8.4.1 简单的应用 169

8.4.2 成熟的结构:重定向请求 172

8.4.3 模型-视图-控制器设计 175

8.5 结论:JSP页面是企业Java解决方案中很重要的组成部分 179

8.5.1 JSP页面:超越servlet的优势 180

8.5.2 处理现有的servlet 180

第9章 Java服务器页面:使用标签库进行实际开发 181

9.1 JSP语法 181

9.1.1 JSP注释 181

9.1.2 HTML注释 181

9.1.3 隐藏注释 182

9.1.4 JSP指令 182

9.1.5 JSP脚本元素 187

9.1.6 JSP动作 188

9.1.7 对象作用域 198

9.1.8 隐含对象 198

9.1.9 错误处理 199

9.2 标签库 199

9.2.1 声明标签库 199

9.2.2 标签处理器 200

9.2.3 创建公司横幅定制标签 202

9.3 小结 204

第10章 为应用构建用户界面 205

10.1 模型-视图-控制器示例 205

10.1.1 优势 206

10.1.2 缺点 207

10.2 Struts框架 207

10.2.1 安装Struts 207

10.2.2 必备软件 208

10.2.3 Struts框架概括 208

10.2.4 JavaBeans和作用域 213

10.2.5 构建模型组件 214

10.2.6 构建视图组件 215

10.2.7 构建控制器组件 223

10.2.8 访问关系数据库 230

10.3 小结 233

第11章 企业JavaBeans:介绍 234

11.1 企业JavaBeans概述 234

11.2 分布式程序设计概括 236

11.3 EJB框架 236

11.4 会话和实体bean 238

11.4.1 会话bean 238

11.4.2 实体bean 238

11.4.3 使用会话bean封装实体bean 239

11.4.4 bean相关性 239

11.5 bean的属性 239

11.5.1 无状态bean 239

11.5.2 有状态bean 240

11.6 bean的各个组成部分 240

11.6.1 Home接口 240

11.6.2 EJBObject接口 240

11.6.3 部署描述符 240

11.6.4 SessionContext和EntityContext对象 241

11.6.5 相关和细粒度对象 241

11.7 容器管理持久性和bean管理持久性 241

11.7.1 容器管理持久性 241

11.7.2 bean管理持久性 242

11.8 企业JavaBeans的生命周期 242

11.9 Java消息服务和消息驱动bean 243

11.9.1 Java消息服务 243

11.9.2 消息驱动bean 244

11.10 分布式程序设计服务 246

11.10.1 命名和注册 246

11.10.2 远程方法调用 246

11.10.3 协议 246

11.11 公共对象请求代理体系结构和远程方法调用 246

11.11.1 CORBA 247

11.11.2 Java/RMI 247

11.12 事务和事务管理 248

11.12.1 分布式事务 248

11.12.2 多事务 249

11.12.3 Java事务服务 249

11.12.4 Java事务API 249

11.12.5 实体bean方法和事务属性 249

11.12.6 会话bean方法和事务属性 249

11.13 安全性 250

11.14 部署 250

11.14.1 部署描述符 250

11.14.2 程序包层次图 250

11.15 EJB开发中的个人角色 251

11.15.1 实体bean开发人员 251

11.15.2 bean编写人员 251

11.15.3 应用组装人员 252

11.15.4 bean部署人员 252

11.16 合作角色 252

11.16.1 组件提供者 252

11.16.2 应用服务器提供者 252

11.16.3 EJB容器提供者 253

11.17 小结 253

第12章 企业JavaBeans:构建会话bean 254

12.1 创建会话bean 254

12.1.1 无状态和有状态会话bean 254

12.1.2 定义会话bean类 255

12.1.3 会话bean和继承 255

12.1.4 会话bean接口 255

12.1.5 会话bean类方法 260

12.1.6 范例会话bean组件代码 261

12.1.7 存根、层次和对象范例代码 267

12.2 打包和部署会话bean 294

12.2.1 JAR内容 294

12.2.2 部署 296

12.3 修改bean代码 296

12.4 从客户端查找会话bean 296

12.4.1 InitialContext 296

12.4.2 类型限制 297

12.4.3 查找对象和接口:Java命名和目录接口 297

12.4.4 使用EJBHome创建实例 298

12.5 从客户端调用会话bean 298

12.5.1 为调用EJB编写客户端 298

12.5.2 不同类型的客户端 298

12.6 小结 300

第13章 企业JavaBeans:构建实体bean 301

13.1 定义实体bean 301

13.1.1 实体bean的用途 302

13.1.2 实体bean的生命周期状态 302

13.2 容器和bean管理持久性 303

13.2.1 bean管理持久性 304

13.2.2 容器管理持久性 304

13.3 CMP实体bean的剖析 305

13.3.1 bean编写人员创建的组件 305

13.3.2 容器创建的对象 307

13.4 开发实体bean 308

13.4.1 第一步--向数据库安装数据源 308

13.4.2 第二步--开发主关键字类 309

13.4.3 第三步--开发实体bean类 309

13.4.4 第四步--定义主接口或本地主接口 312

13.4.5 第五步--定义本地或远程接口 312

13.4.6 第六步--定义部署描述符 313

13.4.7 第七步--使用容器提供的工具进行部署 314

13.4.8 第八步--创建客户端应用程序 314

13.5 深入了解实体bean的开发 314

13.5.1 主关键字 315

13.5.2 映射到单独的字段 315

13.5.3 EntityBean类和生命周期事件方法 316

13.5.4 主接口和create()方法 318

13.5.5 主接口和finder()方法 319

13.5.6 主接口和remove()方法 320

13.5.7 主接口和getEJBMetaData()方法 320

13.5.8 远程接口 320

13.5.9 本地接口 320

13.6 EJB客户端 321

13.6.1 远程客户端 321

13.6.2 本地客户端 322

13.7 使用GUI工具配置、打包和部署实体bean 322

13.7.1 集成、设置和打包实体bean 322

13.7.2 部署实体bean Jar文件 326

13.8 小结 326

第14章 使用电子邮件传递信息:JavaMail 327

14.1 一般的电子邮件通信 327

14.2 JavaMail的任务 328

14.3 提供者注册表 329

14.4 JavaMail结构和主要的类 330

14.4.1 Java活动框架 331

14.4.2 javax.mail.Session 331

14.4.3 javax.mail.Store 332

14.4.4 javax.mail.Folder 333

14.4.5 javax.mail.search 334

14.4.6 javax.mail.Address 336

14.4.7 javax.mail.internet.InternetAddress 336

14.4.8 javax.mail.Message 336

14.4.9 javax.mail.internet.MimeMessage 337

14.4.10 javax.mail.Transport 341

14.5 发送和接收消息 341

14.5.1 发送因特网消息 341

14.5.2 接收因特网消息 342

14.5.3 处理多部分消息 343

14.5.4 发送MimeMultipart消息 343

14.5.5 接收MimeMultipart消息 344

14.5.6 发送消息中的二进制数据 345

14.5.7 接收消息中的二进制数据 347

14.6 在Java服务器页面中使用JavaMail 348

14.6.1 简要指令 349

14.6.2 详细指令 352

14.6.3 代码解决方案 357

14.7 小结 359

第15章 应用间的消息通信:Java消息服务 360

15.1 消息通信基础 360

15.1.1 消息 360

15.1.2 中间件 360

15.1.3 面向消息的中间体 361

15.1.4 通信模式 361

15.2 JMS的位置 362

15.2.1 应用中的JMS 362

15.2.2 JMS中的消息模型 363

15.2.3 处理异常 364

15.2.4 会话管理 365

15.2.5 消息 365

15.3 JMS组件 367

15.3.1 管理对象 367

15.3.2 接口类 367

15.4 生成和销毁消息 368

15.4.1 MessageProducer 368

15.4.2 MessageConsumer 368

15.4.3 MessageListener 369

15.4.4 MessageSelector 369

15.5 JMS范例 369

15.5.1 简单的点对点范例 369

15.5.2 简单的发布/订阅范例 372

15.5.3 点对点浏览范例 375

15.5.4 MessageListener范例 378

15.5.5 MessageSelector范例 382

15.5.6 队列和主题目的地维护范例 386

15.6 JMS实现和部署问题 390

15.6.1 还有其他什么需要实现的部分 390

15.6.2 部署 390

15.7 小结 391

第16章 使用XML进行数据交换 392

16.1 什么是XML 392

16.2 XML文档的结构 394

16.2.1 序言 394

16.2.2 实例部分 394

16.2.3 元素 394

16.2.4 标签 395

16.2.5 空元素 395

16.2.6 属性 395

16.2.7 实体 396

16.2.8 转义字符 397

16.3 未解析的数据 398

16.3.1 注释 398

16.3.2 CDATA 398

16.4 处理指令 399

16.4.1 字符引用 399

16.4.2 字符范围 399

16.4.3 空格 399

16.5 文档类型定义 400

16.6 XML模式 403

16.6.1 XML模式与DTD的比较 403

16.6.2 模式约束 404

16.6.3 XML模式的特性 404

16.6.4 模式词汇 405

16.6.5 模式范例 405

16.6.6 模式的未来 410

16.7 XML解析器 410

16.8 文档对象模型 411

16.8.1 DOM结构模型 411

16.8.2 内存管理 412

16.8.3 命名规范 413

16.8.4 DOM对象 413

16.9 XML简单API 413

16.10 XML输出 416

16.11 XSL 417

16.11.1 XSL转换 417

16.11.2 XSL格式对象 418

16.11.3 XML路径语言 418

16.11.4 XSLT命名空间 418

16.12 样式表结构 419

16.12.1 stylesheet元素 419

16.12.2 模板元素 422

16.13 应用样式表 422

16.14 XML链接语言 422

16.15 XML安全 424

16.15.1 XML关键管理规范 424

16.15.2 安全评估标记语言 424

16.15.3 XKMS和SAML的关系 424

16.16 小结 425

第17章 验证应用 426

17.1 Java和测试 426

17.2 用调试进行质量控制 428

17.3 调试技术 429

17.3.1 不靠主观判断进行测试 429

17.3.2 散散心,然后重新部署 429

17.3.3 如何使调试工作更加科学 429

17.3.4 语法错误 432

17.4 校正错误 432

17.4.1 改善可靠性 433

17.4.2 优秀调试器的重要性 434

17.5 测试和开发阶段 434

17.5.1 Alpha阶段 435

17.5.2 Beta阶段 435

17.5.3 FCS 435

17.6 测试方法和技术 436

17.6.1 单元测试 436

17.6.2 压力测试和海量数据生成 436

17.6.3 代码复杂性分析 436

17.6.4 基准/性能测试 436

17.6.5 稳定性测试 436

17.6.6 衰减测试 436

17.6.7 黑盒测试 436

17.6.8 白盒测试 436

17.6.9 可用性测试 436

17.6.10 跨平台测试 437

17.6.11 安全性测试 437

17.6.12 安装测试 437

17.6.13 中断测试 437

17.6.14 并行处理 437

17.6.15 测试覆盖分析 437

17.7 Web站点测试工具和站点管理工具 437

17.7.1 负载和性能测试工具 438

17.7.2 Java测试工具 445

17.7.3 链接检查工具 445

17.7.4 HTML确认器 446

17.7.5 Web功能/衰减测试工具 447

17.7.6 Web站点安全性测试工具 448

17.7.7 外部站点监控服务 449

17.7.8 Web站点管理工具 449

17.7.9 其他Web测试工具 450

17.8 小结 450

第18章 执行应用 452

18.1 概述 452

18.2 编写高性能应用 453

18.2.1 规模因素 453

18.2.2 性能规模 453

18.2.3 组件设计 454

18.2.4 环境因素 455

18.2.5 缩小网络流量 455

18.2.6 编码指南 455

18.2.7 池管理 456

18.2.8 J2EE组件性能 459

18.2.9 设计和性能 460

18.3 调整性能的准备工作 461

18.3.1 范围、目标和方法 461

18.3.2 负载测试 461

18.3.3 Profiler 462

18.4 诊断和解决问题指南 463

18.4.1 容易解决的问题 463

18.4.2 配置策略 463

18.4.3 改善applet下载速度 464

18.4.4 把图像打包成一个类文件 464

18.4.5 使用JAR文件 464

18.4.6 线程池 464

18.5 影响服务器性能的因素 465

18.5.1 中央处理单元 465

18.5.2 易失存储(内存) 465

18.5.3 永久存储(磁盘) 465

18.5.4 数据库性能 465

18.6 数据库监控和调整工具 467

18.6.1 ShowPlan(SQL Serever)和Explain Plan(Oracle) 467

18.6.2 INDEX调整向导 467

18.6.3 Oracle调整包 467

18.6.4 Oracle SQL_TRACE 467

18.6.5 Optimizeit 467

18.7 小结 467

第19章 部署应用 469

19.1 Java的“编写一次,随处运行”承诺 469

19.2 组装过程 469

19.2.1 组装概述 469

19.2.2 组装应用和组件 470

19.3 部署过程 482

19.3.1 使用J2EE引用实现进行部署 482

19.3.2 使用SilverStream应用服务器进行部署 486

19.3.3 使用BEA WebLogic服务器进行部署 491

19.4 小结 518

附录A 示例应用的文档 519

附录B 相关工具 531

附录C 快速参考资料 564