您的位置: 首页 > 技术文档 > 网络编程 > MacromediaColdFusionMX开发者
Coldfusion MX技巧精华收集(1) 回到列表 ASP.NET 中的随机密码生成
 MacromediaColdFusionMX开发者

作者:MJking 时间: 2003-04-27 文档类型: 来自:蓝色理想

第 1 页 MacromediaColdFusionMX开发者
第 2 页 第二期:基础管理操作以及入门程序
第 3 页 第三期:ColdFusionMX编程入门
第 4 页 第四期:ColdFusionMX Basic Tag编程
第 5 页 第五期:ColdFusionMX中的循环

第三期:ColdFusionMX编程入门


序言

      上一期我们讲解了ColdFusionMX的基本管理操作,并且熟悉了ColdFusionMX的管理界面布局,而且上一期最后我们演示了两个非常短小的coldfusion程序,这一期会详细讲解coldfusion的入门编程,其中包括在asp中对于初学者而言非常令人头疼的数据库操作。

      在每次开始进入正题之前,每一期的序言内容都会为大家介绍一些关于ColdFusion发展或者其他一些具有价值的小知识,第一期为大家介绍了Macromedia MX产品的策略和coldfusionMX在该产品策略中的位置,而第二期则为大家介绍了ColdfusionMX的版本差异,那么这一期的序言让我们了解一些什么呢?关于ColdFusion的发展。

      1995年是个值得纪念的年代,因为发生在那个年月的事情已经是上个世纪的事情了,而且不单单是这么多。如果老资历的开发人员回忆一下的话,那个时候的webhtmlcgi称雄的天下,静态页面是html,而动态程序则90%以上是cgi,在我印象中便是如此。美国的一对兄弟allire,在为自己的客户解决数据库访问的问题时,感觉到了cgi程序在编写和维护上的难度是不能容忍的困难。于是,具有计算机天赋的Jeremy Allire便在1995年编写了一种快速响应且易于编写的动态脚本语言,叫做coldfusion,一经推出,便震撼整个网络行业。之后,兄弟俩看到了coldfusion的发展前途,便成立了Allire公司(后来被macromedia收购)。之后的几年,全球500强中的一半都采用了coldfusion来解决公司不同情况的问题。通过不断的版本修改和开发者的不断壮大,Coldfusion后来发展成为业界知名的企业级解决方案的开发首选。现在,为了产品线的统一,为了工业标准的统一,为了完全兼容Java平台,Macromedia发布了ColdfusionMX。而众位以前经常看到的Neo这个词则是macromedia对于使用新一代coldfusion开发行业解决方案的编码名称。

      如果大家看到neo这个词,就不难理解Macromedia对于coldfusionMX的殷切期望,大名鼎鼎的电影《黑客帝国》中的男主人公的名字也叫做Neo。以上的相似之处只是作者本人的推测而已了。好,不多聊了,进入我们这一期的正题。


第一部分 ColdFusionMX Basic tag编程

   作者本人看过很多关于中英文的教材,认为最有效的一种方式就是参照实例的代码段来配合讲解的过程最为优秀。所以,对于每一个coldfuiosntag,作者不打算一一赘述,各位朋友可以通过查看一些reference来了解所有的tag功能和语法。关于标准的文档,请在安装coldfusionmx之后参考administrator管理界面里包含的官方文档。

      那么作者采用一种什么样的方式来帮助想学习ColdFusionMX的朋友快速的进入动手编写代码的境界呢?如果是采用把所有的Tag全部都按照顺序讲解,那么会造成学习者兴趣不同程度的下降。各位可能在前面的教程中知道了Macromedia MXDreamweaverMXColdFusionMX之间的关系。DreamweaverMX的推出就是为开发ColdFusionMX的应用提供一个完善的工具,因为它集成了以前ColdFusion StudioUltraDevDreamweaverHomeSite四款产品的主要功能于一身,所以,只用DreamweaverMX来制作静态页面,可以说只用到了不到三分之一的功能。那么,本系列的教程就从DreamweaverMX中集成的开发ColdfusionMX程序功能入手,让大家先了解如何在DreamweaverMX中开发ColdFusionMX程序,然后再提供给大家使用ColdFusionMX开发高级应用的技巧。

