《J2EE Web应用高级编程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:Greg Barish著;林琪,英宇译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7302058873
  • 页数:281 页
图书介绍:

第1章 可扩展和高性能Web应用 1

1.1 Web应用的出现 1

1.1.1 基本定义 1

1.1.2 Web的本质特性及其挑战 3

1.2 性能和可扩展性 4

1.2.1 性能 4

1.2.2 可扩展性 6

1.3 Internet媒体 6

1.3.1 更广泛的受众群体 7

1.3.2 交互性 7

1.3.3 动态性 8

1.3.4 总呈“开放”状态 8

1.3.5 集成性 9

1.3.6 缺乏完全控制 9

1.4 测量性能和可扩展性 10

1.4.1 测量性能 10

1.4.2 测量可扩展性 12

1.4.3 吞吐量和价格/性能比 15

1.5 可扩展性和性能提示 16

1.5.1 考虑端到端 16

1.5.2 可扩展性不等于性能 16

1.5.3 通过比较测量可扩展性 16

1.6 小结 17

第2章 Web应用体系结构 18

2.1 Web应用术语 18

2.2 应用需求 19

2.2.1 业务逻辑 19

2.2.2 数据管理 20

2.2.3 接口 20

2.3 Web需求 21

2.4 抽象Web应用体系结构 22

2.4.1 从客户到服务器:瘦客户和胖客户 22

2.4.2 持久性数据管理 24

2.5 N层应用体系结构 24

2.5.1 客户 24

2.5.2 网络 25

2.5.3 服务器 28

2.5.4 基于层的设计 29

2.5.5 多线程的应用服务器 31

2.5.6 有效中间件带来的问题 32

2.6 可扩展性和性能提示 33

2.6.1 不要对瘦客户期望过高 33

2.6.2 使用或建立多线程应用服务器 34

2.6.3 确定合适的粒度 35

2.7 小结 35

第3章 J2EE规范 37

3.1 规范概述 37

3.2 部署问题 40

3.2.1 包装 40

3.2.2 部署描述符文件 41

3.3 平台技术与服务 43

3.3.1 通过RMI-IIOP实现组件通信 43

3.3.2 使用Java事务API实现事务管理 45

3.3.3 实现资源查找的JNDI 46

3.4 J2EE和体系结构 48

3.5 小结 49

第4章 可扩展性和性能技术 50

4.1 缓存与复制 50

4.2 并行 55

4.3 冗余 58

4.4 异步 59

4.5 资源池 61

4.6 小结 67

第5章 HTTP客户/服务器通信 69

5.1 HTTP协议 69

5.2 部署模式 71

5.2.1 带有浏览器客户的应用 71

5.2.2 不带浏览器的应用 71

5.3 HTTP效率 72

5.4 HTTP详细内容 73

5.4.1 语义 73

5.4.2 HTTP请求 75

5.4.3 GET方法 75

5.4.4 POST方法 79

5.4.5 HTTP1.1缓存 80

5.4.6 连接管理 83

5.5 可扩展性和性能提示 85

5.5.1 理智地使用GET和POST 85

5.5.2 对于非浏览器客户考虑HTTP 85

5.5.3 提升HTTP响应缓存 85

5.5.4 支持持续连接 87

5.6 小结 87

第6章 请求处理 88

6.1 一般问题 89

6.2 特定问题 89

6.2.1 连接管理 91

6.2.2 数据编组 91

6.2.3 请求服务 92

6.2.4 缓存环境中的数据本地性 94

6.3 请求处理模式 94

6.3.1 同步通信 95

6.3.2 异步通信 95

6.3.3 可扩展性和性能问题 98

6.4 请求处理和J2EE 99

6.4.1 Web服务 99

6.4.2 利用Java servlet和JSP实现同步处理 100

6.4.3 使用Java消息服务实现异步处理 100

6.5 可扩展性和性能提示 101

6.5.1 建立异步解决方案 101

6.5.2 线程间的流数据 102

6.5.3 开发有效的远程接口 107

6.6 小结 110

第7章 基于Java servlet的会话管理 111

7.1 生成动态响应 111

7.1.1 公共网关接口 111

7.1.2 通过API扩展Web服务器 112

7.1.3 重定向Web服务器请求 112

7.2 使用serlet 113

7.2.1 servlet和servlet容器 113

7.2.2 与servlet交互 114

7.2.3 Web服务器与servlet容器集成 116

7.3 开发servlet 117

7.3.1 设计servlet接口 117

7.3.2 建立servlet的代码 118

7.4 servlet执行 121

7.4.1 servlet容器 121

7.4.2 servlet和多线程 122

7.5 servlet和会话管理 125

7.6 部署servlet 130

7.7 使用JSP开发servlet 132

7.7.1 JSP页面示例 132

7.7.2 JSP页面的结构 133

7.7.3 JSP如何工作 135

7.7.4 JSP指示 138

7.7.5 JSP到底是什么 139

7.8 可扩展性和性能提示 139

7.8.1 使用细粒度的串行化 139

7.8.2 使用基于硬件的负载平衡 140

