濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > ColdFusionMX 編程指南 ColdFusionMX編程入門

ColdFusionMX 編程指南 ColdFusionMX編程入門

熱門標(biāo)簽:邯鄲外呼調(diào)研線路 北京語音電銷機(jī)器人價(jià)格 浦東上海400開頭的電話申請 樂昌電話機(jī)器人 武漢呼叫中心外呼系統(tǒng)線路商 電話機(jī)器人電話卡封號(hào)怎么辦 真人語音電銷機(jī)器人系統(tǒng) 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 買了外呼系統(tǒng)不想用了怎么辦

第三期:ColdFusionMX編程入門


序言

      上一期我們講解了ColdFusionMX的基本管理操作,并且熟悉了ColdFusionMX的管理界面布局,而且上一期最后我們演示了兩個(gè)非常短小的coldfusion程序,這一期會(huì)詳細(xì)講解coldfusion的入門編程,其中包括在asp中對(duì)于初學(xué)者而言非常令人頭疼的數(shù)據(jù)庫操作。

      在每次開始進(jìn)入正題之前,每一期的序言內(nèi)容都會(huì)為大家介紹一些關(guān)于ColdFusion發(fā)展或者其他一些具有價(jià)值的小知識(shí),第一期為大家介紹了Macromedia MX產(chǎn)品的策略和coldfusionMX在該產(chǎn)品策略中的位置,而第二期則為大家介紹了ColdfusionMX的版本差異,那么這一期的序言讓我們了解一些什么呢?關(guān)于ColdFusion的發(fā)展。

      1995年是個(gè)值得紀(jì)念的年代,因?yàn)榘l(fā)生在那個(gè)年月的事情已經(jīng)是上個(gè)世紀(jì)的事情了,而且不單單是這么多。如果老資歷的開發(fā)人員回憶一下的話,那個(gè)時(shí)候的web是html和cgi稱雄的天下,靜態(tài)頁面是html,而動(dòng)態(tài)程序則90%以上是cgi,在我印象中便是如此。美國的一對(duì)兄弟allire,在為自己的客戶解決數(shù)據(jù)庫訪問的問題時(shí),感覺到了cgi程序在編寫和維護(hù)上的難度是不能容忍的困難。于是,具有計(jì)算機(jī)天賦的Jeremy Allire便在1995年編寫了一種快速響應(yīng)且易于編寫的動(dòng)態(tài)腳本語言,叫做coldfusion,一經(jīng)推出,便震撼整個(gè)網(wǎng)絡(luò)行業(yè)。之后,兄弟倆看到了coldfusion的發(fā)展前途,便成立了Allire公司(后來被macromedia收購)。之后的幾年,全球500強(qiáng)中的一半都采用了coldfusion來解決公司不同情況的問題。通過不斷的版本修改和開發(fā)者的不斷壯大,Coldfusion后來發(fā)展成為業(yè)界知名的企業(yè)級(jí)解決方案的開發(fā)首選?,F(xiàn)在,為了產(chǎn)品線的統(tǒng)一,為了工業(yè)標(biāo)準(zhǔn)的統(tǒng)一,為了完全兼容Java平臺(tái),Macromedia發(fā)布了ColdfusionMX。而眾位以前經(jīng)常看到的Neo這個(gè)詞則是macromedia對(duì)于使用新一代coldfusion開發(fā)行業(yè)解決方案的編碼名稱。

      如果大家看到neo這個(gè)詞,就不難理解Macromedia對(duì)于coldfusionMX的殷切期望,大名鼎鼎的電影《黑客帝國》中的男主人公的名字也叫做Neo。以上的相似之處只是作者本人的推測而已了。好,不多聊了,進(jìn)入我們這一期的正題。


 

