Creating the Application.cfm page
275
You can also use the Application.cfm page to develop more sophisticated application-wide error-
handling techniques, including error-handling methods that provide specific messages or use
structured error-handling techniques.
For more information on error pages and error handling, see
Chapter 14, “Handling Errors,”
on page 285
.
Example: an Application.cfm page
The following example shows a sample Application.cfm file that uses several of the techniques
typically used in Application.cfm pages. For the sake of simplicity, it does not show login
processing; for a login example, see
Chapter 16, “Securing Applications,” on page 345
.
<!--- Set application name and enable Client and Session variables --->
<cfapplication name="Products"
clientmanagement="Yes"
clientstorage="myCompany"
sessionmanagement="Yes">
<!--- Set page processing attributes --->
<cfsetting showDebugOutput="No" >
<!--- Set custom global error handling pages for this application--->
<cferror type="request"
template="requesterr.cfm"
mailto="[email protected]">
<cferror type="validation"
template="validationerr.cfm">
<!--- Set the Application variables if they aren’t defined. --->
<!--- Initialize local app_is_initialized flag to false --->
<cfset app_is_initialized = False>
<!--- Get a readonly lock --->
<cflock scope="application" type="readonly" timeout=10>
<!--- Read init flag and store it in local variable --->
<cfset app_is_initialized = IsDefined("Application.initialized")>
</cflock>
<!--- Check the local flag --->
<cfif not app_is_initialized >
<!--- Application variables are Not initialized yet.
Get an exclusive lock to write scope --->
<cflock scope="application" type="exclusive" timeout=10>
<!--- Check the Application scope initialized flag since another request
could
have set the variables after this page released the read-only lock. --->
<cfif not IsDefined("Application.initialized") >
<!--- Do initializations --->
<cfset Application.ReadOnlyData.Company = "MyCompany" >
<!--- and so on --->
<!--- Set the Application scope initialization flag --->
<cfset Application.initialized = "yes">
</cfif>
</cflock>
</cfif>
<!--- Set a Session variable.--->
<cflock timeout="20" scope="Session" type="exclusive">
<cfif not IsDefined("session.pagesHit")>
<cfset session.pagesHit=1>
<cfelse>
Summary of Contents for COLDFUSION MX 61-DEVELOPING COLDFUSION MX
Page 1: ...Developing ColdFusion MX Applications...
Page 22: ...22 Contents...
Page 38: ......
Page 52: ...52 Chapter 2 Elements of CFML...
Page 162: ......
Page 218: ...218 Chapter 10 Writing and Calling User Defined Functions...
Page 250: ...250 Chapter 11 Building and Using ColdFusion Components...
Page 264: ...264 Chapter 12 Building Custom CFXAPI Tags...
Page 266: ......
Page 314: ...314 Chapter 14 Handling Errors...
Page 344: ...344 Chapter 15 Using Persistent Data and Locking...
Page 349: ...About user security 349...
Page 357: ...Security scenarios 357...
Page 370: ...370 Chapter 16 Securing Applications...
Page 388: ...388 Chapter 17 Developing Globalized Applications...
Page 408: ...408 Chapter 18 Debugging and Troubleshooting Applications...
Page 410: ......
Page 426: ...426 Chapter 19 Introduction to Databases and SQL...
Page 476: ...476 Chapter 22 Using Query of Queries...
Page 534: ...534 Chapter 24 Building a Search Interface...
Page 556: ...556 Chapter 25 Using Verity Search Expressions...
Page 558: ......
Page 582: ...582 Chapter 26 Retrieving and Formatting Data...
Page 668: ......
Page 734: ...734 Chapter 32 Using Web Services...
Page 760: ...760 Chapter 33 Integrating J2EE and Java Elements in CFML Applications...
Page 786: ...786 Chapter 34 Integrating COM and CORBA Objects in CFML Applications...
Page 788: ......