there is more that one way to do that; here is my way that I think is quite code efficient:
<!--- application.cfm --->
<!--- make the session, application, and client management available to the application --->
<cfapplication
name="ApplicationName"
sessionmanagement="Yes"
setclientcookies="Yes"
sessiontimeout="#CreateTimeSpan(0,0,20,0)#"
applicationtimeout="#CreateTimeSpan(2,0,0,0)#"
clientmanagement="Yes">
<!--- set the session variables... --->
<!--- I create them as a structure because I can easily then read them and put them in any other scope --->
<cfif NOT IsDefined("session.stSessionData"

>
<cflock scope="session" timeout="30" throwontimeout="No" type="exclusive">
<cfscript>
session.stSessionData = StructNew();
StructInsert(session.stSessionData, "message", "Hi you!", 1);
</cfscript>
</cflock>
</cfif>
<!--- loop the structure and dynamically create variables using the the key values and put them in the request scope --->
<cflock scope="session" timeout="30" throwontimeout="Yes" type="readonly">
<cfloop collection="#session.stSessionData#" item="i">
<cfscript>
"request.#i#" = session.stSessionData["#i#"];
</cfscript>
</cfloop>
</cflock>
<!--- any other template controled by the above application template such as index.cfm --->
<cfoutput>#request.message#</cfoutput>
Sylvano
dsylvano@hotmail.com