第一部分 ColdFusionMX Basic tag編程

   作者本人看過很多關(guān)于中英文的教材,認(rèn)為最有效的一種方式就是參照實(shí)例的代碼段來配合講解的過程最為優(yōu)秀。所以,對(duì)于每一個(gè)coldfuiosn的tag,作者不打算一一贅述,各位朋友可以通過查看一些reference來了解所有的tag功能和語法。關(guān)于標(biāo)準(zhǔn)的文檔,請?jiān)诎惭bcoldfusionmx之后參考administrator管理界面里包含的官方文檔。

      那么作者采用一種什么樣的方式來幫助想學(xué)習(xí)ColdFusionMX的朋友快速的進(jìn)入動(dòng)手編寫代碼的境界呢?如果是采用把所有的Tag全部都按照順序講解,那么會(huì)造成學(xué)習(xí)者興趣不同程度的下降。各位可能在前面的教程中知道了Macromedia MX中DreamweaverMX和ColdFusionMX之間的關(guān)系。DreamweaverMX的推出就是為開發(fā)ColdFusionMX的應(yīng)用提供一個(gè)完善的工具,因?yàn)樗闪艘郧癈oldFusion Studio、UltraDev、Dreamweaver、HomeSite四款產(chǎn)品的主要功能于一身,所以,只用DreamweaverMX來制作靜態(tài)頁面,可以說只用到了不到三分之一的功能。那么,本系列的教程就從DreamweaverMX中集成的開發(fā)ColdfusionMX程序功能入手,讓大家先了解如何在DreamweaverMX中開發(fā)ColdFusionMX程序,然后再提供給大家使用ColdFusionMX開發(fā)高級(jí)應(yīng)用的技巧。

打開DreamweaverMX的界面可以看到處于右上方快捷Object面板,而其中會(huì)有如下三個(gè)Object面板是CFML Basic、CFML FLOW、CFML Advanced,而本教程的講解就從CFML Basic開始。

CFML Basic被選中后會(huì)出現(xiàn)如下的圖標(biāo)排列:

那么從左到右的圖標(biāo)依次表示CfServerVariables、CFQuery、CFOutput、CFInsert、CFUpdate、CFInclude、CFLocation、CFSet、CFParam、注釋、變量符號(hào)、CFScript。我們的教程也從CFSet開始。因?yàn)樗荂oldFusionMX中最簡單也是最重要的一個(gè)Tag。

單擊 圖標(biāo),會(huì)出現(xiàn)如下代碼段:cfset >,這個(gè)cfset的標(biāo)簽就是Coldfusion中設(shè)置變量的特有標(biāo)簽。在ColdFusion中,每個(gè)特有的由CFMX Server來負(fù)責(zé)解釋的Tag都用cf開頭,如cfset、cfquery等。而cfset的標(biāo)準(zhǔn)語法格式是:

等號(hào)左邊表示變量名稱,等號(hào)右邊是變量值。很簡單,如果你要?jiǎng)?chuàng)建一個(gè)叫做var1的變量,賦值為hello,friend!,那么你需要這樣寫出你的程序代碼:

cfset var1="Hello,friend!">

那么你要設(shè)置中文,就這樣寫好了:

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

那么,當(dāng)你為你的變量設(shè)置一個(gè)數(shù)值時(shí),就不需要在變量值的兩側(cè)加上雙引號(hào)了。比如:

cfset PI=3.1415926>。另外,cfset這個(gè)tag的作用還可以進(jìn)行數(shù)值的運(yùn)算和變量的動(dòng)態(tài)轉(zhuǎn)移。進(jìn)行數(shù)值計(jì)算和變量跳轉(zhuǎn)的編碼方式也非常的簡單,請看下面的代碼片斷:

cfset PI=3.1415926>

cfset number_1=PI*10>

cfset number_2=number_1>

我想有一點(diǎn)點(diǎn)程序經(jīng)驗(yàn)的朋友對(duì)上面代碼的理解都應(yīng)該不成問題,它執(zhí)行了一個(gè)PI值的賦值,以及對(duì)PI變量的乘法,結(jié)果賦值給number_1,最后,number_1變量的結(jié)果指向變量number_2。

另外,Cfset還有另外一種用法,讓我們來看看:

cfset var1="Test">

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

cfoutput>#test#/cfoutput>

