《Java服务器高级编程》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(英)Danny Ayers等著;曾国平等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2001
  • ISBN:7111088573
  • 页数:895 页
图书介绍:

前言页 1

译者序 1

作者简介 1

前言 1

第1章 Web应用开发 1

1.1 Web结构 1

1.1.1 Web浏览器 2

1.1.2 Web服务器 3

1.2 n-层应用 4

1.3 Web应用的体系结构 5

1.3.1 收集数据 6

1.3.2 向Web服务器发送请求 6

1.3.3 执行服务器脚本 7

1.3.4 将结果返回浏览器 8

1.4 开发服务器应用 8

1.4.1 服务器端的技术 8

1.4.2 Java的特点 10

1.5 小结 11

第2章 servlet简介 12

2.1 servlet容器 12

2.1.1 servletAPI 14

2.1.2 servlet的构造 18

2.2 简化HTML的生成过程 21

2.3 关于性能的几点注释 23

2.4 处理表单数据和发送邮件 23

2.4.1 建立HTML表单 24

2.4.2 编写servlet 25

2.5 小结 29

第3章 错误处理和事件记录 30

3.1 导演 30

3.1.1 运行时刻和编译时刻错误 30

3.1.2 在Java中处理异常 31

3.1.3 在servlet中处理异常 33

3.1.4 发送HTTP错误 38

3.1.5 记录事件 39

3.1.6 使用servlet异常 40

3.2 小结 41

第4章 会话与会话跟踪 42

4.1 会话 42

4.2.2 隐藏表单字段 43

4.2.1 重写URL 43

4.2 使用传统方法进行会话跟踪 43

4.2.3 cookies 44

4.3 使用JavaServletAPI进行会话跟踪 44

4.3.1 获得一个会话对象 45

4.3.2 读写会话数据 45

4.3.3 使会话对象失效 46

4.3.4 一个使用会话的简单购物车 46

4.3.5 方法的选择 50

4.4 小结 50

第5章 使用servlet环境 51

5.1 “聊天”应用概述 51

5.2 servlet环境的配置 55

5.2.1 Servlet环境的唯一URI路径前缀 55

5.2.3 优点 56

5.2.2 servlet环境的servlet名称和URI路径映射 56

5.3 servlet环境状态 58

5.3.1 初始化Servlet环境状态 58

5.3.2 访问环境状态 59

5.4 改变环境状态 66

5.5 运行聊天应用 68

5.5.1 配置servlet引擎 68

5.5.2 添加聊天室 70

5.5.3 聊天 70

5.6 小结 71

第6章 生成动态内容 73

6.1 MIME类型 73

6.1.1 Image/jpeg 73

6.2 返回二进制数据 74

6.1.2 Image/gif 74

6.1.3 Image/png 74

6.3 创建GIF图像 75

6.3.1 创建一个不显示的图像 75

6.3.2 对图像进行编码 76

6.4 统计图servlet 77

6.4.1 实用类 77

6.4.2 servlet本身 80

6.4.3 图形环境 81

6.4.4 创建颜色 82

6.4.5 绘制饼形图 84

6.4.6 绘制条形图 85

6.4.7 创建一个嵌入图像的HTML页面 87

6.4.8 反向链接到页面 90

6.5 小结 91

第7章 JavaServer Pages介绍 92

7.1 体系结构概述 92

7.2 一个简单的JavaServer Page 93

7.2.1 JavaServer Page的编程元素 94

7.2.2 JSP伪指令 95

7.2.3 JSP声明 96

7.2.4 JSP scriptlet 96

7.2.5 JSP表达式 98

7.2.6 编写JSP页面的代码 98

7.3 使用具有JSP的JavaBean组件 98

7.4 文件浏览器 103

7.5 浏览和查询数据库 105

7.5.1 询问正确的问题 106

7.5.2 查询数据库 107

7.5.3 浏览数据库 112

7.5.4 混合servlet和JSP 116

7.6 用applet和bean增强用户界面 117

7.7 小结 117

第8章 连接数据库 118

8.1 向servlet增加数据 118

8.1.1 Java数据库连接性 118

8.1.2 影片数据库 123

8.2 用预备式语句优化性能 131

8.3 合并Connection对象 135

8.4 小结 140

第9章 连接池 142

9.1 池化资源 142

9.2 传统的连接池 143

9.2.1 ConnectionPool类 144

9.2.2 PoolManager类 150

9.2.3 例子客户 157