打开DreamweaverMX的界面可以看到处于右上方快捷Object面板,而其中会有如下三个Object面板是CFML BasicCFML FLOWCFML Advanced,而本教程的讲解就从CFML Basic开始。

CFML Basic被选中后会出现如下的图标排列:

那么从左到右的图标依次表示CfServerVariablesCFQueryCFOutputCFInsertCFUpdateCFIncludeCFLocationCFSetCFParam、注释、变量符号、CFScript。我们的教程也从CFSet开始。因为它是ColdFusionMX中最简单也是最重要的一个Tag

单击 图标,会出现如下代码段:<cfset >,这个cfset的标签就是Coldfusion中设置变量的特有标签。在ColdFusion中,每个特有的由CFMX Server来负责解释的Tag都用cf开头,如cfsetcfquery等。而cfset的标准语法格式是:

等号左边表示变量名称,等号右边是变量值。很简单,如果你要创建一个叫做var1的变量,赋值为hello,friend!,那么你需要这样写出你的程序代码:

<cfset var1="Hello,friend!">

那么你要设置中文,就这样写好了:

<cfset var1="你好,朋友!">

那么,当你为你的变量设置一个数值时,就不需要在变量值的两侧加上双引号了。比如:

<cfset PI=3.1415926>。另外,cfset这个tag的作用还可以进行数值的运算和变量的动态转移。进行数值计算和变量跳转的编码方式也非常的简单,请看下面的代码片断:

<cfset PI=3.1415926>

<cfset number_1=PI*10>

<cfset number_2=number_1>

我想有一点点程序经验的朋友对上面代码的理解都应该不成问题,它执行了一个PI值的赋值,以及对PI变量的乘法,结果赋值给number_1,最后,number_1变量的结果指向变量number_2

另外,Cfset还有另外一种用法,让我们来看看:

<cfset var1="Test">

<cfset "#var1#"="hello!">

<cfoutput>#test#</cfoutput>

结果输出是什么?答案是:hello!这个字符串。原因很简单,hello!这个字符串付给了一个叫做"#var1#"的变量,这个变量等价于test,也就是test这个字符串自动变为一个变量名称。

      单击 图标,叹号表示的tagcfparam,这个tag的基本功能和cfset是一致的,也是为变量赋值,那么它与cfset有什么区别呢?区别就是检查一个变量是否存在,若存在,则给予一个默认值。看看点击它以后出现的属性设置窗口:

在上图中可以看到cfparam具有三个属性,那就是nameDefaultTypename表示变量的名称,Default表示变量的初始值,默认为空,Type表示变量的类型,CFMXcfparam设置了如下类型:

变量类型已经涵盖了我们用ColdFusion进行编码是可能用到的变量类型。Cfparam这个Tag的信息可以点击属性设置窗口中的tag info来了解详细的使用方法,以后其他的tag也可以在属性窗口中通过点击tag info来了解。那么,设置完cfparam之后,出现的代码行如下:

<cfparam name="URL.id" default="1" type="any">

这行代码等价于:

<cfif not definede(URL.id)>

<cfset URL.id=1>

</cfif>

判断URL.id这个变量是否存在,如果不存在,那么给一个值1。这个功能经常在开发注册和验证的模块中配合cfform这个tag使用,后面的教程就会看到。

      单击 图标,就是在你的cfm页面里面加入coldfusion特有的注释符号:<!--- content --->,例如:

<!---

设置一个变量名字叫做var_hello

--->

上面这段代码就在.cfmcf服务器解释的过程中被忽略,良好的注释习惯是开发大规模复杂应用的必要,而且也是一个优秀的开发者应该具备的素质。

      单击 图标,会出现以后大家经常在.cfm文件中遇到的##标记,那么它用来显示coldfusion中的变量结果,就像前面用到的程序:

<cfset var1="Test">

<cfoutput>#var1#</cfoutput>

就是将var1变量的值显示出来。

      单击 图标,则会在页面中添加特有的coldfusion Server variableDreamweaverMX中弹出的界面是:


