attributes
Struct
a
string1,2,3,4
b
string5

attributes.a: 1,2,3,4

attributes.a[3]: 3

params
Map (org.apache.catalina.util.ParameterMap)
stringa
Native Array (java.lang.String[])
1
string1
2
string2
3
string3,4
stringb
Native Array (java.lang.String[])
1
string5

params.a: 1

params.a
Native Array (java.lang.String[])
1
string1
2
string2
3
string3,4

params.a[3]: 3,4


<cfif cgi.query_string EQ "">
	<cflocation url="?a=1&a=2&a=3,4&b=5" addtoken="false" />
</cfif>

<!--- get rid of CF's silly url/form distinction --->
<cfset attributes = {} />
<cfset structAppend(attributes, form) />
<cfset structAppend(attributes, url) />

<cfoutput>
<cfdump var="#attributes#" label="attributes" />
<p>attributes.a: #attributes.a#</p>
<p>attributes.a[3]: #listGetAt(attributes.a, 3)#</p>
<cfdump var="#getPageContext().getRequest().getParameterMap()#" label="params" />
<p>params.a: #getPageContext().getRequest().getParameter('a')#</p>
<cfdump var="#getPageContext().getRequest().getParameterValues('a')#" label="params.a" />
<cfset a = getPageContext().getRequest().getParameterValues('a') />
<p>params.a[3]: #a[3]#</p>

<hr />
<pre>#htmlEditFormat(fileRead(getCurrentTemplatePath()))#</pre>
<style>
p { font-family: monospace; }
pre { background-color:##eee;border:1px solid ##999;border-left-width:3px;padding:10px; }
</style>
</cfoutput>