9.3 JDBC2.0Standard Extension连接池 158

9.3.1 主要概念 159

9.3.2 带有连接池的DataSource 160

9.4 将我们的连接池修改得像JDBC2.0SE 162

9.4.1 ConnectionWrapper类 162

9.4.2 ConnectionPool的修改 163

9.4.3 例子客户 164

9.5 小结 165

第10章 servlet链接 166

10.1 使用别名链接servlet 166

10.1.1 配置servlet引擎 167

10.1.2 使用别名的servlet链接 170

10.2 使用MIME类型过滤servlet结果 174

10.2.1 配置Web服务器 174

10.2.2 使用MIME-Typr过滤内容 174

10.3 小结 177

第11章 servlet通信 178

11.1 从applet中调用servlet 178

11.2 RequestDispatcher接口 184

11.3 小结 186

第12章 利用servlet进行分布式计算 188

12.1 远端方法调用 188

12.1.1 远端对象 189

12.1.3 RMI注册表 191

12.1.4 Java客户 191

12.1.2 stub和skeleton 191

12.1.5 实现RMI的步骤总结 192

12.2 Java2的安全机制 192

12.3 建立一个远端对象 193

12.3.1 创建远端接口 194

12.3.2 实现远端接口 194

12.3.3 编译并运行代码 195

12.3.4 创建RMI客户应用 195

12.4 建立RMI客户的servlet 196

12.4.1 安装安全管理器 196

12.4.2 获得远端接口的引用 196

12.4.3 调用远端方法 197

12.5 小结 198

13.1 安装JavaMail 199

第13章 JavaMail和servlet 199

13.2 提供者注册表 200

13.3 使用JavaMail 200

13.3.1 JavaMail会话 201

13.3.2 构造一个报文 202

13.3.3 传输服务 203

13.4 SendMail servlet 204

13.5 存储转发服务 206

13.6 WebMail servle 208

13.7 小结 213

第14章 XML介绍 214

14.1 什么是XML 214

14.1.1 可扩展性 215

14.2 XML像什么 216

14.1.3 可确认性 216

14.1.2 可结构化 216

14.3 用Java进行分析 217

14.4 有效的XML文档 220

14.5 DTD像什么 221

14.5.1 名称 222

14.5.2 数据类型 222

14.5.3 注释 223

14.5.4 包含/忽略 223

14.5.5 数据处理指令 224

14.5.6 码元声明 224

14.5.7 属性字声明 226

14.5.8 实体声明 226

14.5.9 符号声明 228

14.6 对有效XML进行分析 229

14.7 关于分析的更多内容 231

14.8 SAX 232

14.9 DOM 236

14.10 Pizza servlet 238

14.11 小结 249

14.12 XML的资源 250

第15章 站点Weeds of EI Limon2 253

15.1 站点介绍 253

15.2 工作原理 256

15.3 有友好的网络 258

15.4 工具 259

15.5 XML、SQL和Java对象 259

15.5.1 XML文件 259

15.5.2 XML到SQL的映射 262

15.6 Weeds类 268

15.6.1 将关系数据库映射到对象 270

15.6.2 创建并装入数据库 273

15.7 URL重写和文件的布局 275

15.7.1 Web浏览器中的网页 276

15.7.2 服务器上实际有些什么 276

15.8 JSP和JavaBean 278

15.8.1 Index.jsp和Common.jsp 280

15.8.2 Weed.jsp 281

15.8.3 Error.jsp 283

15.9 bean 284

15.10 从数据库中提取图像 287

15.10.1 ViweWeed类 287

15.10.2 Insertlmages类 288

15.11 小结 289

第16章 错误跟踪器事例研究 290

16.1 工程介绍 290

16.2 开发过程的选择 291

16.3 合理统一过程 291

16.3.1 开始阶段 292

16.3.2 详细描述阶段 292

16.3.3 构建阶段 293

16.3.4 转移阶段 294

16.3.5 RUP内的活动 294

16.4 错误跟踪器的开始阶段 295

16.5 下一步工作 301

17.1.2 低精度的用户界面原型设计 303

17.1.1 原型设计 303

17.1 详细描述 303

第17章 错误跟踪器事例研究:详细描述、构建和转移阶段 303

17.1.3 技术选择--信息输出 304

17.1.4 技术选择--对象的分布 306

17.1.5 技术选择--报文处理 308

17.1.6 定义应用的体系结构 309

17.1.7 充实对象模型 311

17.2 质量工程 318

17.3 构建 321