CFMX支持的Server variable有以下种类:

下面就把Server variables中经常用到的变量做简要介绍。Server variablescoldfusion中被成为CGI variables。它使用了Server端的通用网关接口变量。而CGI是很普遍的一种脚本方式,ColdfusionMX也支持CGI-Bin特有的一些变量格式。

HTTP_REFERER:判断浏览者来自哪个URL

HTTP_USER_AGENT:判断使用的浏览器类型,目前流行的几款浏览器都可以识别。

QUERY_STRING:就是.cfm?后面参数附带的信息。

REMOTE_ADDR:浏览者的IP地址

其他的变量各位可以通过查看官方提供的Reference来了解,这里就不再赘述。

让我们来看这段代码:

<cfoutput>

你好!

您的浏览器是#CGI.HTTP_USER_AGENT#

</cfoutput>

结果显示是作者本人的浏览器版本:

您的浏览器是Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

单击 图标,则是使用coldfusion中最为常用的tagcfquery。这个标签用来完成数据库查询。

在开始说明数据库查询之前,作者本人对广大开发者提一个醒,希望各位用coldfusionmx作开发的时候,尽量避免使用accessmysql,因为这两款数据库与coldfusionmx进行信息交互会出现或多或少的中文问题,希望各位使用SQL Server数据库或者oracle。当然使用access或者mysql进行英文处理当然没有问题。早期的coldfusion5在处理数据库上,access等小型数据库不存在中文问题,可能由于coldfusion核心代码被重新编写,jdbc对应的中文问题就出来了,但是相信macromedia不久就会修正这个问题。作者本人在使用cfquery的时候,出于讲解方便,会使用access数据库,但是后续的用到中文更改数据库记录的操作都会转向SqlServer,请大家注意。

如何解决中文问题,请各位参考这里的信息:

http://www.flashempire.net/showthread.php?s=1871e826d3945c355df09e5ef8190a6e&threadid=120844

点击cfquery标签之后dwmx出现的界面是这样的:

上图就是关于设置cfquery的窗口,图形左边的红色矩形内的三个部分可以对cfquery进行不同细节程度的设置,general是我们最长用到的设置,connection则是连接设置,一般connection的部分属性直接就可以通过cfmx administrator中的datasource设定来确定了。Persistent Queries表示设定一个持续的可以从缓存里调用的查询。下面是cfquery的标准语法:

其中,name属性是必须要有的,就是给你定义的cfquery一个名字,以后其他地方要调用的时候就会用到这个name属性值找到相对的queryDatasource则是该查询来自的数据源的名称,而数据源的名称则是通过设定cfmx administrator的。这里有必要插入一段关于设置数据源的方法。打开cfmx administrator管理界面,点击Data & Services里的data Sources,然后看到管理界面的右侧区域出现cfmx administrator已经定义好了的数据源,截图如下:

上图表示1的部分数据库driver用的是microsoft access,而被2框选的部分则是两个透过windows odbc设置的数据源名称,数据驱动用的是windowsodbc socket。而被3框选中的区域则是使用Microsoft SQL Server驱动定义的数据源。设置access数据库是一件非常容易的事情,首先你的access数据库可以放在你本地硬盘的任何一个位置,并不是非要放在webserver的某个目录之下,然后,从上图中,可以从add new data source中填写一个你想要的数据源名称,名称只要是标准的字符串就可以了,不能用数字开头。然后,从Driver的下拉选项中,选择Microsoft access这个驱动,然后点击add,就进入了详细设置页面:

基本上,设置access数据库不需要设置什么高级选项,但是如果有需要,比如限制对数据库的操作等等,可以点击show advanced settings来修改。上图中的cfsnippets就是安装完coldfusionmx后的默认案例数据库,就像装完access这个软件后,自动就有northwind这个库一样。下面的cfquery例子我们就以cfsnippets为主。而sql server只是多加了几步的设置,首先,在设置sqlserver的数据源时要填入sql serverdatabase name,其次,要输入sql server所在的ip,本机就用localhost就可以,最重要的是,必须输入一个能够有访问该数据库的权限的用户名和密码,作者这里推荐在sql server里设置好特定的用户名和密码,而不是使用默认的sa帐号。

      回到cfquery属性说明,其他的属性则不是必须具备的属性。关于属性的说明可以参考coldfusionMx自带的reference 手册。

      让我们来看一段简单的cfquery的代码:

