第Ⅴ部分 创建函数、标签和组件 2
第24章 建立用户定义函数 2
24.1 扩一充CFML的考虑因素 2
24.2 将输入转变为输出的函数 3
24.3 建立第一个UDF 3
24.3.1 基本步骤 3
24.3.2 使用函数 4
24.3.3 UDF标签的语法 5
24.3.4 使用局部变量 6
24.3.5 在哪儿保存UDF 8
24.4 创建与UDF相关的库 11
24.4.1 UDF库的设计 11
24.4.2 将UDF库投入使用 14
24.5 创建通用的UDF 15
24.5.1 考虑因素 15
24.5.2 编写SimpleJavaSciptFunctions库 16
24.6 与他人共享UDF库 18
第25章 创建自定义标签 19
25.1 方便、强大的可扩充性 19
25.2 CFML自定义标签介绍 19
25.2.1 自定义标签的基本思路 20
25.2.2 模块化为什么是一件好事情 20
25.3 如何使用自定义标签 21
25.3.1 在DeveloperExchange查找标签 21
25.3.2 如何“安装”自定义标签 21
25.3.3 使用自定义标签 22
25.3.4 更改自定义标签的搜索路径 23
25.3.5 在当前目录中放置自定义标签 24
25.4 用<cfmodule>控制模板的位置 25
25.4.1 <cfmodule>标签介绍 25
25.4.2 通过名称调用模块 25
25.4.3 通过模板位置调用模块 27
25.5 编写显示信息的自定义标签 28
25.5.1 编写第一个自定义标签 28
25.5.2 attributes作用域的介绍 29
25.5.3 使属性成为可选的或必需的 31
25.5.4 使用<cfparam>建立默认值 31
25.5.5 你在为谁而开发? 33
25.5.6 输出的查询和显示 34
25.5.7 自定义标签与<cfinclude> 37
25.6 处理数据的自定义标签 37
25.6.1 CALLER作用域的介绍 38
25.6.2 返回变量给调用模板 38
25.6.3 变量名作为标签的属性 40
25.6.4 使用带有type=“variableName”的<cfparam> 41
25.6.5 动态设置变量 42
25.7 封装商业规则的自定义标签 44
25.8 通用自定义标签 45
25.9 其他自定义标签主题 47
25.9.1 用attributeCollection传递属性 47
25.9.2 REQUEST作用域 48
25.10 <cfimport>的用法 51
25.11 成对的自定义标签 53
25.11.1 执行周期 53
25.11.2 GeneratedContent的概念 55
25.11.3 可以通过成对或空白标签调用的自定义标签 55
25.11.4 使用ThisTag.HasEndTag 56
25.11.5 使用cfexit控制自定义标签的处理流程 56
25.12 嵌套的自定义标签 58
25.12.1 cfmodule的使用说明 58
25.12.2 父标签和子自定义标签之间的通信 60
25.13 由此及彼 65
第26章 建立可重用组件 67
26.1 ColdFusion组件介绍 67
26.1.1 关于ColdFusion组件 67
26.1.2 两种组件类型 69
26.2 第一个CFC 70
26.2.1 CFC文件的结构 70
26.2.2 一个简单的例 72
26.2.3 在ColdFusion页面中使用CFC 73
26.3 一个更加完整的CFC 79
26.3.1 CFC作为函数集 79
26.3.2 使用FilmDataCFC 81
26.3.3 将显示和逻辑分开 84
26.3.4 通过URL访问CFC 84
26.3.5 通过表单访问CFC 89
26.3.6 在Dreamweaver中探索CFC 90
26.4 存放实例数据的组件 93
26.4.1 THIS作用域介绍 93
26.4.2 实例数据的CFC例子 95
26.4.3 在APPLICATION作用域中存储CFC 99
26.4.4 在SESSION作用域中存储CFC 100
26.4.5 作为属性的实例数据 100
26.4.6 CFC、共享作用域和锁定 103
26.5 学习有关CFC的更多知识 104
26.5.1 学习高级CFC概念 104
第27章 创建高级ColdFusion组件 106
27.1 指定数据类型和类型检查 106
27.1.1 使用GetMetaData()函数 107
27.2 组件的管理 109
27.3 继承的使用 110
27.3.1 覆盖属性和方法 111
27.3.2 使用SUPER作用域 111
27.4 接口的定义 113
27.5 安全的实现 115
27.5.1 访问控制的实现 115
27.5.2 在CFC中实现基于角色的安全 117
27.6 使用onMissingMethod方法 120
27.7 分布式CFC、串行化和ColdFusion8 121
27.8 CFC的好策略 122
27.8.1 使用提示 122
"27.8.2 避免使用ACCESS=“REMOTE” 122
27.8.3 除非必要否则不要暴露自己 123
27.8.4 使用数据类型 123
27.8.5 为项目而设计 123
27.8.6 使用CFC 123
第Ⅵ部分 ColdFusion配置和性能 126
第28章 ColdFusion服务器配置 126
28.1 ColdFusion Administrator 126
28.1.1 Administrator主页 126
28.2 服务器设置 127
28.2.1 Settings页面 127
28.2.2 Request Tuning页面 132
28.2.3 Caching页面 136
28.2.4 Client Variables页面 138
28.2.5 Memo Variables页 139
28.2.6 Mappings页面 140
28.2.7 Mail页面 140
28.2.8 Charting页面 142
28.2.9 Font Management页面 143
28.2.10 Java and JVM页面 143
28.2.11 Settings Summary页面 144
28.3 数据与服务 145
28.3.1 Data Sources页面 145
28.3.2 Verity Collections页面 145
28.3.3 Verity K2 Server页面 146
28.3.4 Web Services页面 146
28.3.5 Flex Integration页面 146
28.4 调试与日志 147
28.4.1 Debug Output Settings页面 147
28.4.2 Debugging IP Addresses页面 150
28.4.3 Debugger Settings页面 150
28.4.4 Logging Settings页面 150
28.4.5 Log Files页面 151
28.4.6 Scheduled Tasks页面 152
28.4.7 System Probes页面 152
28.4.8 Code Analyzer页面 153
28.4.9 License Scanner页面 153
28.5 服务器监视 154
28.5.1 Server Monitor页面 154
28.6 扩展 154
28.6.1 Java Applets页面 154
28.6.2 CFX Tags页面 154
28.6.3 Custom Tag Paths页面 155
28.6.4 CORBA Connectors页面 156
28.7 事件网关 156
28.7.1 Settings页面 157
28.7.2 GatewayT ypes页面 157
28.7.3 Gateway Instances页面 157
28.8 安全 158
28.8.1 Administrator页面 158
28.8.2 RDS Password页面 158
28.8.3 Sandbox Security页面 159
28.8.4 User Manager页面 161
28.9 打包与部署 161
28.9.1 ColdFusion Archives页面 161
28.9.2 J2EE Archives页面 163
第29章 改善用户体验 164
29.1 实用性考虑 164
29.1.1 设身处地替用户着想 164
29.1.2 减轻浏览器的负担 165
29.2 记住三设置 168
29.2.1 记住用户名和密码 168
29.2.2 要记住的其他有用设置 168
29.2.3 避免“老大哥”效果 168
29.3 创建下n条记录界面 169
29.3.1 下n条界面的优点 169
29.3.2 何时创建下n条界面 169
29.3.3 创建基本的界面 169
29.3.4 为增加可读性交替颜色 174
29.3.5 允许用户逐页浏览 177
29.3.6 添加Show All和筛选选项 178
29.4 用<cfflush>立即返回页面输出 183
29.4.1 何时清除缓冲区 183
29.4.2 例外而非规定 184
29.4.3 <cfflush>标签的介绍 184
29.4.4 为大页面刷新输出缓冲区 184
29.4.5 为长时运行的处理刷新输出缓冲区 185
29.4.6 何时不能刷新缓冲区 191
第30章 管理线程 193
30.1 使用<cfthread>标签 194
30.1.1 开始线程 195
30.1.2 挂起线程 195
30.1.3 结束线程 195
30.1.4 加入线程 196
30.2 访问线程的数据 196
30.2.1 线程作用域 196
30.3 监视和管理线程 202
30.3.1 处理线程的异常 202
30.3.2 Administrator工具 205
30.4 最优的策略 206
第31章 改善性能 208
31.1 ColdFusion Administrator中的选项 208
31.2 利用高速缓存改善查询的性能 209
31.2.1 理解查询高速缓存 209
31.2.2 使用高速缓存的查询 210
31.2.3 通过程序刷新高速缓存的查询 214
31.2.4 限制高速缓存的查询数 216
31.2.5 控制一次取得的记录数 216
31.3 高速缓存页面的输出 217
31.3.1 <cfcache>标签的介绍 217
31.3.2 客户端侧的页面高速缓存 217
31.3.3 服务器侧的页面高速缓存 219
31.3.4 ColdFusion优化的高速缓存 221
31.3.5 清除页面的高速缓存 222
31.3.6 空白的控制 223
31.3.7 问题的理解 223
31.3.8 自动空白控制 224
31.3.9 用<cfsilent>抑制空白的输出 225
31.3.10 用<cfsetting>抑制特定的空白 225
第Ⅶ部分 集成ColdFusion 228
第32章 使用PDF文件 228
32.1 使用cfpdf 228
32.1.1 创建PDF文件 228
32.1.2 读取PDF文件 229
32.1.3 合并PDF文件 230
32.1.4 创建缩略图 232
32.1.5 创建水印 234
32.1.6 删除页面 236
32.2 加密、许可和命令 237
32.2.1 设置口令 237
32.2.2 添加加密 239
32.3 使用<cfprint> 240
32.3.1 使用GetPrinterlnfo和GetPrinters 240
32.3.2 打印PDF文件 241
32.4 使用DDX 243
32.4.1 创建简单的DDX处理应用程序 243
32.4.2 添加目录 244
32.4.3 添加页眉和页脚 247
32.4.4 添加水印 248
32.4.5 使用样式简表 249
32.4.6 提取PDF文本 251
32.5 使用PDF表单 253
32.5.1 填充PDF表单 253
32.5.2 提交PDF表单 256
32.5.3 嵌入PDF表单 258
第33章 ColdFusion图像处理 260
33.1 <CFIMAGE>的介绍 260
33.2 利用<CFIMAGE>操作图像 263
33.2.1 调整图像的大小 264
33.2.2 添加边框 267
33.2.3 控制JPEG质量和绘制文本 268
33.2.4 添加水印 270
33.2.5 添加CAPTCHA测试 271
33.3 探究其他的ColdFusion图像操作技巧 276
33.4 利用ColdFusion创建和绘制图像 278
33.5 总结 281
第34章 高级ColdFusion推动的Ajax 282
34.1 基于Ajax的布局控件 282
34.1.1 使用选项卡 286
34.1.2 使用壳体 289
34.1.3 使用窗口 290
34.1.4 使用菜单 291
34.1.5 添加工具提示 293
34.1.6 使用树 294
34.2 动态填充Ajax控件 296
34.2.1 对加载内容使用绑定 299
34.2.2 用AjaxLink加载内容 301
34.2.3 使用JavaScript API 301
34.3 使用<cfajaxproxy> 303
34.3.1 将AjaxProxy用作绑定 307
34.4 使用JSON 307
34.5 ColdFusion Ajax应用程序的特殊考虑 309
34.5.1 导入JavaScript Ajax库 310
34.5.2 在页面加载上运行函数 310
34.5.3 在加载页面中定义JavaScript函数 310
34.5.4 与Adobe Spry的集成 311
34.5.5 调试Ajax 311
34.5.6 实现安全选择 312
第35章 理解ColdFusion推动的Flex 313
35.1 什么是LCDS服务器 314
35.2 RPC(Rest、Web服务和FlashRemoting) 315
35.3 数据消息发送 316
35.4 数据管理 316
35.5 Flex应用程序如何与ColdFusion通信 317
35.5.1 异步请求和回调 317
35.5.2 不再是请求/响应 318
35.6 会话作用域 318
35.7 ColdFusion与Flex的配置 318
35.7.1 ColdFusion管理设置 319
35.7.2 ColdFusion和Flex-起作为一个服务器实例 319
35.7.3 ColdFusion和Flex作为两个单独的服务器实例 320
第36章 建立ColdFusion推动的Flex应用程序 321
36.1 配置Flex 321
36.1.1 services-config.xml文件 321
36.1.2 通道和目标 321
36.1.3 配置FlashRemoting目标 321
36.1.4 配置ColdFusion数据消息发送的目标 323
36.1.5 配置ColdFusion数据推进的目标 324
36.1.6 配置日志记录 325
36.1.7 配置Flex Builder-services编译器的参数 325
36.1.8 配置Flex Builder项目 325
36.2 用于Flash Remoting的RPC应用程序 327
36.2.1 填充数据网格 327
36.2.2 将最优策略改进添加到数据网格 330
36.2.3 将编辑表单添加到数据网格 331
36.3 数据管理应用程序 332
36.3.1 同步化数据网格 333
36.3.2 在表单中添加冲突解决方案 337
36.4 数据消息发送应用程序 338
36.4.1 创建事件网关 338
36.5 高级主题 340
36.5.1 调试 340
36.5.2 值对象 344
36.5.3 Flex Builder向导 346
第37章 创建演示文稿 348
37.1 <cfpresentation>的演示 348
37.2 设置播放和控制的选项 352
37.3 嵌入内容 353
37.4 演示文稿的样式 355
37.5 添加演示人员 357
37.6 保存演示文稿 358
第38章 生成非HTML内容 360
38.1 关于ColdFusion和非HTML内容 360
38.1.1 浏览器如何处理MIME类型 361
38.1.2 介绍<cfcontent>标签 362
38.1.3 试验普通文本 363
38.2 逗号分隔的文本 364
38.2.1 生成逗号分隔的文本 364
38.2.2 为Internet Explorer添加一个Content-Disposition头部 366
38.2.3 利用<cfhttp>获取逗号分隔的文本 367
38.3 生成Excel文件 368
38.3.1 用制表符分隔的文本创建电子表格 368
38.3.2 用HTML创建电子-表格 370
38.4 生成Word文件 373
38.4.1 用RTF创建文档 374
38.5 给媒体文件提供服务 377
38.5.1 将ColdFusion变换为一个图像服务器 377
38.5.2 其他应用 382
第39章 全文搜索 384
39.1 开始认识Verity 384
39.1.1 用Verity搜索不同的文件类型 384
39.1.2 集成ColdFusion与其他搜索引擎 385
39.2 为文档创建搜索工具 385
39.2.1 理解集合 385
39.2.2 创建新的集合 386
39.2.3 编排集合的索引 387
39.2.4 创建搜索界面 389
39.3 为SQL数据编排索引 395
39.3.1 不用Verity搜索 395
39.3.2 为表格数据编排索引:Verity到恢复 397
39.3.3 快速组合Verity搜索和SQL查询 405
39.3.4 理解Verity和表格的键值 406
39.3.5 搜索多个集合 407
39.4 维护集合 408
39.4.1 重填Verity集合 408
39.5 利用<cfcollection>管理集合 409
39.5.1 优化Verity集合 409
39.5.2 修复集合 410
39.5.3 删除集合 410
39.5.4 通过编程创建集合 411
39.6 了解Verity的搜索语法 412
第40章 事件调度 414
40.1 ColdFusion事件调度的概念 414
40.2 ColdFusion调度与其他调度类型 415
40.3 创建、修改和删除调度任务 415
40.3.1 管理调度任务 416
40.3.2 利用ColdFusion Administrator创建调度任务 417
40.3.3 运行、修改和删除调度任务 419
40.3.4 使用<cfschedule>创建、修改和删除任务 420
40.4 调度应用程序的例子 423
40.4.1 为POP3应用程序创建调度任务 424
40.4.2 创建自动推销的电子邮件应用程序 424
40.4.3 对Verity集合更新的调度 426