結(jié)果輸出是什么?答案是:hello!這個(gè)字符串。原因很簡單,hello!這個(gè)字符串付給了一個(gè)叫做"#var1#"的變量,這個(gè)變量等價(jià)于test,也就是test這個(gè)字符串自動(dòng)變?yōu)橐粋€(gè)變量名稱。

      單擊 圖標(biāo),嘆號(hào)表示的tag是cfparam,這個(gè)tag的基本功能和cfset是一致的,也是為變量賦值,那么它與cfset有什么區(qū)別呢?區(qū)別就是檢查一個(gè)變量是否存在,若存在,則給予一個(gè)默認(rèn)值??纯袋c(diǎn)擊它以后出現(xiàn)的屬性設(shè)置窗口:

在上圖中可以看到cfparam具有三個(gè)屬性,那就是name、Default、Type,name表示變量的名稱,Default表示變量的初始值,默認(rèn)為空,Type表示變量的類型,CFMX為cfparam設(shè)置了如下類型:

變量類型已經(jīng)涵蓋了我們用ColdFusion進(jìn)行編碼是可能用到的變量類型。Cfparam這個(gè)Tag的信息可以點(diǎn)擊屬性設(shè)置窗口中的tag info來了解詳細(xì)的使用方法,以后其他的tag也可以在屬性窗口中通過點(diǎn)擊tag info來了解。那么,設(shè)置完cfparam之后,出現(xiàn)的代碼行如下:

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

這行代碼等價(jià)于:

cfif not definede(URL.id)>

cfset URL.id=1>

/cfif>

判斷URL.id這個(gè)變量是否存在,如果不存在,那么給一個(gè)值1。這個(gè)功能經(jīng)常在開發(fā)注冊和驗(yàn)證的模塊中配合cfform這個(gè)tag使用,后面的教程就會(huì)看到。

      單擊 圖標(biāo),就是在你的cfm頁面里面加入coldfusion特有的注釋符號(hào):!--- content --->,例如:

!---

設(shè)置一個(gè)變量名字叫做var_hello

--->

上面這段代碼就在.cfm被cf服務(wù)器解釋的過程中被忽略,良好的注釋習(xí)慣是開發(fā)大規(guī)模復(fù)雜應(yīng)用的必要,而且也是一個(gè)優(yōu)秀的開發(fā)者應(yīng)該具備的素質(zhì)。

      單擊 圖標(biāo),會(huì)出現(xiàn)以后大家經(jīng)常在.cfm文件中遇到的##標(biāo)記,那么它用來顯示coldfusion中的變量結(jié)果,就像前面用到的程序:

cfset var1="Test">

cfoutput>#var1#/cfoutput>

就是將var1變量的值顯示出來。

      單擊 圖標(biāo),則會(huì)在頁面中添加特有的coldfusion Server variable。DreamweaverMX中彈出的界面是:


而CFMX支持的Server variable有以下種類:

下面就把Server variables中經(jīng)常用到的變量做簡要介紹。Server variables在coldfusion中被成為CGI variables。它使用了Server端的通用網(wǎng)關(guān)接口變量。而CGI是很普遍的一種腳本方式,ColdfusionMX也支持CGI-Bin特有的一些變量格式。

HTTP_REFERER:判斷瀏覽者來自哪個(gè)URL

HTTP_USER_AGENT:判斷使用的瀏覽器類型,目前流行的幾款瀏覽器都可以識(shí)別。

QUERY_STRING:就是.cfm?后面參數(shù)附帶的信息。

REMOTE_ADDR:瀏覽者的IP地址

其他的變量各位可以通過查看官方提供的Reference來了解,這里就不再贅述。

讓我們來看這段代碼:

cfoutput>

你好!

您的瀏覽器是#CGI.HTTP_USER_AGENT#!

/cfoutput>

結(jié)果顯示是作者本人的瀏覽器版本:

您的瀏覽器是Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)!

單擊 圖標(biāo),則是使用coldfusion中最為常用的tag:cfquery。這個(gè)標(biāo)簽用來完成數(shù)據(jù)庫查詢。