<CFQUERY NAME="test" DATASOURCE="cfsnippets">

SELECT      *

FROM         Employees

ORDER BY  Emp_ID

</CFQUERY>

<cfoutput query="test">

#Emp_ID# | #FirstName# | #LastName# | #EMail# | #Phone# | #Department# <br>

</cfoutput>

结果是什么?看看下面的截图:

令人惊奇的是可以循环输出!!!数数cf代码,只有几行,而asp,jsp,php要完成同样的效果,需要写几行代码呢?想必用过的人都知道。

再来看一个复杂点的cfquery代码:

<cfquery name="queryname" datasource="cfsnippets">

   SELECT *

   FROM Employees

   WHERE LastName = 'Peterson'

</cfquery>

<cfoutput>#queryname.FirstName# <br>

          #queryname.LastName# <br>

          #queryname.Department# <br>

           #queryname.recordcount# <br>

           #queryname.currentrow# <br>

           #queryname.columnlist#

</cfoutput>

<cfquery Name="queryname" datasource="cfsnippets">

   SELECT *

   FROM Employees

</cfquery>

<table border="1">

<tr>

   <td> Last Name </td>

   <td> First Name </td>

   <td> Department </td>

</tr>

<cfoutput query="queryname">

<tr>

   <td>#LastName#</td>

   <td>#FirstName#</td>

   <td>#Department#</td>

</tr>

</cfoutput>

</table>

那么结果如下截图:

我们首先是select出一段关于perterson这个雇员的相关信息,然后再列出所有雇员的信息。其次是用queryname.recordcount查看符合的记录数,用queryname.currentrow查看当前的记录是在数据库中的第几条,用queryname.columnlist表示数据库的列的一个排序。最后我们还看到,几行的代码让整个雇员表中的数据在html table中循环输出,是不是各位已经感觉到coldfusion的简单快捷了?以后的教程中还有更令人吃惊的功能,包括内置的全文检索引擎,GeneratorData Driven flashimage),cf componentweb services等功能的讲解。

下一期的教程接着为大家讲解cf basic tag编程,包括操作数据库的cfinsert,cfupdatecfincludecflocation标签的使用,还要讲解如何编写coldfusion founction。好了,各位,咱们下一期见。


第二部分 论坛coldfusion探讨

如何得到开发者版本的ColdfusionMX

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=116459

ColdFusionMX第一个安全漏洞

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=121286

ColdFusionMX企业版标准文档

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=121621

Coldfusino MX 学习心得

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=120616

Cfmx 中文问题解决方法

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=120844

如何改变ColdFusionMX的端口

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208&threadid=118258


第三部分 资源列表

相关于Macromedia MX系列知识的了解请访问:

http://www.macromedia.com/

http://www.macromediachina.com/

http://www.flashempire.net/

http://www.blueidea.com/

关于Macromedia 产品策略分析中文文章请访问:

http://61.156.17.126/efe_news/newsread.php?id=123

下载Macromedia MX系列产品请访问:

http://www.macromedia.com/software/trial_download/

* Macromedia ColdFusion MXJRun4可以免费在官方网站得到开发者版本,同商业版本相比,只是限制了开发者版本的ip访问限制,服务器高级报表工具,服务器均衡负载功能等一些高级功能的使用。

注释:

JRun4ColdFusion MXFlash MXDreamweaver MXFireworks MX都是Macromedia公司的注册产品。

出处:蓝色理想
责任编辑:蓝色

上一页 第二期:基础管理操作以及入门程序 下一页 第四期:ColdFusionMX Basic Tag编程

◎进入论坛网络编程版块参加讨论

作者文章 更多作者文章
cfquery简单的侦测效率方法
Flash的Debug程序AdminTool
ColdFusionMX技术课程第三期
ColdFusionMX技术课程第二期
ColdFusionMX技术课程第一期
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:3/51个记录/页 转到 页 共5个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2