7.8.3 使用servlet实现会话管理,而非业务逻辑 140

7.8.4 再三考虑JSP 141

7.9 小结 141

第8章 利用企业JavaBean构建应用服务器 143

8.1 应用服务器的需求 143

8.2 企业级JavaBean:J2EE解决方案 144

8.3 EJB的工作原理 145

8.4 EJB类型 146

8.5 应用示例 147

8.6 EJB设计 148

8.6.1 会话bean 148

8.6.2 实体bean 148

8.6.3 消息驱动bean 153

8.7 EJB实现 153

8.7.1 会话bean 153

8.7.2 实体bean 160

8.7.3 实体bean和EJB2.0 161

8.7.4 消息驱动bean 172

8.8 客户/EJB集成 175

8.9 可扩展性和性能提示 179

8.9.1 尽量用消息驱动bean而不是会话bean 179

8.9.2 使用无状态会话bean 180

8.9.3 尽量采用粗粒度的EJB方法 181

8.9.4 要么很好地使用BMP,要么干脆不用 183

8.9.5 了解您的开发商 184

8.10 小结 184

第9章 基于消息实现高效的企业应用集成 186

9.1 B2B的工作实例 186

9.2 Java消息服务 187

9.3 JMS概念 187

9.3.1 提供者 188

9.3.2 客户 188

9.3.3 消息 188

9.3.4 管理对象 190

9.4 JMS编程模型 190

9.4.1 特定于模型的管理对象接口 191

9.4.2 消息使用的同步性 191

9.5 JMS可靠性与性能 192

9.5.1 客户确认 192

9.5.2 消息持久保存 193

9.5.3 时间依赖性和JMS发布模型 193

9.6 一个JMSpub/sub应用示例 194

9.6.1 开发消息发布者 194

9.6.2 开发消息预约者 196

9.6.3 关于部署 199

9.7 可扩展性和性能提示 199

9.7.1 使用消息 199

9.7.2 理解JMS效率-可靠性的折衷 202

9.8 小结 202

第10章 高效的数据库设计 204

10.1 数据库技术和关系模型 205

10.2 逻辑数据库设计 206

10.3 物理数据库设计 207

10.3.1 表和行 208

10.3.2 约束 209

10.4 查询数据库 209

10.4.1 查询数据 209

10.4.2 嵌套查询 211

10.4.3 连接查询 211

10.5 其他重要的数据库对象 213

10.5.1 视图 213

10.5.2 存储过程 214

10.5.3 触发器 216

10.5.4 索引 217

10.5.5 序列 218

10.5.6 其他对象 219

10.6 查询处理 219

10.7 可扩展性和性能提示 222

10.7.1 理解如何使用数据库 222

10.7.2 理解何时使用数据库 223

10.7.3 理解如何访问数据 224

10.7.4 规范数据模型 225

10.7.5 有选择地实现模型的非规范化 229

10.7.6 使用存储过程 231

10.7.7 避免触发器及其他隐式执行 234

10.7.8 了解开发商 234

10.8 小结 235

第11章 使用JDBC和SQL高效查询数据库 236

11.1 使用JDBC的原因 236

11.2 JDBC概念和对象 236

11.2.1 相关JDBC对象及其关系 237

11.2.2 连接数据库 238

11.3 编写JDBC查询 238

11.3.1 处理语句 238

11.3.2 循环处理结果 239

11.3.3 执行单个更新 242

11.3.4 其他类型的更新:创建表和存储过程 242

11.4 更高级的问题 243

11.4.1 准备语句(prepared statement) 243

11.4.2 动态SQL 244

11.4.3 事务管理 245

11.4.4 双向结果循环 247

11.4.5 可更新结果 248

11.4.6 执行批更新 248

11.5 可扩展性和性能提示 249

11.5.1 在可能的情况下使用PreparedStatement 249

11.5.2 对一个远程数据库使用批更新 251

11.5.3 不要过分使用提交 252

11.5.4 使用多线程实现并行查询 253

11.6 小结 253

第12章 Web服务:Web应用的未来 254

12.1 Web服务的实际使用 255

12.2 Web服务到底是什么 255

12.3 Web服务技术 257

12.3.1 概述 257

12.3.2 综合 258

12.4 XML:自描述数据 259

12.4.1 DTD和模式语言 260

12.4.2 解析XML 261

12.4.3 与XML相关的技术 266

12.5 开发Web服务 266

12.6 使用WSDL描述Web服务 267

12.6.1 定义 267

12.6.2 示例 268

12.7 使用SOAP调用Web服务 270

12.7.1 SOAP如何工作 270

12.7.2 使用HTTP上的SOAP 271

12.8 利用UDDI注册Web服务 273

12.8.1 标准 274

12.8.2 UDDIAPI 274

12.9 重览全局 276

12.9.1 提供者角度 276

12.9.2 使用者角度 277

12.10 可扩展性和性能问题 277

12.10.1 远程方法的复制与负载平衡 277

12.10.2 XML解析性能 277

12.10.3 解析与查询XML 278

12.11 小结 280