在開始說明數(shù)據(jù)庫查詢之前,作者本人對(duì)廣大開發(fā)者提一個(gè)醒,希望各位用coldfusionmx作開發(fā)的時(shí)候,盡量避免使用access和mysql,因?yàn)檫@兩款數(shù)據(jù)庫與coldfusionmx進(jìn)行信息交互會(huì)出現(xiàn)或多或少的中文問題,希望各位使用SQL Server數(shù)據(jù)庫或者oracle。當(dāng)然使用access或者mysql進(jìn)行英文處理當(dāng)然沒有問題。早期的coldfusion5在處理數(shù)據(jù)庫上,access等小型數(shù)據(jù)庫不存在中文問題,可能由于coldfusion核心代碼被重新編寫,jdbc對(duì)應(yīng)的中文問題就出來了,但是相信macromedia不久就會(huì)修正這個(gè)問題。作者本人在使用cfquery的時(shí)候,出于講解方便,會(huì)使用access數(shù)據(jù)庫,但是后續(xù)的用到中文更改數(shù)據(jù)庫記錄的操作都會(huì)轉(zhuǎn)向SqlServer,請大家注意。

如何解決中文問題,請各位參考這里的信息:

http://www.flashempire.net/showthread.php?s=1871e826d3945c355df09e5ef8190a6ethreadid=120844

點(diǎn)擊cfquery標(biāo)簽之后dwmx出現(xiàn)的界面是這樣的:

上圖就是關(guān)于設(shè)置cfquery的窗口,圖形左邊的紅色矩形內(nèi)的三個(gè)部分可以對(duì)cfquery進(jìn)行不同細(xì)節(jié)程度的設(shè)置,general是我們最長用到的設(shè)置,connection則是連接設(shè)置,一般connection的部分屬性直接就可以通過cfmx administrator中的datasource設(shè)定來確定了。Persistent Queries表示設(shè)定一個(gè)持續(xù)的可以從緩存里調(diào)用的查詢。下面是cfquery的標(biāo)準(zhǔn)語法:

其中,name屬性是必須要有的,就是給你定義的cfquery一個(gè)名字,以后其他地方要調(diào)用的時(shí)候就會(huì)用到這個(gè)name屬性值找到相對(duì)的query。Datasource則是該查詢來自的數(shù)據(jù)源的名稱,而數(shù)據(jù)源的名稱則是通過設(shè)定cfmx administrator的。這里有必要插入一段關(guān)于設(shè)置數(shù)據(jù)源的方法。打開cfmx administrator管理界面,點(diǎn)擊Data Services里的data Sources,然后看到管理界面的右側(cè)區(qū)域出現(xiàn)cfmx administrator已經(jīng)定義好了的數(shù)據(jù)源,截圖如下:

上圖表示1的部分?jǐn)?shù)據(jù)庫driver用的是microsoft access,而被2框選的部分則是兩個(gè)透過windows odbc設(shè)置的數(shù)據(jù)源名稱,數(shù)據(jù)驅(qū)動(dòng)用的是windows的odbc socket。而被3框選中的區(qū)域則是使用Microsoft SQL Server驅(qū)動(dòng)定義的數(shù)據(jù)源。設(shè)置access數(shù)據(jù)庫是一件非常容易的事情,首先你的access數(shù)據(jù)庫可以放在你本地硬盤的任何一個(gè)位置,并不是非要放在webserver的某個(gè)目錄之下,然后,從上圖中,可以從add new data source中填寫一個(gè)你想要的數(shù)據(jù)源名稱,名稱只要是標(biāo)準(zhǔn)的字符串就可以了,不能用數(shù)字開頭。然后,從Driver的下拉選項(xiàng)中,選擇Microsoft access這個(gè)驅(qū)動(dòng),然后點(diǎn)擊add,就進(jìn)入了詳細(xì)設(shè)置頁面:

