第1章 可扩展和高性能Web应用
1. 1 Web应用的出现
1. 1. 1 基本定义
1. 1. 2 Web的本质特性及其挑战
1. 2 性能和可扩展性
1. 2. 1 性能
1. 2. 2 可扩展性
1. 3 Internet媒体
1. 3. 1 更广泛的受众群体
1. 3. 2 交互性
1. 3. 3 动态性
1. 3. 4 总呈"开放"状态
1. 3. 5 集成性
1. 3. 6 缺乏完全控制
1. 4 测量性能和可扩展性
1. 4. 1 测量性能
1. 4. 2 测量可扩展性
1. 4. 3 吞吐量和价格/性能比
1. 5 可扩展性和性能提示
1. 5. 1 考虑端到端
1. 5. 2 可扩展性不等于性能
1. 5. 3 通过比较测量可扩展性
1. 6 小结
第2章 Web应用体系结构
2. 1 Web应用术语
2. 2 应用需求
2. 2. 1 业务逻辑
2. 2. 2 数据管理
2. 2. 3 接口
2. 3 Web需求
2. 4 抽象Web应用体系结构
2. 4. 1 从客户到服务器:瘦客户和胖客户
2. 4. 2 持久性数据管理
2. 5 N层应用体系结构
2. 5. 1 客户
2. 5. 2 网络
2. 5. 3 服务器
2. 5. 4 基于层的设计
2. 5. 5 多线程的应用服务器
2. 5. 6 有效中间件带来的问题
2. 6 可扩展性和性能提示
2. 6. 1 不要对瘦客户期望过高
2. 6. 2 使用或建立多线程应用服务器
2. 6. 3 确定合适的粒度
2. 7 小结
第3章 J2EE规范
3. 1 规范概述
3. 2 部署问题
3. 2. 1 包装
3. 2. 2 部署描述符文件
3. 3 平台技术与服务
3. 3. 1 通过RMI-IIOP实现组件通信
3. 3. 2 使用Java事务API实现事务管理
3. 3. 3 实现资源查找的JNDI
3. 4 J2EE和体系结构
3. 5 小结
第4章 可扩展性和性能技术
4. 1 缓存与复制
4. 2 并行
4. 3 冗余
4. 4 异步
4. 5 资源池
4. 6 小结
第5章 HTTP客户用服务器通信
5. 1 HTTP协议
5. 2 部署模式
5. 2. 1 带有浏览器客户的应用
5. 2. 2 不带浏览器的应用
5. 3 HTTP效率
5. 4 HTTP详细内容
5. 4. 1 语义
5. 4. 2 HTTP请求
5. 4. 3 GET方法
5. 4. 4 POST方法
5. 4. 5 HTTP l. 1缓存
5. 4. 6 连接管理
5. 5 可扩展性和性能提示
5. 5. 1 理智地使用GET和POST
5. 5. 2 对于非浏览器客户考虑HTTP
5. 5. 3 提升HTTP响应缓存
5. 5. 4 支持持续连接
5. 6 小结
第6章 请求处理
6. 1 一般问题
6. 2 特定问题
6. 2. 1 连接管理
6. 2. 2 数据编组
6. 2. 3 请求服务
6. 2. 4 缓存环境中的数据本地性
6. 3 请求处理模式
6. 3. 1 同步通信
6. 3. 2 异步通信
6. 3. 3 可扩展性和性能问题
6. 4 请求处理和J2EE
6. 4. 1 web服务
6. 4. 2 利用Java servlet和JSP实现同步处理
6. 4. 3 使用Java消息服务实现异步处理
6. 5 可扩展性和性能提示
6. 5. 1 建立异步解决方案
6. 5. 2 线程间的流数据
6. 5. 3 开发有效的远程接口
6. 6 小结
第7章 基于Java servlet的会话管理
7. 1 生成动态响应
7. 1. 1 公共网关接口
7. 1. 2 通过API扩展Web服务器
7. 1. 3 重定向web服务器请求
7. 2 使用servlet
7. 2. 1 servlet和servlet容器
7. 2. 2 与servlet交互
7. 2. 3 Web服务器与servlet容器集成
7. 3 开发servlet
7. 3. 1 设计servlet接口
7. 3. 2 建立servlet的代码
7. 4 servlet执行
7. 4. 1 servlet容器
7. 4. 2 servlet和多线程
7. 5 servlet和会话管理
7. 6 部署servlet
7. 7 使用JSP开发servlet
7. 7. 1 JSP页面示例
7. 7. 2 JSP页面的结构
7. 7. 3 JSP如何工作
7. 7. 4 JSP指示
7. 7. 5 JSP到底是什么
7. 8 可扩展性和性能提示
7. 8. 1 使用细粒度的串行化
7. 8. 2 使用基于硬件的负载平衡
7. 8. 3 使用servlet实现会话管理, 而非业务逻辑
7. 8. 4 再三考虑JSP
7. 9 小结
第8章 利用企业JavaBean构建应用服务器
8. 1 应用服务器的需求
8. 2 企业级JavaBean:J2EE解决方案
8. 3 EJB的工作原理
8. 4 EJB类型
8. 5 应用示例
8. 6 EJB设计
8. 6. 1 会话bean
8. 6. 2 实体bean
8. 6. 3 消息驱动bean
8. 7 EJB实现
8. 7. 1 会话bean
8. 7. 2 实体bean
8. 7. 3 实体bean和EJB 2. 0
8. 7. 4 消息驱动bean
8. 8 客户/EJB集成
8. 9 可扩展性和性能提示
8. 9. 1 尽量用消息驱动bean而不是会话bean
8. 9. 2 使用无状态会话bean
8. 9. 3 尽量采用粗粒度的EJB方法
8. 9. 4 要么很好地使用BMP, 要么干脆不用
8. 9. 5 了解您的开发商
8. 10 小结
第9章 基于消息实现高效的企业应用集成
9. 1 B2B型的工作实例
9. 2 Java消息服务
9. 3 JMS概念
9. 3. 1 提供者
9. 3. 2 客户
9. 3. 3 消息
9. 3. 4 管理对象
9. 4 JMS编程模型
9. 4. 1 特定于模型的管理对象接口
9. 4. 2 消息使用的同步性
9. 5 JMS可靠性与性能
9. 5. 1 客户确认
9. 5. 2 消息持久保存
9. 5. 3 时间依赖性和JKS发布模型
9. 6 一个加JMS bub/sub应用示例
9. 6. 1 开发消息发布者
9. 6. 2 开发消息预约者
9. 6. 3 关于部署
9. 7 可扩展性和性能提示
9. 7. 1 使用消息
9. 7. 2 理解JMS效率-可靠性的折衷
9. 8 小结
第10章 高效的数据库设计
10. 1 数据库技术和关系模型
10. 2 逻辑数据库设计
10. 3 物理数据库设计
10. 3. 1 表和行
10. 3. 2 约束
10. 4 查询数据库
10. 4. 1 查询数据
10. 4. 2 嵌套查询
10. 4. 3 连接查询
10. 5 其他重要的数据库对象
10. 5. 1 视图
10. 5. 2 存储过程
10. 5. 3 触发器
10. 5. 4 索引
10. 5. 5 序列
10. 5. 6 其他对象
10. 6 查询处理
10. 7 可扩展性和性能提示
10. 7. 1 理解如何使用数据库
10. 7. 2 理解何时使用数据库
10. 7. 3 理解如何访问数据
10. 7. 4 规范数据模型
10. 7. 5 有选择地实现模型的非规范化
10. 7. 6 使用存储过程
10. 7. 7 避免触发器及其他隐式执行
10. 7. 8 了解开发商
10. 8 小结
第11章 使用JDBC和SQL高效查询数据库
11. 1 使用JDBC的原因
11. 2 JDBC概念和对象
11. 2. 1 相关JDBC对象及其关系
11. 2. 2 连接数据库
11. 3 编写JDBC查询
11. 3. 1 处理语句
11. 3. 2 循环处理结果
11. 3. 3 执行单个更新
11. 3. 4 其他类型的更新:创建表和存储过程
11. 4 更高级的问题
11. 4. 1 准备语句(prepared sbtement)
11. 4. 2 动态SQL
11. 4. 3 事务管理
11. 4. 4 双向结果循环
11. 4. 5 可更新结果
11. 4. 6 执行批更新
11. 5 可扩展性和性能提示
11. 5. 1 在可能的情况下使用PreparedSbtement
1I. 5. 2 对一个远程数据库使用批更新
11. 5. 3 不要过分使用提交
11. 5. 4 使用多线程实现并行查询
11. 6 小结
第12章 Web服务:Web应用的未来
12. 1 Web服务的实际使用
12. 2 Web服务到底是什么
12. 3 Web服务技术
12. 3. 1 概述
12. 3. 2 综合
12. 4 XML:自描述数据
12. 4. 1 DTD和模式语言
12. 4. 2 解析XML
12. 4. 3 与XML相关的技术
12. 5 开发Web服务
12. 6 使用WSDL描述web服务
12. 6. 1 定义
12. 6. 2 示例
12. 7 使用SOAP调用Web服务
12. 7. 1 SOAP如何工作
12. 7. 2 使用HTTP上的SOAP
12. 8 利用UDDI注册web服务
12. 8. 1 标准
12. 8. 2 UDDIAH
12. 9 重览全局
12. 9. 1 提供者角度
12. 9. 2 使用者角度
12. 10 可扩展性和性能问题
12. 10. 1 远程方法的复制与负载平衡
12. 10. 2 XML解析性能
12. 10. 3 解析与查询XML
12. 11 小结