17.3.1 用IDL定义组件 325

17.3.2 构建业务模型组件 326

17.3.3 业务模型对象的定义及持续性 328

17.3.4 建立映射组件 331

17.3.5 构建业务逻辑组件 335

17.3.6 构建用户界面组件 340

17.3.7 构建错误跟踪器的servlet 342

17.3.8 建立错误跟踪器 351

17.4 转移阶段 351

17.4.1 配置运行时刻选项 351

17.4.2 配置和建立数据库 351

17.4.3 运行错误跟踪器 352

17.4.4 运行Web客户 355

17.5 小结 356

第18章 从CGI转移到servlet 357

18.1 概述 357

18.2 获得环境变量 357

18.3 使用cookie 359

18.3.1 用Java来处理cookies 360

18.3.2 举例--用cookies创建一个购物车 361

18.4 正则表达式 366

18.5 小结 372

第19章 国际化Web站点 374

19.1 字符集 374

19.2 字符编码 374

19.3 在Java核心API中支持的字符编码 375

19.4 内容协商 376

19.5 Servlet API中支持的字符编码 381

19.5.1 国际化servlet 381

19.5.2 返回文本文件的本 386

19.6 小结 393

第20章 智能servlet 395

20.1 混合的网络配置 395

20.3 混合的处理和操作系统平台 396

20.2 混合的数据库平台 396

20.3.1 servlet的解决方案:one-to-one 398

20.3.2 servlet链接的解决方案 399

20.3.3 智能servlet解决方案 399

20.4 请求的处理过程 399

20.5 进程授权 402

20.6 在企业中实现“智能servlet” 403

20.6.1 servlet作为任务管理者 403

20.6.2 授权请求的力量 405

20.6.3 将进程与servlet分离 405

20.6.4 尽可能地抽象servlet和ancester类 405

20.7 智能servlet的扩展性 405

20.7.1 用Hashtable排除方法参数 405

20.7.3 使用预先做好的HTML文件进行动态更改 406

20.7.2 不需重新编译servlet而添加功能 406

20.8 小结 409

第21章 使用JNDI进行服务器编程 411

21.1 命名和目录服务 411

21.1.1 网络就是计算机 411

21.1.2 命名服务 412

21.1.3 目录服务 412

21.2 为什么使用LDAP 413

21.3 介绍JNDI 415

21.4 使用JNDI 417

21.4.1 安装JNDI 417

21.4.2 JNDI程序包 418

21.5 JNDI服务提供者和AKA JNDI驱动程序 418

21.5.2 开发自己的服务提供者 419

21.5.1 如何得到JNDI服务提供者 419

21.6 基本的LDAP操作 420

21.6.1 标准的LDAP操作 420

21.6.2 用JNDI连接到LDAP服务器 420

21.6.3 绑定 421

21.6.4 检索LDAP服务器 423

21.6.5 确定LDAP的检索范围 423

21.6.6 检索操作 424

21.7 LDAP服务器的修改 430

21.7.1 增加条目 430

21.7.2 修改条目 433

21.7.3 删除条目 435

21.8 小结 436

22.1 在LDAP里存储和取回Java对象 437

第22章 使用LDAP和Java 437

22.2 分散存储和集中存储 439

22.3 使用JNDI/LDAP改进顾客服务 440

22.3.1 介绍基本对象 441

22.3.2 获得数据 441

22.3.3 屏幕镜头 442

22.3.4 LDAP的目录信息树 444

22.3.5 顾客服务代码 447

22.4 小结 458

第23章 Enterprise JavaBeans 459

23.1 Web需要可移植性 459

23.1.1 Java和Web 459

23.1.2 服务端移植性 460

23.1.3 用于Web应用的服务 462

23.1.4 Enterprise JavaBeans和WebOS 465

23.2 EJB规范 465

23.2.1 在EJB规范中的角色 466

23.2.2 indirection观点 468

23.2.3 三种规约定义一个容器 473

23.3 会话bean 474

23.3.1 引用和句柄是活动的 476

23.3.2 会话bean的生命周期 477

23.3.3 事务性和非事务性方法 478

23.3.4 钝化和激活 479

23.4 实体bean 480

23.4.1 实休bean的持续性 480

23.4.2 实体bean的身份 483

23.4.3 实现主关键字 484

23.4.4 搜索器 485

23.4.5 激尖和钝化 486

23.4.6 实体bean的生命周期 487

23.5 事务管理 489

23.6 调度描述符 491

