Section |
Page |
Contents |
3 |
Chapter 1: What’s New |
6 |
What’s new in ColdFusion 9.0 Update 1 |
6 |
What’s new in ColdFusion 9 |
10 |
ORM support |
10 |
Flex and AIR integration |
10 |
Adobe AIR applications |
10 |
Enhanced Flash Remoting |
10 |
Language enhancements |
10 |
CFScript |
10 |
onServerStart |
11 |
Other language enhancements |
11 |
Integration with other products and technologies |
11 |
New Ajax controls |
11 |
Integration with SharePoint |
12 |
Office file interoperability |
12 |
Integration with Apache Solr server |
12 |
Performance enhancements |
12 |
Granular control over caching |
12 |
In-memory files |
13 |
Improved Clustering |
13 |
Other performance enhancements |
13 |
Database enhancements |
13 |
DataDirect |
13 |
datasource is optional attribute |
13 |
Code Analyzer |
13 |
Service features |
14 |
ColdFusion as a service |
14 |
Other enhancements |
14 |
Server Manager |
14 |
Built-in support for portlet standards |
14 |
PDF functionality |
15 |
IMAP support |
15 |
JRE specifications |
15 |
Chapter 2: Introduction |
16 |
Using the Developing ColdFusion Applications guide |
16 |
About Adobe ColdFusion 9 documentation |
16 |
Documentation set |
16 |
Viewing online documentation |
16 |
Chapter 3: Introducing ColdFusion |
17 |
About Internet applications and web application servers |
17 |
About web pages and Internet applications |
17 |
About web application servers |
17 |
About ColdFusion |
18 |
Saving ColdFusion pages |
19 |
Testing ColdFusion pages |
19 |
Elements of ColdFusion |
19 |
Verity Search Server |
21 |
ColdFusion Administrator |
21 |
About J2EE and the ColdFusion architecture |
21 |
About ColdFusion and the J2EE platform |
21 |
Chapter 4: The CFML Programming Language |
22 |
Elements of CFML |
22 |
CFML Basics |
22 |
Comments |
22 |
Tags |
23 |
Tag syntax |
23 |
Built-in tags |
24 |
Custom tags |
25 |
Tags as functions and operators |
25 |
cflock |
26 |
cftransaction |
27 |
cfthread |
27 |
Functions |
34 |
Built-in functions |
34 |
Implicit Get and Set Functions |
34 |
User-defined functions |
36 |
ColdFusion components |
36 |
Constants |
37 |
Variables |
37 |
Expressions |
37 |
Data types |
37 |
Flow control |
38 |
cfif, cfelseif, and cfelse |
39 |
cfswitch, cfcase, and cfdefaultcase |
39 |
cfloop and cfbreak |
40 |
cfabort and cfexit |
41 |
Character case |
41 |
Special characters |
42 |
Reserved words |
42 |
CFScript |
43 |
Using ColdFusion Variables |
43 |
Creating variables |
44 |
Variable naming rules |
44 |
Variable characteristics |
45 |
Data types |
45 |
Numbers |
46 |
Strings |
47 |
Lists |
48 |
Boolean values |
48 |
Date-Time values |
48 |
Binary data type and binary encoding |
50 |
Complex data types |
50 |
Multiple references to an object |
53 |
Assigning objects to scopes |
53 |
Copying and duplicating objects |
53 |
Using a query column |
53 |
Using periods in variable references |
54 |
Understanding variables and periods |
54 |
Creating variables with periods |
56 |
Data type conversion |
56 |
Operation-driven evaluation |
56 |
Conversion between types |
57 |
Evaluation and type conversion issues |
58 |
Examples of type conversion in expression evaluation |
60 |
About scopes |
61 |
Scope types |
61 |
Creating and using variables in scopes |
63 |
Using scopes |
65 |
Ensuring variable existence |
66 |
Testing for a variable’s existence |
66 |
Using the cfparam tag |
67 |
Validating data |
68 |
Passing variables to custom tags and UDFs |
68 |
Passing variables to CFML tags and UDFs |
68 |
Passing variables to CFX tags |
69 |
Using Expressions and Number Signs |
69 |
Expressions |
69 |
Operator types |
70 |
Operator precedence and evaluation ordering |
73 |
Using functions as operators |
73 |
Using multiple assignments in one expression |
74 |
Using number signs |
75 |
Using number signs in ColdFusion tag attribute values |
75 |
Using number signs in tag bodies |
76 |
Using number signs in strings |
76 |
Nested number signs |
77 |
Using number signs in expressions |
77 |
Dynamic expressions and dynamic variables |
77 |
About dynamic variables |
78 |
About dynamic expressions and dynamic evaluation |
78 |
Dynamic variable naming without dynamic evaluation |
79 |
Using dynamic evaluation |
80 |
Using the IIF function |
83 |
Example: a dynamic shopping cart |
84 |
Using Arrays and Structures |
87 |
About arrays |
88 |
Basic array concepts |
88 |
About ColdFusion arrays |
88 |
Basic array techniques |
89 |
Referencing array elements |
89 |
Creating arrays |
89 |
Using implicitly created arrays |
92 |
Adding elements to an array |
92 |
Deleting elements from an array |
93 |
Copying arrays |
94 |
Populating arrays with data |
94 |
Populating an array with the ArraySet function |
95 |
Populating an array with the cfloop tag |
95 |
Populating an array from a query |
96 |
Array functions |
97 |
About structures |
98 |
Structure notation |
98 |
Referencing complex structures |
99 |
Creating and using structures |
101 |
Creating structures |
101 |
Using implicitly created structures in functions and tags |
102 |
Adding and updating structure elements |
102 |
Getting information about structures and keys |
103 |
Copying structures |
104 |
Deleting structure elements and structures |
106 |
Looping through structures |
106 |
Structure examples |
107 |
Example file newemployee.cfm |
107 |
Example file addemployee.cfm |
109 |
Structure functions |
110 |
Extending ColdFusion Pages with CFML Scripting |
111 |
About CFScript |
111 |
Comparing tags and CFScript |
112 |
Language Enhancements in ColdFusion 9 |
113 |
New tag equivalents in CFScript |
113 |
Script Functions added in ColdFusion 9 |
114 |
Reserved words introduced in ColdFusion 9 |
114 |
What is supported in CFScript |
114 |
Tag equivalents in CFScript |
114 |
Reserved words |
116 |
Script functions |
116 |
The CFScript language |
116 |
Identifying CFScript |
116 |
Variables |
117 |
Expressions and operators |
117 |
Statements |
117 |
Statement blocks |
117 |
Comments |
118 |
Differences from JavaScript |
118 |
CFScript limitation |
119 |
Using CFScript statements |
119 |
Using assignment statements and functions |
119 |
Using conditional processing statements |
119 |
Using looping statements |
121 |
Using continue |
125 |
Using break |
125 |
for-in construct (for arrays) |
125 |
var declaration within for loop |
126 |
Defining components and functions in CFScript |
126 |
Basic Syntax |
126 |
Setting attributes |
128 |
Specifying page encoding |
128 |
Accessing component metadata |
129 |
Support for creating custom metadata |
129 |
Explicit function-local scope |
130 |
Using system level functions |
130 |
Import and new operations using cfimport |
131 |
Handling exceptions |
132 |
Exception handling syntax and rules |
132 |
Exception handling example |
133 |
CFScript example |
133 |
Using Regular Expressions in Functions |
136 |
About regular expressions |
136 |
Using ColdFusion regular expression functions |
137 |
Basic regular expression syntax |
137 |
Regular expression syntax |
138 |
Using character sets |
138 |
Finding repeating characters |
139 |
Case sensitivity in regular expressions |
139 |
Using subexpressions |
140 |
Using special characters |
140 |
Using escape sequences |
142 |
Using character classes |
143 |
Using backreferences |
144 |
Using backreferences in replacement strings |
145 |
Omitting subexpressions from backreferences |
146 |
Returning matched subexpressions |
146 |
Specifying minimal matching |
148 |
Regular expression examples |
148 |
Regular expressions in CFML |
149 |
Types of regular expression technologies |
149 |
Chapter 5: Building Blocks of ColdFusion Applications |
151 |
Creating ColdFusion Elements |
151 |
About CFML elements that you create |
151 |
Including pages with the cfinclude tag |
151 |
Using the cfinclude tag |
152 |
Recommended uses |
153 |
About user-defined functions |
153 |
Recommended uses |
153 |
For more information |
154 |
Using ColdFusion components |
154 |
Recommended uses |
154 |
For more information |
154 |
Using custom CFML tags |
155 |
Calling custom CFML tags |
155 |
Recommended uses |
156 |
For more information |
156 |
Using CFX tags |
156 |
Calling CFX tags |
156 |
Recommended uses |
157 |
For more information |
157 |
Selecting among ColdFusion code reuse methods |
157 |
Writing and Calling User-Defined Functions |
158 |
About user-defined functions |
158 |
Creating user-defined functions |
158 |
Determining where to create a user-defined function |
159 |
About creating functions using CFScript |
159 |
Defining functions in CFScript |
159 |
About creating functions by using tags |
161 |
Defining functions by using the cffunction tag |
161 |
Rules for function definitions |
163 |
Calling user-defined functions |
163 |
Working with arguments and variables in functions |
164 |
Good argument naming practice |
164 |
Passing arguments |
164 |
Passing complex data |
165 |
About the Arguments scope |
166 |
Function-only variables |
169 |
Referencing caller variables |
170 |
Using arguments |
170 |
Handling errors in UDFs |
171 |
Displaying error messages |
171 |
Providing status information |
172 |
Using exceptions |
174 |
A user-defined function example |
176 |
Defining the function using CFScript |
176 |
Defining the function using the cffunction tag |
177 |
Using UDFs effectively |
177 |
Using functions in ColdFusion component |
177 |
Using Application.cfm and function include files |
178 |
Specifying the scope of a function |
178 |
Using function names as function arguments |
179 |
Handling query results using UDFs |
180 |
Identifying and checking for UDFs |
181 |
Using the Evaluate function |
181 |
Using recursion |
181 |
Building and Using ColdFusion Components |
182 |
About ColdFusion components |
182 |
CFCs and object-oriented programming |
182 |
When to use CFCs |
183 |
Creating ColdFusion components |
184 |
Tags for creating CFCs |
184 |
Elements of a CFC |
184 |
Building ColdFusion components |
185 |
Defining component methods |
185 |
Defining CFCs with related methods |
186 |
Placing executable code in a separate file |
186 |
Initializing instance data |
187 |
Defining and using method parameters |
188 |
Providing results |
191 |
Using ColdFusion components |
194 |
Tags for using CFCs |
195 |
CFC invocation techniques |
195 |
Instantiating CFCs |
195 |
Invoking CFC methods with the cfinvoke tag |
196 |
Using components directly in CFScript and CFML |
198 |
Invoking CFC methods with forms and URLs |
199 |
Accessing CFCs from outside ColdFusion and basic HTML |
200 |
Specifying the CFC location |
201 |
Passing parameters to methods |
201 |
Passing parameters to methods by using the cfinvoke tag |
201 |
Passing parameters in direct method invocations |
202 |
Passing parameters in a URL |
203 |
CFC variables and scope |
203 |
The This scope |
203 |
The Variables scope |
203 |
The Arguments scope |
205 |
Other variable scopes |
205 |
Function local variables |
205 |
Using CFCs effectively |
206 |
Structuring and reusing code |
206 |
Invoke a packaged component method with the cfinvoke tag |
208 |
Building secure ColdFusion components |
209 |
Using introspection to get information about components |
210 |
Display metadata for a CFC |
212 |
ColdFusion component example |
212 |
Creating and Using Custom CFML Tags |
213 |
Creating custom tags |
213 |
Creating and calling custom tags |
214 |
Securing custom tags |
216 |
Accessing existing custom tags |
216 |
Passing data to custom tags |
216 |
Passing values to and from custom tags |
216 |
Using tag attributes summary |
218 |
Custom tag example with attributes |
218 |
Passing custom tag attributes by using CFML structures |
220 |
Managing custom tags |
221 |
Executing custom tags |
221 |
Accessing tag instance data |
221 |
Handling end tags |
222 |
Processing body text |
223 |
Terminating tag execution |
224 |
Nesting custom tags |
224 |
Passing data between nested custom tags |
225 |
Variable scopes and special variables |
226 |
High-level data exchange |
226 |
Example: ancestor data access |
227 |
Building Custom CFXAPI Tags |
229 |
What are CFX tags? |
229 |
Before you begin developing CFX tags in Java |
230 |
Sample Java CFX tags |
230 |
Setting up your development environment to develop CFX tags in Java |
230 |
Customizing and configuring Java |
231 |
Writing a Java CFX tag |
231 |
Calling the CFX tag from a ColdFusion page |
231 |
Processing requests |
232 |
Life cycle of Java CFX tags |
233 |
ZipBrowser example |
234 |
Approaches to debugging Java CFX tags |
235 |
Outputting debugging information |
235 |
Debugging in a Java IDE |
236 |
Using the debugging classes |
236 |
Developing CFX tags in C++ |
237 |
Sample C++ CFX tags |
237 |
Setting up your C++ development environment |
238 |
Compiling C++ CFX tags |
238 |
Locating your C++ library files in UNIX |
238 |
Implementing C++ CFX tags |
238 |
Debugging C++ CFX tags |
238 |
Registering CFX tags |
239 |
Chapter 6: Developing CFML Applications |
240 |
Designing and Optimizing a ColdFusion Application |
240 |
About applications |
240 |
Elements of a ColdFusion application |
241 |
The application framework |
241 |
Reusable application elements |
241 |
Shared variables |
241 |
Application events and the Application.cfc file |
242 |
Other application-level settings and functions |
242 |
Specifying settings per application |
243 |
Application security and user identification |
244 |
Structuring an application |
244 |
How ColdFusion finds and process application definition pages |
244 |
Defining the directory structure |
245 |
Defining the application and its event handlers in Application.cfc |
246 |
Defining application-level settings and variables |
246 |
Using application event handlers |
248 |
Managing the application with Application.cfc |
249 |
Managing sessions in Application.cfc |
250 |
Managing requests in Application.cfc |
251 |
Handling errors in Application.cfc |
252 |
Example: a complete Application.cfc |
254 |
Migrating from Application.cfm to Application.cfc |
257 |
Using an Application.cfm page |
257 |
Naming the application |
258 |
Setting the client, application, and session variables options |
258 |
Defining page processing settings |
258 |
Setting application default variables and constants |
258 |
Processing logins |
258 |
Handling errors |
259 |
Example: an Application.cfm page |
259 |
Optimizing ColdFusion applications |
261 |
Caching ColdFusion pages that change infrequently |
261 |
Caching parts of ColdFusion pages |
262 |
Using Amazon S3 storage |
263 |
Accessing Amazon S3 |
263 |
Bucket operations |
264 |
Object operations |
265 |
New attributes in cfdirectory action=\ |
266 |
ACLObject |
267 |
Access control functions |
267 |
storeSetACL |
267 |
storeAddACL |
268 |
storeGetACL |
269 |
StoreGetMetadata |
270 |
StoreSetMetadata |
270 |
Standard keys |
271 |
Working with in-memory files |
272 |
Example |
273 |
Example |
273 |
Using in-memory files |
273 |
Supported functions |
274 |
File operations |
275 |
Document and image actions |
275 |
Custom tags |
275 |
Using in-memory files in tags |
275 |
Adding permissions |
276 |
Accessing VFS information |
276 |
Deleteing in-memory files |
276 |
Limitations |
277 |
Optimizing database use |
277 |
Providing visual feedback to the user |
280 |
Handling Errors |
280 |
About error handling in ColdFusion |
280 |
Understanding errors |
281 |
About error causes and recovery |
281 |
ColdFusion error types |
281 |
About ColdFusion exceptions |
282 |
How ColdFusion handles errors |
284 |
Error messages and the standard error format |
285 |
Determining error-handling strategies |
286 |
Handling missing template errors |
286 |
Handling form field validation errors |
287 |
Handling compiler exceptions |
287 |
Handling runtime exceptions |
287 |
Specifying custom error messages with the cferror tag |
288 |
Specifying a custom error page |
288 |
Creating an error application page |
289 |
Logging errors with the cflog tag |
290 |
Handling runtime exceptions with ColdFusion tags |
292 |
Exception-handling tags |
292 |
Using cftry and cfcatch tags |
293 |
Using the cftry tag: an example |
296 |
Using the cfthrow tag |
300 |
Using the cfrethrow tag |
301 |
Example: using nested tags, cfthrow, and cfrethrow |
302 |
Using Persistent Data and Locking |
306 |
About persistent scope variables |
306 |
ColdFusion persistent variables and ColdFusion structures |
307 |
ColdFusion persistent variable issues |
308 |
Managing the client state |
308 |
About client and session variables |
309 |
Maintaining client identity |
309 |
Ensuring CFToken uniqueness and security |
311 |
Providing Session security |
311 |
Configuring and using client variables |
312 |
Enabling client variables |
312 |
Using client variables |
314 |
Configuring and using session variables |
316 |
What is a session? |
316 |
Configuring and enabling session variables |
317 |
Storing session data in session variables |
318 |
Standard session variables |
318 |
Getting a list of session variables |
319 |
Creating and deleting session variables |
319 |
Accessing and changing session variables |
319 |
Ending a session |
320 |
Configuring and using application variables |
320 |
Configuring and enabling application variables |
321 |
Storing application data in application variables |
321 |
Using application variables |
321 |
Using server variables |
322 |
Locking code with cflock |
323 |
Sample locking scenarios |
323 |
Using the cflock tag with write-once variables |
325 |
Using the cflock tag |
325 |
Considering lock granularity |
327 |
Nesting locks and avoiding deadlocks |
327 |
Examples of cflock |
329 |
Example with application, server, and session variables |
329 |
Example of synchronizing access to a file system |
332 |
Example of protecting ColdFusion extensions |
332 |
Using ColdFusion Threads |
333 |
About ColdFusion threads |
333 |
Creating and managing ColdFusion threads |
333 |
Starting a thread |
334 |
Suspending a thread |
334 |
Ending a thread |
335 |
Joining threads |
336 |
Using thread data |
337 |
Thread scopes |
337 |
Locking thread data and resource access |
339 |
Metadata variables |
339 |
Working with threads |
340 |
Starting threads inside loops |
340 |
Using the thread status |
341 |
Handling thread output |
341 |
Handling ColdFusion thread errors |
341 |
Handling database transactions |
342 |
Using ColdFusion tools to control thread use |
342 |
Example: getting multiple RSS feeds |
342 |
Securing Applications |
344 |
ColdFusion security features |
344 |
About resource and sandbox security |
345 |
Resource control |
345 |
Sandbox security |
345 |
About user security |
346 |
Authenticating users |
347 |
Using ColdFusion security tags and functions |
350 |
Using the cflogin tag |
350 |
Getting the user ID and password |
351 |
Logging out users |
353 |
Security scenarios |
354 |
A web server authentication security scenario |
354 |
An application authentication security scenario |
355 |
Implementing user security |
356 |
Using the Dreamweaver Login Wizard |
357 |
Providing user-specific role information |
358 |
Authenticating users against a database |
358 |
With code like the following: |
359 |
Web server–based authentication user security example |
359 |
Application-based user security example |
361 |
Using an LDAP directory for security information |
367 |
Developing Globalized Applications |
369 |
Introduction to globalization |
370 |
Defining globalization |
370 |
Importance of globalization in ColdFusion applications |
370 |
How ColdFusion supports globalization |
371 |
Character sets, character encodings, and locales |
371 |
About character encodings |
371 |
The Java Unicode character encoding |
372 |
Character encoding conversion issues |
373 |
Locales |
373 |
Locale names |
373 |
Determining the locale |
374 |
Using the locale |
374 |
Processing a request in ColdFusion |
375 |
Determining the character encoding of a ColdFusion page |
375 |
Determining the page encoding of server output |
376 |
Tags and functions for globalizing applications |
376 |
Tags and functions for controlling character encoding |
377 |
Functions for controlling and using locales |
377 |
Additional globalization tags and functions |
379 |
Handling data in ColdFusion |
379 |
General character encoding issues |
380 |
Locale-specific content |
380 |
Input data from URLs and HTML forms |
380 |
File data |
382 |
Databases |
382 |
E-mail |
382 |
HTTP |
382 |
LDAP |
383 |
WDDX |
383 |
COM |
383 |
CORBA |
383 |
Searching and indexing |
383 |
Debugging and Troubleshooting Applications |
383 |
Configuring debugging in the ColdFusion Administrator |
384 |
Debugging Settings page |
384 |
Debugging IP addresses page |
385 |
Using debugging information from browser pages |
385 |
General debugging information |
385 |
Execution Time |
386 |
Database Activity |
387 |
Exceptions |
388 |
Trace points |
388 |
Scope variables |
388 |
Using the dockable.cfm output format |
389 |
Controlling debugging information in CFML |
389 |
Generating debugging information for an individual query |
389 |
Controlling debugging output with the cfsetting tag |
390 |
Using the IsDebugMode function to run code selectively |
390 |
Using the cftrace tag to trace execution |
390 |
About the cftrace tag |
391 |
Using tracing |
393 |
Calling the cftrace tag |
393 |
Using the cftimer tag to time blocks of code |
394 |
Using timing |
395 |
Calling the cftimer tag |
395 |
Using the Code Analyzer |
396 |
Troubleshooting common problems |
397 |
CFML syntax errors |
397 |
Data source access and queries |
398 |
HTTP/URL |
398 |
Using the ColdFusion Debugger |
398 |
About the ColdFusion Debugger |
399 |
Install and uninstall the ColdFusion Debugger |
399 |
Set up ColdFusion to use the Debugger |
399 |
Test and modify the debugger in Eclipse |
400 |
About the Debug perspective |
401 |
Using the ColdFusion Debugger |
402 |
Begin debugging a ColdFusion application |
402 |
Setting a breakpoint |
402 |
Executing code line by line |
403 |
Inspecting variables |
404 |
Viewing ColdFusion log files |
404 |
Chapter 7: Accessing and Using Data |
405 |
Introduction to Databases and SQL |
405 |
What is a database? |
405 |
Using multiple database tables |
406 |
Database permissions |
407 |
Commits, rollbacks, and transactions |
407 |
Database design guidelines |
408 |
Using SQL |
408 |
SQL example |
409 |
Basic SQL syntax elements |
409 |
Reading data from a database |
411 |
Modifying a database |
413 |
Accessing and Retrieving Data |
415 |
Working with dynamic data |
415 |
Retrieving data |
415 |
The cfquery tag |
416 |
The cfquery tag syntax |
416 |
Building queries |
417 |
Outputting query data |
418 |
Query output notes and considerations |
419 |
Getting information about query results |
419 |
Output information about the query on your page |
420 |
Query variable notes and considerations |
420 |
Enhancing security with cfqueryparam |
421 |
About query string parameters |
421 |
Using cfqueryparam |
421 |
Updating Your Database |
422 |
About updating your database |
422 |
Inserting data |
422 |
Creating an HTML insert form |
423 |
Data entry form notes and considerations |
424 |
Creating an action page to insert data |
424 |
Updating data |
427 |
Creating an update form |
427 |
Creating an action page to update data |
429 |
Deleting data |
431 |
Deleting a single record |
432 |
Deleting multiple records |
433 |
Using Query of Queries |
433 |
About recordsets |
433 |
Creating a recordset |
433 |
Creating a recordset with the QueryNew() function |
434 |
About Query of Queries |
434 |
Benefits of Query of Queries |
435 |
Performing a Query of Queries |
435 |
Use Query of Queries with a Verity recordset |
439 |
Use Query of Queries to combine recordsets |
439 |
Query of Queries user guide |
440 |
Using dot notation |
440 |
Using joins |
441 |
Using unions |
441 |
Using conditional operators |
443 |
Managing data types for columns |
446 |
Using the CAST function |
447 |
Using aggregate functions |
448 |
Using group by and having expressions |
448 |
Using ORDER BY clauses |
449 |
Using aliases |
449 |
Handling null values |
450 |
Concatenating strings |
450 |
Escaping reserved keywords |
451 |
Using Queries of Queries with dates |
452 |
Understanding Query of Queries performance |
453 |
Understanding Query of Queries processing |
453 |
Managing LDAP Directories |
454 |
About LDAP |
454 |
The LDAP information structure |
456 |
Entry |
456 |
Attribute |
456 |
Distinguished name (DN) |
457 |
Schema |
457 |
Using LDAP with ColdFusion |
458 |
Querying an LDAP directory |
459 |
Scope |
459 |
Search filter |
459 |
Getting all the attributes of an entry |
461 |
Example: querying an LDAP directory |
461 |
Updating an LDAP directory |
464 |
Adding a directory entry |
465 |
Deleting a directory entry |
469 |
Updating a directory entry |
471 |
Adding and deleting attributes of a directory entry |
472 |
Changing a directory entry’s DN |
473 |
Advanced topics |
473 |
Specifying an attribute that includes a comma or semicolon |
473 |
Using cfldap output |
473 |
Viewing a directory schema |
474 |
Referrals |
479 |
Managing LDAP security |
479 |
Building a Search Interface |
481 |
About Verity |
481 |
Using Verity with ColdFusion |
481 |
Advantages of using Verity |
482 |
Supported file types |
482 |
Specifying a language |
484 |
Creating a search tool for ColdFusion applications |
486 |
Creating a collection with the ColdFusion Administrator |
486 |
About indexing a collection |
487 |
Creating a ColdFusion search tool programmatically |
487 |
Creating a search page |
492 |
Create a search form |
493 |
Create the results page |
494 |
Enhancing search results |
495 |
Highlighting search terms |
495 |
Providing alternative spelling suggestions |
496 |
Narrowing searches by using categories |
497 |
Working with data returned from a query |
502 |
Recordsets and types of queries |
502 |
Indexing data returned by a query |
502 |
Indexing a file returned by using a query |
506 |
Indexing a path returned by using a query |
507 |
Indexing query results obtained from an LDAP directory |
508 |
Indexing cfpop query results |
509 |
Using Verity Search Expressions |
510 |
About Verity query types |
510 |
Using simple queries |
511 |
Stemming in simple queries |
512 |
Preventing stemming |
512 |
Using explicit queries |
512 |
Using AND, OR, and NOT |
513 |
Using wildcards and special characters |
514 |
Using natural queries |
515 |
Using Internet queries |
516 |
Search terms |
516 |
Words |
516 |
Phrases |
516 |
Plain language |
516 |
Including and excluding search terms |
516 |
Field searches |
516 |
Query syntax |
517 |
Field searches |
517 |
Pass-through of terms |
518 |
Stop words |
518 |
Composing search expressions |
518 |
Case sensitivity |
518 |
Prefix and infix notation |
519 |
Commas in expressions |
519 |
Precedence rules |
519 |
Delimiters in expressions |
519 |
Operators and modifiers |
520 |
Refining your searches with zones and fields |
527 |
Zone searches |
527 |
Field searches |
528 |
Solr search support |
530 |
Solr search service |
530 |
CFML tags used to configure Solr |
531 |
Language support |
531 |
Solr search examples |
531 |
Term highlighting |
533 |
Migrating from Verity to Solr |
535 |
Configuring Solr memory |
536 |
Solr enhancements in ColdFusion 9.0.1 |
537 |
Upgrading Solr |
537 |
Chapter 8: ColdFusion ORM |
538 |
Introducing ColdFusion ORM |
538 |
ColdFusion ORM example |
538 |
Architecture |
542 |
Configure ORM |
543 |
ORM settings |
543 |
Logging |
546 |
Define ORM mapping |
547 |
Map a ColdFusion component |
548 |
Map the properties |
550 |
Primary key |
551 |
Generators |
553 |
Column |
554 |
Versioning |
556 |
ORM data types |
558 |
Escaping SQL keywords in table and column name |
559 |
Define Relationships |
559 |
Relationship attributes |
560 |
One-to-one relationships |
564 |
One-to-many relationship |
566 |
Many-to-one relationship |
568 |
Many-to-many relationships |
569 |
Advanced mapping |
571 |
Collection Mapping |
571 |
Inheritance mapping |
573 |
Embedded mapping |
576 |
Join mapping in a CFC |
578 |
Define the ORM mapping in the Hibernate mapping file |
578 |
Mapping CFCs without properties |
579 |
Working with objects |
580 |
Generated accessors |
580 |
Generated methods for relationships between CFCs |
580 |
Perform create, read, update, delete operations on ORM Objects |
582 |
Create entities |
582 |
Save entities |
582 |
Update objects |
583 |
Read/Load objects |
583 |
Delete objects |
585 |
Convert object to query |
585 |
Merge entities |
586 |
Using queries |
586 |
Transaction and concurrency |
589 |
Change of behavior in ColdFusion 9 Update 1 |
590 |
Optimistic locking |
590 |
Performance optimization |
592 |
Lazy Loading |
592 |
Immediate fetching |
592 |
Lazy fetching |
593 |
Eager fetching |
594 |
Batch fetching |
594 |
Caching |
595 |
Session level cache |
595 |
Secondary level cache |
595 |
Use secondary cache |
596 |
Support for user-defined caches in ColdFusion 9.0.1 |
599 |
ORM session management |
600 |
ORMGetSession() |
601 |
ORMCloseSession() |
601 |
ORMFlush() |
601 |
ORMClearSession() |
601 |
ORMGetSessionFactory() |
601 |
Event Handling in CFC |
601 |
Event handling in a persistent CFC |
602 |
Event handling using an event handler CFC |
602 |
Autogenerating database schema |
603 |
Naming strategy |
604 |
Populating the database using script |
605 |
Support for multiple data sources for ORM |
606 |
Introduction |
606 |
Usage scenario |
606 |
Configuring the application to use multiple data sources |
606 |
ORM settings |
607 |
Mapping using Hibernate mapping files |
607 |
ORM Function enhancements |
608 |
ORMGetSession |
608 |
ORMCloseSession |
608 |
ORMCloseAllSessions |
608 |
ORMFlush |
609 |
ORMFlushall |
609 |
ORMClearSession |
609 |
ORMGetSessionFactory |
609 |
ORMEvictQueries |
610 |
ORMExecuteQuery |
610 |
Chapter 9: Flex and AIR Integration in ColdFusion |
611 |
Using the Flash Remoting Service |
611 |
About using the Flash Remoting service with ColdFusion |
611 |
Planning your SWF application |
612 |
Configuring the Flash Remoting Gateway |
613 |
Using the Flash Remoting service with ColdFusion pages |
616 |
Accessing parameters passed from Flash |
617 |
Returning results to Flash |
618 |
Returning records in increments to Flash |
619 |
Using Flash with CFCs |
621 |
Using the Flash Remoting service with ColdFusion Java objects |
622 |
Handling errors with ColdFusion and Flash |
623 |
Using Flash Remoting Update |
624 |
Prerequisites for using Flash Remoting Update |
624 |
Configure Flex Compilation |
625 |
Configure Flex Builder 2 to use the ColdFusion configuration file |
625 |
Configure Flex Builder 3 to use the ColdFusion configuration file |
625 |
Specify a CFC |
626 |
Specify the CFC in the MXML |
626 |
Create a named resource for a CFC |
627 |
Use the CFC |
629 |
Use the CFC in your application: |
629 |
Compile and Run the application |
629 |
Compile and run the application using Flash Builder |
630 |
Compile and Run the application without Flash Builder |
630 |
Offline AIR Application Support |
630 |
ColdFusion server side |
630 |
Server-Side notes |
631 |
Offline AIR application code constructs |
632 |
Data object |
632 |
Data object metadata |
633 |
Client Side |
634 |
Managing relationships |
634 |
Lazy loading and fetch type |
636 |
Cascading options |
636 |
Using the AIR SyncManager class to manage data |
637 |
Fetching data from the server |
638 |
Managing the local database |
638 |
Sending data to the server |
640 |
Setting Remote Credentials for SyncManager |
640 |
Conflict management |
640 |
Offline AIR application example |
643 |
Client-side (AIR application) code |
643 |
Server-side code |
649 |
Offline AIR application support in ColdFusion 9.0.1 |
651 |
Auto-generating primary keys |
651 |
Encrypting the database |
653 |
Specifying the cache directory |
653 |
Support for self joins |
654 |
ArrayCollection to hold multiple entities |
655 |
Logging SQL statements |
656 |
ColdFusion ActionScript APIs |
656 |
SessionToken class is dynamic |
657 |
Support for AutoCommit |
657 |
New attribute for SessionResultEvent and SessionToken |
658 |
Proxy ActionScript Classes for ColdFusion Services |
658 |
About the cfservices.swc file |
659 |
Using the Config class |
659 |
Using the Util class |
660 |
Event flow of the ColdFusion service |
660 |
Using the Mail class |
661 |
Using the Image class |
667 |
Batch operation |
668 |
Using the PDF class |
668 |
Using the Chart class |
670 |
Using the Document class |
672 |
Using the Pop class |
674 |
Using the LiveCycle Data Services ES Assembler |
676 |
About ColdFusion and Flex |
676 |
Application development and deployment process |
677 |
Configuring a destination for the ColdFusion Data Service adapter |
678 |
Enhanced Flash Remoting |
678 |
Changes in the XML configuration files for Flash Remoting in ColdFusion 9 and ColdFusion 9.0.1 |
679 |
Specifying ColdFusion-specific channel definitions |
682 |
Specifying the ColdFusion Data Service adapter |
683 |
Specifying a destination |
683 |
Enabling ColdFusion-specific debugging output |
685 |
Writing the ColdFusion CFCs |
685 |
Creating the fill method |
686 |
Managing fills |
688 |
Creating the get method |
689 |
Creating the sync method |
690 |
Creating the count method |
690 |
Notifying the Flex application when data changes |
691 |
Authentication |
691 |
Specifying credentials in ActionScript |
691 |
Specifying credentials in the Flex destination |
691 |
Enabling SSL |
692 |
Create the keystore |
692 |
Configure Flex |
693 |
Enable SSL in the ColdFusion Administrator |
693 |
Data translation |
693 |
Using Server-Side ActionScript |
693 |
About server-side ActionScript |
694 |
Client-side ActionScript requirements |
694 |
Server-side requirements |
694 |
Software requirements |
695 |
Location of server-side ActionScript files |
695 |
Benefits |
695 |
What to do next |
696 |
Connecting to the Flash Remoting service |
696 |
Create a Flash Remoting service connection |
696 |
Using server-side ActionScript functions |
697 |
Call a function |
697 |
Using the function results in ActionScript |
697 |
Global and request scope objects |
698 |
About the CF.query function and data sources |
698 |
Pull data into your SWF movie from a ColdFusion data source |
698 |
Publishing dynamic data |
699 |
About ColdFusion data sources |
699 |
Using the CF.query function |
699 |
About CF.query function syntax |
700 |
About the CF.query record set |
700 |
Building a simple application |
701 |
Create the application |
701 |
Writing the server-side ActionScript function |
702 |
Creating the SWF movie interface |
702 |
Submitting user data to the Flash Remoting service |
702 |
Capturing Flash Remoting service results |
703 |
Checking for a Flash Remoting service connection |
704 |
About the CF.http function |
704 |
Using the CF.http function |
705 |
Referencing HTTP Post parameters in the CF.http function |
705 |
Using the CF.http Post method |
706 |
Using the CF.http Get method |
707 |
Chapter 10: Requesting and Presenting Information |
708 |
Introduction to Retrieving and Formatting Data |
708 |
Using forms in ColdFusion |
708 |
ColdFusion forms tags |
708 |
ColdFusion Form tag features |
708 |
Creating a basic form |
709 |
Forms guidelines |
711 |
Working with action pages |
711 |
Processing form variables on action pages |
711 |
Using form data to generate SQL statements |
712 |
Creating action pages |
712 |
Testing for a variable’s existence |
714 |
Requiring users to enter values in form fields |
714 |
Form variable notes and considerations |
715 |
Working with queries and data |
715 |
Using HTML tables to display query results |
715 |
Formatting individual data items |
717 |
Building flexible search interfaces |
717 |
Returning results to the user |
719 |
Handling no query results |
719 |
Returning results incrementally |
721 |
Dynamically populating list boxes |
723 |
Dynamically populate a list box |
723 |
Creating dynamic check boxes and multiple-selection list boxes |
724 |
Check boxes |
725 |
Multiple selection lists |
726 |
Building Dynamic Forms with cfform Tags |
727 |
Creating custom forms with the cfform tag |
728 |
The cfform controls |
728 |
Preserving input data with the preservedata attribute |
729 |
Browser considerations |
729 |
Building tree controls with the cftree tag |
730 |
Create and populate a tree control from a query |
730 |
Grouping output from a query |
731 |
The cftree form variables |
732 |
Input validation |
732 |
Structuring tree controls |
733 |
Image names in a cftree tag |
734 |
Embedding URLs in a cftree tag |
735 |
Specifying the tree item in the URL |
736 |
Building drop-down list boxes |
736 |
Populate a drop-down list box with query data using the cfselect tag |
736 |
Building slider bar controls |
737 |
Create a slider control |
737 |
Creating data grids with the cfgrid tag |
737 |
Working with a data grid and entering data |
738 |
Creating an editable grid |
739 |
Create the editable grid |
741 |
Update the data source with the cfgridupdate tag |
742 |
Update the data source with the cfquery tag |
743 |
Embedding Java applets |
746 |
Registering a Java applet |
747 |
Using the cfapplet tag to embed an applet |
747 |
Handling form variables from an applet |
747 |
Validating Data |
748 |
About ColdFusion validation |
748 |
Validation techniques |
748 |
Selecting a validation technique |
750 |
Data validation types |
752 |
Validating form fields |
753 |
Validation type considerations |
754 |
Validating data in XML skinnable forms |
754 |
Example: basic form validation |
754 |
Handling invalid data |
755 |
Masking form input values |
756 |
Masking text input |
756 |
Masking cfcalendar and datefield input |
757 |
Validating form data with regular expressions |
757 |
Special characters |
758 |
Single-character regular expressions |
758 |
Multicharacter regular expressions |
759 |
Backreferences |
759 |
Exact and partial matches |
759 |
Expression examples |
759 |
Validating form data using hidden fields |
760 |
Specifying hidden form field validation |
760 |
Hidden form field considerations |
762 |
Hidden form field example |
762 |
Validating form input and handling errors with JavaScript |
764 |
Validating input with JavaScript |
764 |
Example: validating a password |
765 |
Handling failed validation |
766 |
Validating data with the IsValid function and the cfparam tag |
767 |
Example: IsValid function validation |
767 |
Examples: cfparam tag validation |
768 |
Creating Forms in Flash |
770 |
About Flash forms |
770 |
A Flash form example |
771 |
Flash form CFML differences from HTML forms |
771 |
Building Flash forms |
772 |
Adding text, images, rules, and space with the cfformitem tag |
773 |
Using the cfformgroup tag to structure forms |
775 |
Controlling sizes in Flash forms |
777 |
Repeating Flash form elements based on query data |
777 |
Creating complex forms with accordion and tab navigator containers |
778 |
Binding data in Flash forms |
781 |
Setting styles and skins in Flash forms |
781 |
Controlling form appearance with Flash skins |
782 |
About Flash form styles |
782 |
Flash form style specification syntax |
782 |
About Flash form style value formats |
782 |
About Flash form style applicability and inheritance |
783 |
Example: applying styles to a Flash form |
784 |
Using ActionScript in Flash forms |
785 |
Using ActionScript code in CFML |
785 |
Custom ActionScript functions |
786 |
Best practices for Flash forms |
787 |
Minimizing form recompilation |
787 |
Caching data in Flash forms |
787 |
Using Flash forms in a clustered environment |
788 |
Creating Skinnable XML Forms |
788 |
About XML skinnable forms |
788 |
ColdFusion forms and XForms |
788 |
The role of the XSLT skin |
788 |
How ColdFusion processes XML skinnable forms |
789 |
ColdFusion XSL skins |
789 |
Example: a simple skinnable form |
790 |
Building XML skinnable forms |
790 |
Using standard ColdFusion form tags |
790 |
Using cfformitem tags |
791 |
Using cfformgroup tags |
791 |
Example: CFML for a skinnable XML form |
792 |
ColdFusion XML format |
793 |
XML namespace use |
793 |
XML structure |
794 |
Data model |
794 |
Control elements |
797 |
Selection tags |
799 |
cfgrid tags |
800 |
The cftree tags |
802 |
The cfformgroup and cfformitem tags |
804 |
Example: control element XML |
804 |
Creating XSLT skins |
806 |
XSLT skin file locations |
806 |
Attribute and value passthrough |
807 |
Extending ColdFusion XSLT skins |
807 |
Using Ajax User Interface Components and Features |
809 |
About Ajax and ColdFusion user interface features |
809 |
ColdFusion Ajax features |
809 |
Using ColdFusion Ajax user interface features |
811 |
Controlling Ajax user interface layout |
812 |
Using the cfdiv tag |
812 |
Using layouts |
813 |
Using pods |
815 |
Using pop-up windows |
816 |
Control container contents |
819 |
Using menus and toolbars |
821 |
Define menus and toolbars |
821 |
Styling menus |
822 |
Uploading files |
823 |
Working with the cffileupload |
823 |
Using Ajax form controls and features |
825 |
Using Ajax form controls |
825 |
Using HTML grids |
830 |
Using HTML trees |
839 |
Handling leaf nodes |
841 |
Binding other controls to a tree |
844 |
Tree JavaScript functions |
844 |
Using the rich text editor |
844 |
Using the datefield input control |
847 |
Using autosuggest text input fields |
849 |
Using the cfslider tag |
851 |
Using geographical maps |
853 |
Using the marker window |
853 |
Specifying Google map key |
856 |
Styling markers |
856 |
Using the cfprogressbar tag |
856 |
Progress bar modes |
857 |
Working with a progress bar at runtime |
860 |
Styling the progress bar |
861 |
Using the cfmessagebox tag |
862 |
Using confirm dialog |
862 |
Styling a message box |
862 |
Using Ajax Data and Development Features |
863 |
About ColdFusion Ajax data and development features |
863 |
ColdFusion Ajax features |
863 |
Binding data to form fields |
865 |
Using bind expressions |
866 |
Support for CFCs outside webroot |
869 |
Using binding in control attributes |
870 |
Using the cfajaxproxy tag to bind to display controls |
872 |
Getting bindable attribute values in JavaScript |
874 |
Managing the client-server interaction |
874 |
Using ColdFusion Ajax CFC proxies |
875 |
Example: Using an asynchronous CFC proxy |
876 |
Using Spry with ColdFusion |
879 |
Spry data set example |
880 |
Specifying client-side support files |
884 |
Specifying a custom script or CSS location |
885 |
Importing tag-specific JavaScript files |
886 |
Using data interchange formats |
886 |
Controlling CFC remote return value data format |
886 |
Using JSON |
887 |
Serialization of numeric values |
888 |
Ajax plumbing enhancement in ColdFusion 9.0.1 |
889 |
Debugging Ajax applications |
889 |
Display logging information |
889 |
Logging information |
890 |
Standard ColdFusion logging messages |
890 |
Ajax programming rules and techniques |
890 |
Preventing errors |
891 |
Improving security |
892 |
Programming effectively |
893 |
Chapter 11: Office file interoperability |
894 |
Using cfdocument |
894 |
Working with documents using OpenOffice |
894 |
Working with PowerPoint presentation files |
895 |
Using cfpresentation |
895 |
Using cfspreadsheet |
897 |
Supported Office conversion formats |
898 |
SharePoint integration |
899 |
Load SharePoint actions from ColdFusion |
899 |
Using cfsharepoint |
899 |
Access ColdFusion from SharePoint using custom Web Parts |
901 |
Use Single Sign-On to access ColdFusion applications via SharePoint |
901 |
Deploy the CF9SSOWebPart.wsp Web Part for Microsoft Office SharePoint Server 2007 |
902 |
Import the CF9SSOWebPart.wsp Web Part into a Web Part Page |
902 |
Deploy the CF9SharepointSSOCab.CAB Web Part for Microsoft Office SharePoint Portal Server 2003 |
902 |
Configure the CFSharepointSSO Web Part |
903 |
Chapter 12: ColdFusion Portlets |
904 |
Run a ColdFusion portlet on JBoss Portal Server |
904 |
Prerequisites |
904 |
Build a portlet for a local server |
904 |
Access remote ColdFusion portlets (WSRP) |
909 |
Configure the WSRP producer |
909 |
Configure the WSRP consumer |
910 |
Common methods used in portlet.cfc |
911 |
ColdFusion portlet components |
911 |
Portlet modes |
912 |
Portlet window states |
912 |
Portlet title |
912 |
Portlet scope |
912 |
Create portlet parameters |
912 |
Processing actions using form posts |
913 |
Examples |
913 |
JSR-286 Support |
914 |
Publishing and Processing Events |
914 |
Publishing an event (Event producer) |
914 |
Processing an event (event consumer) |
915 |
Initiate events in portlet (CFC) |
915 |
Using filters |
916 |
Run a ColdFusion portlet on WebSphere Portal Server |
917 |
Chapter 13: Working with Documents, Charts, and Reports |
919 |
Manipulating PDF Forms in ColdFusion |
919 |
About PDF forms |
919 |
Populating a PDF form with XML data |
920 |
Prefilling PDF form fields |
921 |
Nesting subforms |
922 |
Embedding a PDF form in a PDF document |
924 |
Extracting data from a PDF form submission |
925 |
Extracting data from a PDF submission |
925 |
Extracting data from an HTTP post submission |
926 |
Application examples that use PDF forms |
928 |
PDF submission example |
928 |
HTTP post example |
930 |
Embedded PDF form example |
931 |
Update PDF form example |
933 |
Assembling PDF Documents |
935 |
About assembling PDF documents |
935 |
Using shortcuts for common tasks |
937 |
Adding and removing watermark images |
937 |
Optimizing PDF documents |
941 |
Adding and deleting headers and footers from a PDF |
941 |
Extracting images and text |
942 |
Performing page level transformations |
942 |
Deleting pages from a PDF document |
942 |
Protecting PDF files |
942 |
Managing PDF document information |
944 |
Using the name attribute with write action |
944 |
Merging PDF documents |
944 |
Flattening forms created in Acrobat |
946 |
Linearizing PDF documents for faster web display |
946 |
Generating thumbnail images from PDF pages |
946 |
Using the Duplicate function to create versions of a PDF document |
948 |
Using DDX to perform advanced tasks |
948 |
Using DDX instructions with ColdFusion |
948 |
Adding a table of contents |
949 |
Adding headers and footers |
951 |
Formatting headers and footers |
951 |
Setting the initial view of a PDF document |
953 |
Adding text-string watermarks |
954 |
Extracting text from a PDF document |
955 |
FDF format support for AcroForms |
956 |
Application examples |
957 |
Merging documents based on a keyword search |
957 |
Using DDX instructions to create a book |
959 |
Applying a watermark to a form created in Acrobat |
960 |
Creating and Manipulating ColdFusion Images |
964 |
About ColdFusion images |
964 |
The ColdFusion image |
965 |
The cfimage tag |
965 |
Image functions |
966 |
Creating ColdFusion images |
966 |
Using the cfimage tag |
966 |
Using the ImageNew function |
967 |
Creating an image from a binary object |
967 |
Creating images from BLOB data |
968 |
Creating an image from a Base64 string |
969 |
Copying an image |
969 |
Duplicating an image |
969 |
Converting images |
970 |
Converting an image file |
970 |
Converting an image to a Base64 string |
971 |
Inserting an image as a BLOB in a database |
971 |
Verifying images |
971 |
Enforcing size restrictions |
971 |
Compressing JPEG images |
972 |
Manipulating ColdFusion images |
972 |
Adding borders to images |
972 |
Creating text images |
973 |
Drawing lines and shapes |
975 |
Setting drawing controls |
975 |
Resizing images |
976 |
Creating watermarks |
978 |
Writing images to the browser |
980 |
Application examples that use ColdFusion images |
980 |
Generating thumbnail images |
981 |
Generating a gallery of watermarked images |
982 |
Using CAPTCHA to verify membership |
984 |
Creating versions of an image |
985 |
Creating Charts and Graphs |
987 |
About charts |
987 |
Creating a basic chart |
988 |
Creating a chart with ColdFusion tags |
988 |
Creating a chart with the Report Builder wizard |
989 |
Charting data |
989 |
Charting individual data points |
990 |
Charting a query |
990 |
Charting a query of queries |
991 |
Combining a query and data points |
993 |
Charting multiple data collections |
994 |
Controlling chart appearance |
996 |
Using the default chart styles included with ColdFusion |
996 |
Creating your own chart styles |
1000 |
Creating charts: examples |
1002 |
Creating a bar chart |
1002 |
Creating a pie chart |
1003 |
Creating an area chart |
1005 |
Setting curve chart characteristics |
1007 |
Administering charts |
1007 |
Writing a chart to a variable |
1008 |
Write a chart to a variable and a file |
1008 |
Linking charts to URLs |
1009 |
Dynamically linking from a pie chart |
1009 |
Linking to JavaScript from a pie chart |
1012 |
Creating Reports and Documents for Printing |
1012 |
About printable output |
1012 |
Creating PDF and FlashPaper output with the cfdocument tag |
1013 |
Creating basic reports from HTML and CFML |
1014 |
Creating sections, headers, and footers |
1014 |
Using the cfdocument scope |
1016 |
Creating bookmarks in PDF files |
1016 |
Using cfhttp to display web pages |
1017 |
Using advanced PDF options |
1017 |
Saving printable reports in files |
1018 |
Creating reports with Crystal Reports (Windows only) |
1019 |
Creating Reports with Report Builder |
1020 |
About Report Builder |
1020 |
Report Builder and CFR files |
1020 |
RDS |
1020 |
Run time |
1020 |
Getting started |
1020 |
Setup Wizard |
1021 |
Add an RDS server |
1021 |
Designate a default RDS server |
1022 |
User interface usage, tips, and techniques |
1022 |
Report definition guidelines |
1023 |
Managing fonts with printable reports |
1023 |
Common reporting tasks and techniques |
1024 |
Grouping and group breaks |
1024 |
Defining, modifying, and using fields and input parameters |
1026 |
Using toolbox elements on report bands |
1027 |
Aligning elements |
1029 |
Using report styles |
1029 |
Previewing reports |
1030 |
Displaying page numbers |
1031 |
Using layered controls |
1031 |
Using links |
1032 |
Defining properties for report elements |
1032 |
Displaying reports |
1033 |
Using input parameters to pass variables and other data at run time |
1034 |
Using CFML in reports |
1035 |
Using charts |
1038 |
Using subreports |
1038 |
Creating a simple report |
1041 |
Create a report by using the Report Wizard |
1041 |
Changing the column heading labels |
1042 |
Using expressions to format data |
1043 |
Adding page breaks before group changes |
1044 |
Adding a calculated field |
1044 |
Adding and formatting fields |
1045 |
Adding images |
1045 |
Adding charts |
1047 |
Using Cascading Style Sheets |
1049 |
Overriding report settings at run time |
1051 |
Creating Slide Presentations |
1053 |
About ColdFusion presentations |
1053 |
Creating a slide presentation |
1054 |
Adding presenters |
1055 |
Adding slides |
1056 |
Creating content from source files |
1057 |
Creating content from HTML and CFML code |
1057 |
Sample presentations |
1058 |
Example 1 |
1058 |
Example 2 |
1060 |
Chapter 14: Using Web Elements and External Objects |
1063 |
Using XML and WDDX |
1063 |
About XML and ColdFusion |
1063 |
The XML document object |
1064 |
A simple XML document |
1064 |
Basic view |
1064 |
DOM node view |
1065 |
XML document structures |
1065 |
ColdFusion XML tag and functions |
1067 |
About case sensitivity and XML document objects |
1069 |
Using an XML object |
1069 |
Referencing the contents of an XML object |
1069 |
Assigning data to an XML object |
1070 |
Creating and saving an XML document object |
1072 |
Creating an XML document object using the cfxml tag |
1072 |
Creating an XML document object using the XmlNew function |
1073 |
Creating an XML document object from existing XML |
1073 |
Saving and exporting an XML document object |
1074 |
Modifying a ColdFusion XML object |
1074 |
Functions for XML object management |
1074 |
Treating elements with the same name as an array |
1075 |
XML document object management reference |
1076 |
Adding, deleting, and modifying XML elements |
1078 |
Using XML and ColdFusion queries |
1082 |
Validating XML documents |
1084 |
Transforming documents with XSLT |
1084 |
Extracting data with XPath |
1085 |
Example: using XML in a ColdFusion application |
1085 |
Moving complex data across the web with WDDX |
1089 |
Uses of WDDX |
1090 |
How WDDX works |
1091 |
Using WDDX |
1093 |
Using the cfwddx tag |
1093 |
Validating WDDX data |
1094 |
Using JavaScript objects |
1094 |
Converting CFML data to a JavaScript object |
1094 |
Transferring data from the browser to the server |
1095 |
Storing complex data in a string |
1097 |
Using Web Services |
1098 |
Web services |
1098 |
Accessing a web service |
1099 |
Basic web service concepts |
1099 |
Working with WSDL files |
1100 |
Creating a WSDL file |
1100 |
Accessing web services using Dreamweaver |
1101 |
Reading a WSDL file |
1101 |
Consuming web services |
1103 |
About the examples |
1103 |
Passing parameters to a web service |
1103 |
Handling return values from a web service |
1104 |
Using cfinvoke to consume a web service |
1104 |
Using CFScript to consume a web service |
1105 |
Consuming web services that ColdFusion does not generate |
1106 |
Calling web services from a Flash client |
1106 |
Catching errors when consuming web services |
1106 |
Handling inout and out parameters |
1107 |
Configuring web services in the ColdFusion Administrator |
1107 |
Data conversions between ColdFusion and WSDL data types |
1108 |
Consuming ColdFusion web services |
1108 |
Publishing web services |
1109 |
Creating components for web services |
1110 |
Specifying data types of function arguments and return values |
1110 |
Producing WSDL files |
1111 |
Using ColdFusion components to define data types for web services |
1114 |
Publishing document-literal style web services |
1115 |
Securing your web services |
1116 |
Best practices for publishing web services |
1117 |
Using request and response headers |
1118 |
Handling complex data types |
1120 |
Consuming web services that use complex data types |
1120 |
Publishing web services that use complex data types |
1124 |
Troubleshooting SOAP requests and responses |
1125 |
Viewing SOAP requests and responses |
1125 |
Using the TCP monitor |
1126 |
To run TCPMonitor: |
1126 |
Using ColdFusion Web Services |
1127 |
WorkFlow for a ColdFusion web service |
1128 |
Enable ColdFusion services |
1128 |
Access ColdFusion services using SOAP |
1128 |
Access ColdFusion services from a PHP server |
1128 |
Access a ColdFusion service from .NET |
1130 |
Example: Creating a PDF using .NET |
1130 |
Integrating J2EE and Java Elements in CFML Applications |
1130 |
About ColdFusion, Java, and J2EE |
1131 |
About ColdFusion and client-side JavaScript and applets |
1131 |
About ColdFusion and JSP |
1131 |
About ColdFusion and servlets |
1132 |
About ColdFusion and Java objects |
1132 |
About CFML variables and Java variables |
1133 |
Using JSP tags and tag libraries |
1133 |
Using a JSP tag in a ColdFusion page |
1133 |
Example: using the random tag library |
1134 |
Interoperating with JSP pages and servlets |
1134 |
Integrating JSP and servlets in a ColdFusion application |
1135 |
Examples: using JSP with CFML |
1137 |
Using Java objects |
1140 |
Using basic object techniques |
1140 |
Creating and using a simple Java class |
1142 |
Java and ColdFusion data type conversions |
1144 |
Handling Java exceptions |
1146 |
Examples: using Java with CFML |
1147 |
Using Microsoft .NET Assemblies |
1154 |
About ColdFusion and .NET |
1154 |
How .NET access works |
1155 |
Accessing .NET assemblies |
1156 |
Accessing local assemblies |
1156 |
Accessing remote assemblies |
1156 |
Using .NET classes |
1160 |
Instantiating objects and calling class constructors |
1161 |
Calling methods |
1161 |
Getting and setting fields |
1161 |
Converting between .NET and ColdFusion data types |
1162 |
Working with complex .NET data types |
1166 |
.NET Interoperability Limitations |
1169 |
Example applications |
1170 |
Example: Using a .NET class directly |
1170 |
Example: Using a custom class to access Microsoft Word |
1170 |
Advanced tools |
1172 |
Using the jnbproxy command |
1172 |
Passing data by reference and value |
1174 |
Determining and changing the .NET version |
1175 |
Running the .NET extension agent as an application |
1175 |
Integrating COM and CORBA Objects in CFML Applications |
1175 |
About COM and CORBA |
1175 |
About objects |
1176 |
About COM and DCOM |
1176 |
About CORBA |
1176 |
Creating and using objects |
1177 |
Creating objects |
1177 |
Using properties |
1177 |
Calling methods |
1177 |
Calling nested objects |
1178 |
Getting started with COM and DCOM |
1178 |
COM requirements |
1178 |
Registering the object |
1178 |
Finding the component ProgID and methods |
1179 |
Creating and using COM objects |
1179 |
Connecting to COM objects |
1180 |
Setting properties and executing methods |
1180 |
General COM object considerations |
1181 |
Accessing Complex COM Objects using Java proxies |
1183 |
Using the Application Scope to improve COM performance |
1185 |
Getting started with CORBA |
1188 |
Creating CORBA objects |
1189 |
Using a naming service |
1189 |
Using CORBA objects in ColdFusion |
1189 |
Using CORBA interface methods in ColdFusion |
1190 |
Using IDL types with ColdFusion variables |
1191 |
Handling exceptions |
1194 |
CORBA example |
1194 |
Chapter 15: Using External Resources |
1197 |
Sending and Receiving E-Mail |
1197 |
Using ColdFusion with mail servers |
1197 |
How ColdFusion sends mail |
1197 |
Error logging and undelivered messages |
1197 |
Sending e-mail messages |
1198 |
Configure ColdFusion for e-mail |
1198 |
Sending SMTP e-mail with the cfmail tag |
1198 |
Sending HTML e-mail |
1199 |
Sending multipart mail messages |
1200 |
Sample uses of the cfmail tag |
1200 |
Sending form-based e-mail |
1200 |
Sending query-based e-mail |
1201 |
Sending e-mail to multiple recipients |
1201 |
Digitally signing e-mail |
1204 |
Using the cfmailparam tag |
1204 |
Attaching files to a message |
1204 |
Including images in a message |
1205 |
Adding a custom header to a message |
1205 |
Receiving e-mail messages |
1206 |
Using the cfpop tag |
1206 |
The cfpop query variables |
1207 |
Handling POP mail |
1207 |
Specifying the message or messages |
1207 |
Retrieving message headers |
1207 |
Retrieving messages |
1209 |
Retrieving messages and attachments |
1210 |
Deleting messages |
1211 |
Interacting with Microsoft Exchange Servers |
1212 |
Using ColdFusion with Microsoft Exchange servers |
1212 |
Managing connections to the Exchange server |
1213 |
Enabling access to the Exchange server |
1214 |
Using persistent connections |
1215 |
Using transient connections |
1216 |
Accessing delegated accounts |
1216 |
Creating Exchange items |
1217 |
Getting Exchange items and attachments |
1219 |
Getting and using folder names |
1219 |
Getting items |
1221 |
Getting item attachments |
1222 |
Displaying images inline |
1224 |
Modifying Exchange items |
1226 |
Modifying calendar, contact, and task items |
1226 |
Setting mail attributes |
1228 |
Moving mail between folders |
1229 |
Deleting Exchange items and attachments |
1229 |
Working with meetings and appointments |
1230 |
Working with meeting notices and requests |
1230 |
Specifying Calendar recurrence |
1233 |
Interacting with Remote Servers |
1238 |
About interacting with remote servers |
1238 |
Using cfhttp to interact with the web |
1239 |
Using the cfhttp Get method |
1239 |
Creating a query object from a text file |
1241 |
Create a query from a text file |
1241 |
Using the cfhttp Post method |
1242 |
Pass variables to a ColdFusion page |
1242 |
View the variables |
1244 |
Return results of a CGI program |
1245 |
Performing file operations with cfftp |
1245 |
Open an FTP connection and retrieve a file listing |
1245 |
Caching connections across multiple pages |
1247 |
Connection actions and attributes |
1248 |
Managing Files on the Server |
1248 |
About file management |
1249 |
Using cffile |
1249 |
Uploading files |
1249 |
Moving, renaming, copying, and deleting server files |
1253 |
Reading, writing, and appending to a text file |
1254 |
Read a text file |
1254 |
Create a form in to capture data for a text file |
1255 |
Write a text file |
1255 |
Append a text file |
1256 |
Using cfdirectory |
1256 |
Returning file information |
1256 |
Using cfcontent |
1257 |
About MIME types |
1257 |
Changing the MIME content type with cfcontent |
1258 |
Using Event Gateways |
1259 |
About event gateways |
1259 |
Using event gateways |
1260 |
Event gateway terms and concepts |
1261 |
How event gateway applications work |
1262 |
About developing event gateway applications |
1263 |
Event gateway facilities and tools |
1263 |
Standard event gateways |
1263 |
Development tools and example code |
1264 |
The ColdFusion gateway directory |
1264 |
The eventgateway.log file |
1265 |
ColdFusion Administrator event gateway pages |
1265 |
Structure of an event gateway application |
1266 |
The role of the listener CFC |
1266 |
The role of ColdFusion pages |
1266 |
The role of the ColdFusion Administrator |
1266 |
The role of the GatewayHelper object |
1266 |
Configuring an event gateway instance |
1267 |
Developing an event gateway application |
1267 |
Event gateway application models |
1267 |
Sending information to the event gateway |
1267 |
Developing event gateway listener CFCs |
1268 |
Sending a message using the SendGatewayMessage function |
1272 |
Using the GatewayHelper object |
1273 |
Using the event gateway error log file |
1273 |
Deploying event gateways and applications |
1274 |
Deploy an event gateway application |
1274 |
Using the CFML event gateway for asynchronous CFCs |
1274 |
CFML event gateway data structure |
1275 |
Using the CFML gateway |
1275 |
Example: logging messages |
1276 |
Using the example event gateways and gateway applications |
1276 |
Example event gateways |
1276 |
Menu example application |
1280 |
Using the Instant Messaging Event Gateways |
1281 |
About ColdFusion and instant messages |
1282 |
About XMPP |
1282 |
About IBM Lotus Instant Messaging (Sametime) |
1282 |
About IM application development and deployment |
1282 |
How the IM event gateway and provider interact |
1283 |
Outgoing message handling |
1283 |
IMGatewayHelper methods |
1284 |
Configuring an IM event gateway |
1284 |
Handling incoming messages |
1285 |
Sending outgoing messages |
1286 |
Sample IM message handling application |
1287 |
Phone directory lookup CFC |
1287 |
Status and request-handling CFC |
1289 |
Using the GatewayHelper object |
1292 |
Gateway configuration information and statistics methods |
1292 |
Gateway online status methods |
1292 |
Gateway buddy management methods |
1292 |
Gateway permission management methods |
1293 |
GatewayHelper example |
1293 |
Using the SMS Event Gateway |
1297 |
About SMS and ColdFusion |
1297 |
About SMS |
1298 |
About SMS application development and deployment |
1299 |
How the SMS event gateway and provider SMSC interact |
1300 |
Configuring an SMS event gateway |
1302 |
Handling incoming messages |
1303 |
CFEvent.Data.esmClass field |
1304 |
CFEvent.Data.registeredDelivery field |
1305 |
Incoming message handling example |
1305 |
Sending outgoing messages |
1305 |
The submit command |
1305 |
The submitMulti command |
1306 |
The data command |
1307 |
Controlling SMS message sending and response |
1308 |
ColdFusion SMS development tools |
1310 |
SMS test server |
1310 |
SMS client simulator |
1311 |
Sample SMS application |
1312 |
Using the FMS event gateway |
1313 |
About Flash Media Server |
1314 |
How ColdFusion and Flash Media Server interact through the FMS gateway |
1314 |
Modifying data in the Flash client |
1314 |
Modifying data in a ColdFusion application |
1315 |
Application development and deployment process |
1315 |
Configuring an FMS event gateway |
1316 |
FMS event gateway GatewayHelper class methods |
1316 |
Data translation |
1316 |
Using the Data Services Messaging Event Gateway |
1316 |
About Flex and ColdFusion |
1317 |
How ColdFusion and Flex interact |
1317 |
Application development and deployment process |
1317 |
Configuring a Data Services Messaging event gateway |
1318 |
Sending outgoing messages |
1318 |
Sending outgoing message example |
1319 |
Handling incoming messages |
1319 |
New methods introduced in ColdFusion 9.0.1 |
1320 |
Data translation |
1320 |
Using the Data Management Event Gateway |
1321 |
About ColdFusion and Flex |
1321 |
How ColdFusion and Flex interact |
1321 |
Application development and deployment process |
1322 |
Configuring a Data Management event gateway |
1322 |
Sending messages |
1323 |
Example |
1323 |
Data translation |
1324 |
Creating Custom Event Gateways |
1325 |
Event gateway architecture |
1325 |
Event gateway elements |
1326 |
Gateway interface |
1326 |
GatewayServices class |
1327 |
CFEvent class |
1327 |
GatewayHelper class |
1328 |
Gateway configuration file |
1329 |
Gateway development classes |
1329 |
Building an event gateway |
1330 |
Class constructor |
1330 |
Providing Gateway class service and information routines |
1332 |
Starting, stopping, and restarting the event gateway |
1332 |
Responding to incoming messages |
1334 |
Responding to a ColdFusion function or listener CFC |
1336 |
Logging events and using log files |
1337 |
Deploying an event gateway |
1338 |
Deploy an event gateway type in ColdFusion |
1338 |
Configure an event gateway instance |
1339 |
Using the ColdFusion Extensions for Eclipse |
1339 |
About the ColdFusion Extensions for Eclipse |
1339 |
Eclipse RDS Support |
1340 |
Configuring RDS |
1340 |
Using the RDS Fileview |
1341 |
Using the RDS Dataview |
1341 |
Using Visual Query Builder |
1342 |
ColdFusion/Flex Application wizard |
1343 |
Designing your application |
1343 |
Specifying form layout |
1344 |
Tips for creating applications with the ColdFusion/Flex Application wizard |
1345 |
ColdFusion/Ajax Application wizard |
1346 |
ActionScript to CFC wizard |
1346 |
Use the ActionScript to CFC wizard |
1346 |
CFC to ActionScript wizard |
1346 |
Use the CFC to ActionScript wizard |
1346 |
RDS CRUD wizard |
1347 |
Use the RDS CRUD wizard |
1347 |
Services Browser |
1348 |
Use the Services Browser |
1348 |
Browsing components |
1348 |