基本上,設(shè)置access數(shù)據(jù)庫不需要設(shè)置什么高級(jí)選項(xiàng),但是如果有需要,比如限制對(duì)數(shù)據(jù)庫的操作等等,可以點(diǎn)擊show advanced settings來修改。上圖中的cfsnippets就是安裝完coldfusionmx后的默認(rèn)案例數(shù)據(jù)庫,就像裝完access這個(gè)軟件后,自動(dòng)就有northwind這個(gè)庫一樣。下面的cfquery例子我們就以cfsnippets為主。而sql server只是多加了幾步的設(shè)置,首先,在設(shè)置sqlserver的數(shù)據(jù)源時(shí)要填入sql server的database name,其次,要輸入sql server所在的ip,本機(jī)就用localhost就可以,最重要的是,必須輸入一個(gè)能夠有訪問該數(shù)據(jù)庫的權(quán)限的用戶名和密碼,作者這里推薦在sql server里設(shè)置好特定的用戶名和密碼,而不是使用默認(rèn)的sa帳號(hào)。

      回到cfquery屬性說明,其他的屬性則不是必須具備的屬性。關(guān)于屬性的說明可以參考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>

結(jié)果是什么?看看下面的截圖:

令人驚奇的是可以循環(huán)輸出?。?!數(shù)數(shù)cf代碼,只有幾行,而asp,jsp,php要完成同樣的效果,需要寫幾行代碼呢?想必用過的人都知道。

再來看一個(gè)復(fù)雜點(diǎn)的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>

那么結(jié)果如下截圖:

我們首先是select出一段關(guān)于perterson這個(gè)雇員的相關(guān)信息,然后再列出所有雇員的信息。其次是用queryname.recordcount查看符合的記錄數(shù),用queryname.currentrow查看當(dāng)前的記錄是在數(shù)據(jù)庫中的第幾條,用queryname.columnlist表示數(shù)據(jù)庫的列的一個(gè)排序。最后我們還看到,幾行的代碼讓整個(gè)雇員表中的數(shù)據(jù)在html table中循環(huán)輸出,是不是各位已經(jīng)感覺到coldfusion的簡單快捷了?以后的教程中還有更令人吃驚的功能,包括內(nèi)置的全文檢索引擎,Generator的Data Driven flash(image),cf component和web services等功能的講解。

下一期的教程接著為大家講解cf basic tag編程,包括操作數(shù)據(jù)庫的cfinsert,、cfupdate;cfinclude和cflocation標(biāo)簽的使用,還要講解如何編寫coldfusion founction。好了,各位,咱們下一期見。


 

第二部分 論壇coldfusion探討

如何得到開發(fā)者版本的ColdfusionMX

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=116459

ColdFusionMX第一個(gè)安全漏洞

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=121286

ColdFusionMX企業(yè)版標(biāo)準(zhǔn)文檔

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=121621

Coldfusino MX 學(xué)習(xí)心得

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=120616

Cfmx 中文問題解決方法

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=120844

如何改變ColdFusionMX的端口

http://www.flashempire.net/showthread.php?s=783cb977b6551d6a2dc52c87555e0208threadid=118258

標(biāo)簽:河北 松原 石嘴山 淄博 六安 宜春 自貢 鄂州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ColdFusionMX 編程指南 ColdFusionMX編程入門》,本文關(guān)鍵詞  ColdFusionMX,編程,指南,入門,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ColdFusionMX 編程指南 ColdFusionMX編程入門》相關(guān)的同類信息!
  • 本頁收集關(guān)于ColdFusionMX 編程指南 ColdFusionMX編程入門的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    乾安县| 得荣县| 长泰县| 青冈县| 安宁市| 江陵县| 巍山| 孟村| 呈贡县| 富民县| 团风县| 福贡县| 明光市| 无锡市| 四川省| 睢宁县| 内乡县| 浪卡子县| 丰镇市| 信丰县| 九寨沟县| 乌兰县| 阿瓦提县| 新津县| 祁阳县| 拜城县| 新竹市| 视频| 杭锦后旗| 台北市| 河西区| 锦屏县| 商河县| 慈利县| 贞丰县| 太湖县| 金堂县| 阿合奇县| 东山县| 泰安市| 大姚县|