23.7 小结 495

第24章 索引和检索 496

24.1 spider 496

24.1.1 信息搜集 497

24.1.2 附加信息 498

24.1.3 分析器 498

24.1.4 数据库 502

24.2 GUI 511

24.3 开始爬行 518

24.4 我,机器人 520

24.5 客户 520

24.6 优化和扩展 526

24.7 链接 527

第25章 未来服务器Jini和JavaSDpace 528

25.1 警告:即将发生的变化 528

25.2 展望未来:Jini事例研究 528

25.2.1 在线贷款许可Web站点 528

25.2.2 仔细考虑的问题 530

25.3 驱动分布式设备 530

25.3.1 分布式计算 530

25.3.2 自然不协调性 531

25.4.1 集中式控制与动态分组分裂 532

25.4 计算上的革命 532

25.4.2 Jini是我们共同工作的方式! 533

25.5 剥离Jini层 538

25.5.1 发现和加入协议 538

25.5.2 查找服务--代理 541

25.5.3 Sun提供的实现 552

25.6 投入Jini的海洋 557

25.6.1 为探测准备系统 558

25.6.2 接触REGGIE--一个参考查找服务 560

25.6.3 其他基本的Jini部分 566

25.6.4 编写三个Jini服务的代码 567

25.6.5 编写一个Jini客户的代码 575

25.6.6 测试自己的djinn 577

25.6.7 随着Jini技术一同前进 579

第26章 同JavaDSpace一起工作 581

26.1 什么是JavaSpace 581

26.1.1 JavaSpace是Java接口 581

26.1.2 JavaSpace是Jini服务 582

26.1.3 JavaSpace像查找服务 582

26.1.4 JavaSpace是真正的对象数据库 583

26.1.5 JavaSpace是你的MOM 583

26.1.6 JavaSpace是steroid上的一种排队服务 585

26.1.7 看看飘在天空中的云 585

26.2 个人的JavaSpace构造集合 585

26.2.1 和你需要的空间一样多 586

26.2.2 JavaSpace里的条目 586

26.2.3 weite0方法 586

26.2.5 take0方法 587

26.2.4 read0方法 587

26.2.6 通知的注册:Jini分布式事件 588

26.2.7 条目提交的优化 589

26.2.8 用JavaSpace实现工作流程 590

26.2.9 将并行性加入到JavaSpace系统中 591

26.3 将JavaSpace添加到我们的事例研究中 592

26.3.1 系统中的服务 592

26.3.2 系统中的JavaSpace 593

26.3.3 系统的示意图 594

26.3.4 精炼我们的设计 595

26.3.5 准备实现 599

26.3.6 JavaSpace小结 600

27.2 本地优化 601

27.3 附加模块 601

27.1 模拟业务逻辑 601

第27章 编写基于Jini的站点的代码 601

27.4 编写定制条目 602

27.4.1 UserEntry 602

27.4.2 UserEntryBean 603

27.5 编写ServerNode 604

27.6 编写JSpaceServlet 608

27.7 编写服务节点 614

27.7.1 NameVerifierNode 614

27.7.2 CreditCheckerNode 616

27.7.3 Human VerificationNode 618

27.8 编写测试工具 621

27.8.1 DataPut--一个空间写入器 622

27.8.2 流量生成器 624

27.8.3 DumpSpace--一个空间转储器 625

27.8.4 编译代码 627

27.9 创建JavaSpace 628

27.9.1 mahalo--Sum的事务服务 628

27.9.2 outrigger--Sun的JavaSpace服务 628

27.9.3 演奏JavaSpace交响乐 629

27.10 设置系统 630

27.10.1 在三个机器组成的网络上的实现步骤 630

27.10.2 一步一步的启动过程 632

27.10.3 测验我们的分布式系统 634

27.10.4 我们已经成功地完成了的工作 635

附录A HTTP 636

附录B Java对象流及串行化 652

附录C 密码术和servlet 669

附录D LogWriter类 699

附录E UML符号 701

附录F JServ的配置 705

附录G ServletRunner和Java Web Server的配置 737

附录H JRun的配置 742

附录J JSDK API参考 748

附录K JavaServer Pages API参考 760

附录L JNDI API参考 765

附录M 核心JavaMail/JAF API参考 803

附录N 核心Jini API参考 832

附录O JavaSpaces API参考 852

附录P Enterprise JavaBeans API参考 854

附录Q JDBC API参考 862

附录R 支持与勘误表 890