第一部分 起步 1
第1章 体系结构 1
1.1 通信服务 3
1.1.1 通信服务:由Apache实现 4
1.1.2 通信服务:IIS 4
1.2 内容管理服务 5
1.2.1 Oracle Internet文件系统 5
1.2.2 Ultra Search 6
1.3 业务逻辑服务 6
1.3.1 Oracle Java业务组件 6
1.3.2 Oracle PL/SQL 7
1.3.3 Oracle表单服务 7
1.4 表示服务 7
1.4.1 Apache JServ 7
1.4.2 Oracle JSP 8
1.4.3 Oracle PL/SQL Server Page 8
1.4.4 Perl解释器 9
1.5 业务智能服务 9
1.5.1 Oracle报表服务 9
1.5.2 Oracle Discoverer 4i查看器 9
1.6 Portal服务 10
1.6.1 Oracle Portal 10
1.6.2 Portal-to-Go 10
1.6.3 9i动态服务 10
1.7 开发人员工具包 11
1.7.1 Oracle Java消息服务工具包 11
1.7.2 Oracle SQLJ 11
1.7.3 Oracle XML开发人员工具包 11
1.7.4 Oracle LDAP开发人员工具包 12
1.8 高速缓存服务 12
1.8.1 Oracle数据库高速缓存 12
1.8.2 Oracle Web高速缓存 14
1.9 系统服务 15
1.9.1 Oracle企业管理器 15
1.9.2 Oracle高级安全性 15
1.10 数据库服务 16
1.10.1 新的联机数据改进体系结构 17
1.10.2 细粒度的自动资源管理 17
1.10.3 性能 18
1.10.4 SQL和PL/SQL改进 18
1.11 小结 20
第2章 安装 21
2.1 安装之前的准备 22
2.2 安装9iAS 23
2.3 使用提示和陷阱 29
2.4 安装后:配置助手 30
2.5 卸载 31
2.6 小结 32
第3章 iAS配置和调整 33
3.1 调优和配置内容的快速介绍 34
3.2 起步 35
3.2.1 iAS从哪里获得其配置信息 36
3.2.2 掌握指令 36
3.2.3 Oracle对主配置文件的修改 36
3.2.4 iAS配置文件结构 37
3.3 端口 38
3.4 启动、停止和重新启动iAS 39
3.5 配置iAS 40
3.5.1 Oracle配置文件 41
3.5.2 服务器指令 41
3.5.3 容器级别指令 41
3.5.4 目录和文件级指令 42
3.5.5 指令合并 42
3.5.6 设置全局指令 43
3.5.7 根据所载入的模块包括指令 44
3.5.8 使用VirtualHost指令配置多站点 44
3.5.9 使用mod_rewrite 45
3.6 使用GUI对iAS配置进行编辑 45
3.6.1 图形化配置工具的优点和缺点 45
3.6.2 Comanche 46
3.7 管理和配置模块 47
3.7.1 配置PL/SQL模块 47
3.7.2 配置Java模块 48
3.8 配置iAS安全性 52
3.8.1 IP和域名限制 53
3.8.2 目录索引 53
3.8.3 .htaccess文件 54
3.8.4 基本认证和摘要认证 54
3.8.5 匿名 56
3.8.6 数据库认证 56
3.8.7 SSL 56
3.9 监视iAS Web服务器 58
3.9.1 监视错误文件和日志文件 58
3.9.2 监视进程和内存使用 59
3.9.3 监视mod_jserv 61
3.10 调优iAS 63
3.10.1 应避免使用的特性 64
3.10.2 调优日志记录 64
3.11 调优应用程序模块 64
3.11.1 调优CGI/Perl应用程序 64
3.11.2 调优PL/SQL应用程序和PSP应用程序 65
3.11.3 调优JSP/JServ应用程序 67
3.12 硬件和操作系统调优 69
3.12.1 检查硬件建议 69
3.12.2 在Solaris平台调优iAS 70
3.12.3 在Windows NT/2000上调优iAS 72
3.12.4 优化FTP下载 73
3.12.5 设置交换空间和分布负载 73
3.13 小结 73
第4章 24×7的正常运行时间 75
4.1 Oracle Real Application Clusters 79
4.1.1 Real Application Clusters的优点 82
4.1.2 Real Application Clusters的缺点 83
4.2 Transparent Application Failover 83
4.2.1 Transparent Application Failover的优点 83
4.2.2 Transparent Application Failover的缺点 84
4.3 Oracle Data Guard 84
4.3.1 Oracle Data Guard的优点 85
4.3.2 Oracle Data Guard的缺点 86
4.4 高级复制 86
4.4.1 高级复制的优点 88
4.4.2 高级复制的缺点 88
4.5 Internet应用程序服务器 88
4.5.1 Internet应用程序服务器的优点 89
4.5.2 Internet应用程序服务器的缺点 89
4.6 第三方解决方案 89
4.7 组合多个解决方案 89
4.8 自定义高可用性解决方案 90
4.9 小结 90
第5章 灾难规划 91
5.1 初始步骤及定义 92
5.2 灾难的分类 94
5.2.1 硬件 94
5.2.2 软件 94
5.2.3 人为错误 94
5.2.4 自然灾难 95
5.2.5 安全性攻击 95
5.3 对Oracle灾难规划进行分析时要解答的关键问题 95
5.3.1 一般性问题 95
5.3.2 体系结构问题 95
5.3.3 数据库问题 96
5.3.4 人为因素问题 98
5.4 完备的文档和最佳实践 98
5.5 将组件集中:生成实际的规划 103
5.6 全面经常的测试:分析、规划、测试及重复 108
5.7 最终用户和客户的参与、培训及准备 109
5.8 小结 110
第二部分 核心概念 111
第6章 HTML开发 111
6.1 编写HTML 113
6.1.1 使用浏览器 113
6.1.2 <NOSCRIPT> 115
6.1.3 <NOFRAMES> 115
6.1.4 <NOEMBED> 116
6.1.5 <NOLAYER> 116
6.2 为网站提供一个图标 117
6.3 为Web站点提供一个快捷链接 117
6.4 不通过页面结果查看HTML源文件 117
6.5 确定浏览器类型 118
6.6 使用元标记 118
6.7 使用THML表 120
6.7.1 格式化表中的数据 121
6.7.2 在一个表中添加图像 122
6.7.3 在表中显示“空白”表元 123
6.8 创建一个HTML表单 123
6.8.1 限制可以输入的数据 125
6.8.2 创建功能相当于按钮的图像 127
6.8.3 禁止在IE表单中使用回车键 129
6.9 使用URL和超链接 130
6.10 强制使用并行表单 134
6.11 层叠样式单 134
6.11.1 不同的浏览器对层叠样式单的支持 134
6.11.2 使用样式单 135
6.12 创建电子邮件的主题和文本 137
6.13 在一个HTML表单中发送电子邮件 137
6.14 缩排文本 137
6.15 在同一行中放置两个标题 138
6.16 理解帧 138
6.17 理解帧规则 139
6.18 创建一个类似窗口外观的帧 139
6.19 引用CGI脚本 139
6.20 记录网站访问者 140
6.21 小结 142
第7章 JavaScript开发 143
7.1 JavaScript和PL/SQL的比较 145
7.1.1 JavaScript是大小写敏感的 145
7.1.2 是否使用分号 146
7.1.3 定义变量 146
7.1.4 了解JavaScript关键字和预留字 146
7.1.5 查看JavaScript中的直接量 146
7.1.6 分隔并美化代码 147
7.1.7 JavaScript的注释 147
7.1.8 理解JavaScript操作符 147
7.1.9 控制结构 148
7.1.10 为对象建模还是对象模型 149
7.2 iAS的复杂性 150
7.3 处理浏览器不兼容问题 150
7.4 在动态代码中编写针对特定浏览器的代码 152
7.5 重新使用JavaScript代码 153
7.5.1 模拟Oracle Portal的JavaScript功能 154
7.5.2 编写一个PL/SQL JavaScript库包 154
7.5.3 使用一个JavaScript库代替内联的JavaScript代码 154
7.5.4 引用一个静态的JavaScript库 155
7.6 使用PL/SQL打包过程生成JavaScript 156
7.7 用户自定义的警告处理编程 156
7.8 在屏幕上显示属性 157
7.9 打开一个传递参数的新窗口 160
7.10 给JavaScript变量赋值 161
7.11 使用Submit按钮 162
7.12 验证表单域 163
7.13 使用PL/SQL代码和不同的浏览器 164
7.14 在JavaScript中定义一个二维数组 164
7.15 给JavaScript变量赋值 165
7.16 从一个选项列表调用一个PL/SQL过程 165
7.17 同时修改多个帧 166
7.18 解决拒绝访问的错误 167
7.19 以URL的一部分来传递空格字符 167
7.20 在无法使用警告函数的情况下调试onFocus事件 167
7.21 使用typeof来避免Object Expected错误 168
7.22 eval函数 169
7.23 动态函数参数 170
7.24 使用对象数组来模拟表和行 171
7.25 订阅JavaScript OnFocus新闻组 172
7.26 了解Visual JavaScript工具 172
7.26.1 讨论NetObjects Fusion 172
7.26.2 快速查看Netscape的Visual JavaScript 172
7.27 小结 172
第8章 XML 173
8.1 了解XML的基本规则 175
8.1.1 定义文档类型声明 175
8.1.2 定义“良好格式” 175
8.1.3 定义有效性 176
8.2 了解XML文档语法和结构 176
8.2.1 查看这个例子 176
8.2.2 了解DTD中的元素类型声明 176
8.2.3 查看DTD的属性列表声明 177
8.2.4 创建嫌疑犯DTD 178
8.2.5 创建嫌疑犯文档 180
8.3 了解XML Schema 1.0 180
8.3.1 了解名称空间 181
8.3.2 目标名称空间 181
8.3.3 一个简单的XML文档模式 182
8.3.4 内置的基本数据类型 184
8.3.5 complexType和simpleType 186
8.3.6 ref属性 186
8.3.7 sequence元素 187
8.4 了解常见的XML文档API 187
8.4.1 文档对象模型 187
8.4.2 XML的简单API 188
8.4.3 SAX回调 189
8.5 了解XPath 190
8.5.1 定义XPath语法 190
8.5.2 XPath函数 191
8.5.3 使用XPath来访问文档元素 192
8.6 使用XML样式单格式化并显示XML文档 195
8.6.1 定义XSL 196
8.6.2 使用XSL将XML数据显示成HTML格式 196
8.7 Oracle9i中的XML支持 198
8.8 Oracle9i和Oracle Text 198
8.9 了解Oracle XML分析器 199
8.9.1 安装Oracle XML分析器 199
8.9.2 在数据库之外运行Oracle XML分析器 199
8.9.3 在数据库内部运行Oracle XML分析器 208
8.10 了解Oracle XML类生成器 211
8.11 了解Oracle XML SQL工具 216
8.11.1 定义OracleXML类 217
8.11.2 定义OracleXMLStore类 218
8.11.3 定义OracleXMLQuery类 218
8.11.4 定义OracleXMLSave类 219
8.11.5 定义xmlgen PL/SQL包 220
8.11.6 定义DBMS_XMLQUERY包 222
8.11.7 定义DBMS_XMLSAVE包 224
8.12 Oracle XSQL servlet的功能 224
8.12.1 了解Oracle XSQL servlet依赖性和要求 226
8.12.2 生成一个动态XML文档 227
8.12.3 XSQL代码的转换 228
8.13 XML和高级队列 229
8.13.1 面向消息的中间件 229
8.13.2 高级队列特性 230
8.13.3 AQ术语和定义 230
8.13.4 order_transport_object 230
8.13.5 设置Oracle的AQ系统 232
8.14 将XML文件从消息队列中取出 239
8.15 分析XML 242
8.16 有规则地使用SOAP 247
8.17 小结 249
第9章 无线开发 251
9.1 支持Web的蜂窝电话和无线手持设备的数据库编程 252
9.1.1 WML的概念 253
9.1.2 WML元素图表 254
9.1.3 在卡片之间移动并传递参数 255
9.1.4 使用无线高速缓存 260
9.1.5 WML GUI编辑器 261
9.1.6 无线PL/SQL工具包 261
9.2 对支持无线的PDA进行编程 268
9.3 Oracle9iAS无线版本 269
9.3.1 Oracle9iAS WE工作原理 270
9.3.2 服务、适配器和转换器 272
9.3.3 简单的XSLT转换器 273
9.3.4 转换Oracle9iAS无线版本的已有内容 273
9.3.5 测试服务 279
9.3.6 在Apache中配置WML 280
9.4 小结 281
第10章 OAS到iAS的移植 283
10.1 为什么要升级 284
10.1.1 性能 284
10.1.2 稳定性 284
10.1.3 体系结构 285
10.1.4 普及性 285
10.1.5 支持 286
10.2 Apache、Apache还是Apache 286
10.3 还可以使用哪些功能 287
10.3.1 PL/SQL和Web工具包 287
10.3.2 Perl 287
10.3.3 LiveHTML 287
10.3.4 Java 288
10.4 不能使用哪些功能 288
10.4.1 来自文件的PL/SQL 288
10.4.2 传递的位置参数 288
10.4.3 Cweb模块 288
10.5 必须修改哪些功能 288
10.5.1 灵活的参数传递将获得一个新格式 289
10.5.2 文件上载和下载 289
10.5.3 事务服务 289
10.5.4 应用程序路径 289
10.6 iAS的新特性 290
10.6.1 不认证 290
10.6.2 可变的认证 291
10.6.3 新的CGI环境参数 291
10.6.4 登录——新的标准日志格式 291
10.6.5 PSP——PL/SQL服务器页面 291
10.7 在开始之前——我真正需要什么 292
10.7.1 数据库安装——8.1.7及更高版本 292
10.7.2 iAS产品的安装 292
10.7.3 表单服务器安装——企业版 292
10.8 iAS对部署的PL/SQL应用程序的影响 293
10.8.1 CGI环境变量差异 293
10.8.2 应用程序路径 293
10.8.3 SSL认证 293
10.9 小结 293
第11章 内置的PL/SQL包 295
11.1 使用DBMS_OBFUSCATION_TOOLKIT加密敏感数据 296
11.1.1 DesEncrypt和DesDecrypt 297
11.1.2 Des3Encrypt和Des3Decrypt 299
11.1.3 使用加密和解密的示例过程 299
11.2 使用UTL_HTTP浏览其他Web站点 303
11.2.1 UTL_HTTP函数 303
11.2.2 UTL_HTTP测试应用程序 304
11.2.3 异常 306
11.2.4 UTL_HTTP的其他应用 306
11.3 动态查询和使用DBMS_SQL、EXECUTE IMMEDIATE以及引用游标的PL/SQL代码 308
11.3.1 DBMS_SQL 309
11.3.2 EXECUTE IMMEDIATE 310
11.3.3 引用游标 311
11.4 使用UTL_SMTP从数据库中发送电子邮件 316
11.5 使用UTL_TCP包实现TCP/IP套接字的通信 318
11.5.1 UTL_TCP包 318
11.5.2 使用UTL_TCP读入Web页面 319
11.6 使用DBMS_JOB在数据库中调度作业 321
11.7 使用DBMS_PIPE在数据库中发送消息 322
11.8 使用DBMS_SESSION设置会话属性 326
11.9 使用DBMS_UTILITY.GET_TIME工具获得以毫秒为单位的时间数据 327
11.10 小结 328
第12章 安全 329
12.1 常见的安全概念和基本的安全方法 330
12.1.1 常见的安全问题 330
12.1.2 一些安全术语和方法 331
12.2 RDBMS安全 338
12.3 虚拟专用数据库 338
12.3.1 创建一个VPD 339
12.3.2 加密数据库列 344
12.3.3 使用DBMS_OBFUSCATION_TOOLKIT 344
12.3.4 精确的数据库审计 345
12.4 应用程序级别安全 347
12.4.1 保护Oracle9iAS指令 347
12.4.2 使用PL/SQL包:OWA_SEC 349
12.4.3 配置Web认证服务 350
12.4.4 用户安全因素 351
12.5 网络安全 352
12.5.1 Oracle Net和Oracle高级安全选项 352
12.5.2 SSL/HTTPS基础和设置 353
12.5.3 保护数字证书 355
12.5.4 使用Oracle Internet目录 355
12.6 小结 360
第三部分 模块 361
第13章 Java 361
13.1 J2xE 364
13.2 在PL/SQL Developer中使用Java 364
13.2.1 学习Java 365
13.2.2 程序单元 365
13.2.3 终止符、直接量和引导 365
13.2.4 大小写敏感 365
13.2.5 包和类 366
13.2.6 过程/函数和方法 366
13.2.7 注释 367
13.2.8 变量声明 367
13.2.9 引用代码库 368
13.2.10 操作符 368
13.2.11 控制语句 369
13.2.12 标准输出 370
13.2.13 程序单元规范 370
13.2.14 Try语句 370
13.2.15 代码库 371
13.2.16 标签示例 371
13.2.17 数组 372
13.2.18 循环中使用的示例游标 373
13.2.19 面向对象编程 373
13.3 Oracle的Java虚拟机 377
13.4 Java servlet 380
13.5 JDBC 385
13.5.1 JDBC性能 387
13.5.2 代理连接 387
13.6 SQLJ 387
13.7 JSP 389
13.7.1 为什么使用JSP 390
13.7.2 JavaServer Page的优点 391
13.7.3 当运行JSP文件时,将发生什么 392
13.7.4 JavaServer Page体系结构 392
13.7.5 JavaServer Page和Java servlet之间的差异 393
13.7.6 JSP服务器 393
13.7.7 无素数据 393
13.7.8 隐含对象 398
13.7.9 Oracle JML标记 404
13.7.10 一个简单的JSP 404
13.7.11 向JSP传递参数 405
13.7.12 现在可以调用数据库吗 406
13.7.13 将JDBC代码移到一个Bean中 408
13.7.14 如何运行代码 411
13.7.15 用JDeveloper创建新的JSP 411
13.7.16 JSP编程策略和缺陷 415
13.7.17 JSP技巧 415
13.8 Java存储过程 417
13.8.1 使用Java存储过程还是PL/SQL 417
13.8.2 在数据库中访问Java存储过程 418
13.9 Java业务组件 420
13.9.1 实体对象 421
13.9.2 视图对象 423
13.9.3 关联 423
13.9.4 视图链接 423
13.9.5 BC4J的优点 423
13.10 JDeveloper 424
13.10.1 使用JDeveloper创建业务组件 425
13.10.2 Web应用程序开发 431
13.10.3 Java客户端应用程序开发 431
13.10.4 数据库中的Java 431
13.10.5 基于组件的开发 431
13.10.6 JDeveloper提示和技巧 435
13.11 PL2JAVA——在Java中使用PL/SQL 435
13.11.1 PL/SQL定义——ask_question 436
13.11.2 调用p12java类——AssistUser 436
13.12 参考文献 437
13.13 小结 437
第14章 PL/SQL模块——mod_plsql 439
14.1 从PL/SQL和HTML到Web开发 441
14.1.1 了解PL/SQL Web工具包 441
14.1.2 使用THML的知识 443
14.1.3 使用WebAlchemy 444
14.1.4 执行“魔术” 445
14.1.5 添加自己的PL/SQL逻辑 446
14.1.6 调用Web过程 447
14.2 安装Web工具包 448
14.3 向PL/SQL过程传递参数 448
14.4 PSP 450
14.4.1 什么时候使用PSP 450
14.4.2 PL/SQL服务器页面是什么 451
14.4.3 在数据库中载入PSP 451
14.4.4 示例PSP 452
14.4.5 服务器页面技术 452
14.4.6 标准Scriptlet标记 453
14.4.7 PSP的特殊脚本标记 453
14.4.8 过程指令 454
14.4.9 参数指令 454
14.4.10 声明指令 454
14.4.11 打印指令 454
14.4.12 文件包括指令 455
14.4.13 特殊字符 455
14.4.14 处理脚本错误 456
14.4.15 PSP是最佳的技术组合 456
14.5 获得CGI环境变量 456
14.6 维护源代码历史 457
14.7 保存cookie 458
14.8 引用伪列 458
14.9 以百分之一秒计算时间 459
14.10 在PL/SQL中执行外部调用 460
14.11 封装或加密过程防止源代码查看 460
14.12 将用户重定向到其他URL 460
14.13 从列表框查询多个选择 461
14.14 不使用<PRE>标记包装文本 463
14.15 清空缓冲区 463
14.16 调试PL/SQL 464
14.17 注销用户 464
14.18 使会话消失 464
14.19 加密重要信息 465
14.20 根据用户请求确定数据 465
14.21 编辑PL/SQL代码 467
14.22 从一个IP地址中获得域名 467
14.23 丢失的单选按钮 467
14.24 错误动作的定义 468
14.25 将数字转换成字——字面转换 468
14.26 获得用户的信息 469
14.27 htp.linkrel的用途 474
14.28 PL/SQL优化 475
14.28.1 优化PL/SQL代码 475
14.28.2 优化HTML文档的生成 475
14.28.3 Stop Watch工具 476
14.28.4 最小化下载时间 477
14.28.5 优化浏览器的页面绘制 478
14.29 小结 478
第四部分 Oracle工具 479
第15章 Designer 479
15.1 了解Web PL/SQL生成器的表单布局选项 481
15.1.1 设置模块布局风格 482
15.1.2 生成多个记录插入和更新表单 483
15.1.3 创建分段报表和总结域 484
15.2 在细节组件中访问主组件项值 485
15.3 创建LOV组件 486
15.3.1 包括并与一个LOV组件相关 487
15.3.2 映射LOV返回列表 487
15.3.3 准确定义LOV WHERE子句 487
15.4 定义动作项 488
15.5 由设计器生成的包 489
15.5.1 模块包过程 489
15.5.2 如何处理有名称的例程 491
15.5.3 如何处理事件 492
15.5.4 如何处理用户文本 492
15.5.5 过程参数 493
15.5.6 包定义记录类型 493
15.5.7 生成代码的工作原理 493
15.6 在所生成的模块中使用视图 494
15.7 在使用所生成的模块时创建一个高效的数据库安全模式 494
15.8 使用事件和有名称例程 495
15.8.1 使用有名称例程 495
15.8.2 使用事件 495
15.9 使用关键的Web PL/SQL生成器首选项和属性 496
15.9.1 在模块组件中使用HTML标记 497
15.9.2 在用户文本中注册和使用外部PL/SQL包 497
15.10 使用帧和样式单 497
15.10.1 使用样式单 501
15.10.2 包括一个使用<STYLE>标记的样式单 502
15.10.3 引用外部样式单 502
15.11 使用无约束项 504
15.12 使用用户文本区域 504
15.12.1 使用PL/SQL函数格式化文本 505
15.12.2 使用HTML格式化文本 505
15.13 使用JavaScript 507
15.13.1 避免版本陷阱 508
15.13.2 使用外部JavaScript库 509
15.13.3 创建Oracle服务器端JavaScript库 509
15.13.4 了解Web PL/SQL生成器的命名规则 510
15.13.5 事件处理器的命名规则 510
15.13.6 了解ctl参数 510
15.14 重写设计器的默认功能 510
15.15 使用参数 511
15.16 使用配置管理工具管理软件周期 512
15.16.1 定义工作区 512
15.16.2 使用版本控制 512
15.16.3 使用分支进行并行开发 513
15.16.4 比较和合并对象 513
15.16.5 创建配置 513
15.17 生成Java源数据库对象 513
15.17.1 创建Java定义 514
15.17.2 创建一个Java调用规范 515
15.18 小结 516
第16章 Oracle9iAS Portal 517
16.1 从WebDB到Oracle Portal 518
16.2 Oracle Portal体系结构 519
16.2.1 概述 519
16.2.2 集成的服务器 519
16.2.3 传统的三层体系结构方法 520
16.2.4 三层体系结构的剖析 520
16.3 Oracle Portal的安装 520
16.3.1 安装概述 521
16.3.2 系统需求 522
16.3.3 问题解决和诊断工具 523
16.4 Oracle Portal基础 532
16.4.1 页面 532
16.4.2 区域 537
16.4.3 应用程序 537
16.4.4 内容区域 538
16.4.5 应用程序组件 540
16.5 Oracle Portal安全 553
16.5.1 用户 553
16.5.2 组 555
16.5.3 应用程序安全 556
16.6 Oracle Portal监视 556
16.7 Oracle Portal高级概念 557
16.7.1 PDK 557
16.7.2 API 559
16.7.3 Oracle Portal应用程序和示例 561
16.7.4 额外的Oracle Portal帮助和信息 567
16.8 小结 569
第17章 Oracle Developer——Forms和Reports 571
17.1 Oracle Forms 572
17.2 表单服务器的工作原理 573
17.2.1 安装和配置Oracle表单服务 576
17.2.2 配置Forms CGI 579
17.2.3 将Oracle Forms配置为“静态的” 581
17.2.4 使用一个非Oracle Web服务器 582
17.2.5 生成和保存FMX文件 583
17.2.6 确认图标出现在Web上 583
17.2.7 当退出Forms时关闭浏览器窗口 584
17.2.8 在单独的窗口中运行Forms 584
17.2.9 将表单服务器设置成一个Windows NT服务 585
17.2.10 启动和停止表单服务器侦听器 586
17.2.11 配置表单客户端 586
17.2.12 负载平衡 587
17.2.13 自动断开与非活动用户的连接 587
17.2.14 设计Web应用程序 588
17.2.15 外观 591
17.2.16 了解Web上的表单特性限制 591
17.2.17 在Oracle Forms中使用Java 593
17.2.18 解析签名问题 593
17.2.19 未来方向 594
17.2.20 更多信息 594
17.3 Oracle Reports 595
17.3.1 Oracle报表服务器的功能 595
17.3.2 了解报表服务器的重要方面 596
17.3.3 Reports 6i新特性 596
17.3.4 Oracle Reports体系结构 597
17.3.5 报表服务器配置文件 598
17.3.6 标识报表服务器错误 600
17.3.7 在UNIX上为Oracle Reports配置默认打印机 600
17.3.8 使用一个关键字映射文件 601
17.3.9 性能调优 602
17.3.10 使用参数表单 604
17.3.11 在Reports中使用JavaScript 605
17.3.12 什么是XML 608
17.4 小结 614
第18章 IFS——Internet文件系统 615
18.1 联机文档 616
18.2 IFS的安装 616
18.2.1 选择数据库 617
18.2.2 创建IFS模式并设置选项 617
18.2.3 创建一个IFS协议实例 618
18.2.4 选择IFS协议和端口 618
18.2.5 启动安装 618
18.3 重新配置IFS 619
18.4 启动IFS 619
18.5 访问IFS 620
18.5.1 通过浏览器访问基于Web的IFS 620
18.5.2 从网络邻居访问IFS 626
18.5.3 安装Windows的插件 627
18.6 管理IFS驱动器 627
18.7 小结 627
第19章 Web高速缓存和数据库高速缓存 629
19.1 什么是高速缓存 630
19.2 高速缓存的类型 632
19.2.1 Web高速缓存 632
19.2.2 数据库高速缓存 636
19.3 高速缓存的优点和缺点 637
19.3.1 使用高速缓存的优点 637
19.3.2 使用高速缓存的缺点 637
19.4 如何在应用程序中控制高速缓存 637
19.4.1 HEAD部分中的META标记 637
19.4.2 HTTP标题 638
19.5 Oracle9iAS Web高速缓存 640
19.5.1 动态内容生成概述 641
19.5.2 动态高速缓存和Oracle Web高速缓存 641
19.5.3 部置Oracle Web高速缓存 642
19.5.4 管理Oracle Web高速缓存 647
19.5.5 ESI 669
19.6 Oracle9iAS数据库高速缓存 671
19.6.1 数据库高速缓存的工作原理 672
19.6.2 配置应用程序使用Oracle数据库高速缓存 672
19.7 小结 673
第20章 Oracle企业管理器 675
20.1 智能代理 677
20.1.1 智能代理的用户账户 677
20.1.2 智能代理的操作 677
20.1.3 自动服务发掘进程 678
20.1.4 Oracle数据采集器 679
20.2 管理服务器 680
20.3 控制台 685
20.3.1 登录到控制台 685
20.3.2 使用控制台应用程序 686
20.4 使用一个Web浏览器访问控制台 701
20.5 安装寻呼服务器和电子邮件服务器 702
20.5.1 配置寻呼服务 702
20.5.2 配置电子邮件 703
20.6 小结 703
第五部分 高级主题 705
第21章 故障排除 705
21.1 你知道答案 706
21.2 你知道如何找到答案 706
21.2.1 日志文件 706
21.2.2 异常处理 706
21.2.3 书籍和其他媒体 707
21.2.4 Oracle支持 707
21.2.5 搜索引擎和Web站点 708
21.3 你知道谁知道答案 708
21.4 你知道什么时候请求帮助 708
21.5 小结 708
第22章 调试代码 711
22.1 回顾常规的调试技巧 712
22.2 在PL/SQL应用程序中显示HTML页面 713
22.3 确定持有行锁定的用户 713
22.4 购买PL/SQL调试工具 714
22.5 在不影响用户视图的情况下进行调试 715
22.6 查找常规Oracle错误 715
22.7 查看日志文件 715
22.8 使用正确的错误处理技巧来减少错误恢复时间 715
22.8.1 规则1:在每一个程序单元中使用异常处理程序 716
22.8.2 规则2:记录所有异常错误 719
22.9 使用raise_application_error向用户界面发送错误消息 723
22.10 通过在应用程序中设计改进的调试/跟踪逻辑为产品问题做好准备 727
22.11 使用一个错误数组同时显示所有的校验错误 731
22.12 使用版本报告包确认正确的代码安装 734
22.13 尝试使用应用程序跟踪 737
22.14 包装产品代码 738
22.5 小结 738
第23章 日志记录和站点分析 741
23.1 初步了解iAS使用日志记录 743
23.1.1 LogFormat指令 745
23.1.2 CustomLog指令——访问日志 745
23.1.3 ErrorLog指令——错误日志 747
23.1.4 TransferLog指令——类似于CustomLog指令 748
23.1.5 Unique指令——第三方模块 748
23.1.6 cookieLog指令——cookie日志 748
23.2 重设或滚动日志文件 749
23.3 获得关于日志文件格式的更多信息 749
23.4 寻找Web站点管理工具 750
23.5 了解WebTrends SM解决方案 750
23.5.1 WebTrends日志分析 751
23.5.2 间接引用日志分析 752
23.5.3 代理日志分析 753
23.5.4 链接分析 753
23.6 小结 754
第24章 搜索引擎的级别 755
24.1 编写关键字 757
24.2 放置关键字 757
24.2.1 TITLE标记 758
24.2.2 DESCRIPTION标记 760
24.2.3 KEYWORDS标记 760
24.2.4 标题 761
24.2.5 链接 761
24.2.6 整个页面的关键字 761
24.2.7 可替代的图像标记 761
24.2.8 在注释中放置关键字 762
24.2.9 在表单中使用隐藏域 762
24.2.10 URL或站点地址 762
24.3 与Robots对话 762
24.3.1 Robots元标记 762
24.3.2 robots.txt文件 762
24.4 获得链接流行率 763
24.5 获得点击流行率 764
24.6 不要向任何人发送垃圾信息 764
24.7 构建特洛伊“入门”页面 766
24.8 检查手工提交 767
24.9 为级别付费 768
24.10 购买提交软件和服务 768
24.10.1 自动提交软件 768
24.10.2 提交服务 769
24.11 避免诉讼 770
24.12 不要忽略线下推广 770
24.12.1 商业名片 770
24.12.2 公司印刷品 771
24.12.3 直接引用 771
24.12.4 有的放矢的广告 771
24.13 其他缺陷 771
24.13.1 注意使用横幅广告 771
24.13.2 避免搜索引擎的影响 771
24.13.3 不会访问图像映像——提供HTML链接 772
24.13.4 注意帧——它们可能会“杀掉”你的站点 772
24.13.5 动态门闩 772
24.14 小结 772
24.15 参考文献 772
24.16 Web站点 772
24.17 文献 773
第25章 Oracle Text和Ultra Search 775
25.1 Oracle Text 776
25.2 Oracle Ultra Search 777
25.3 Master.com 783
25.4 小结 784
第26章 负载测试和应用程序测试 787
26.1 负载测试和应用程序测试软件 788
26.1.1 Mercury公司的Topaz产品 788
26.1.2 Rational公司的Robot产品 788
26.1.3 Web Performance Trainer 789
26.1.4 LoadTesting.com公司的Portent Supreme产品 790
26.2 编写自己的负载测试程序 790
26.2.1 使用PL/SQL的UTL_HTTP包 790
26.2.2 使用Perl的LWP 793
26.2.3 JavaScript负载测试器 794
26.2.4 使用Acme的Spider的Java语言 795
26.3 负载测试服务 798
26.3.1 Mercury公司的ActiveTest服务 798
26.3.2 IT服务公司 800
26.4 小结 800