ColdFusionMX Basic Tag編程
版權(quán)所有:請勿轉(zhuǎn)載
系統(tǒng)及環(huán)境需求:
- Window2000/XP
- 256M RAM
- Coldfusion MX(Developer Edition)
- Microsoft Access
- 任何一款文本編輯器(本教程默認(rèn)為Coldfusion Studio 5 + DreamweaverMX)
- 本教程采用 Coldfusion Standalone的模式,端口為8500。如需要采用IIS捆綁方式,請在安裝過程中修改即可。
序言
上一期我們講解了ColdFusionMX的基本管理操作,并且熟悉了ColdFusionMX的管理界面布局,而且上一期最后我們演示了兩個非常短小的coldfusion程序,這一期會詳細(xì)講解coldfusion的入門編程,其中包括在asp中對于初學(xué)者而言非常令人頭疼的數(shù)據(jù)庫操作。
在每次開始進(jìn)入正題之前,每一期的序言內(nèi)容都會為大家介紹一些關(guān)于ColdFusion發(fā)展或者其他一些具有價值的小知識,第一期為大家介紹了Macromedia MX產(chǎn)品的策略和coldfusionMX在該產(chǎn)品策略中的位置,而第二期則為大家介紹了ColdfusionMX的版本差異,那么這一期的序言讓我們了解一些什么呢?關(guān)于ColdFusion的發(fā)展。
1995年是個值得紀(jì)念的年代,因為發(fā)生在那個年月的事情已經(jīng)是上個世紀(jì)的事情了,而且不單單是這么多。如果老資歷的開發(fā)人員回憶一下的話,那個時候的web是html和cgi稱雄的天下,靜態(tài)頁面是html,而動態(tài)程序則90%以上是cgi,在我印象中便是如此。美國的一對兄弟allire,在為自己的客戶解決數(shù)據(jù)庫訪問的問題時,感覺到了cgi程序在編寫和維護(hù)上的難度是不能容忍的困難。于是,具有計算機天賦的Jeremy Allire便在1995年編寫了一種快速響應(yīng)且易于編寫的動態(tài)腳本語言,叫做coldfusion,一經(jīng)推出,便震撼整個網(wǎng)絡(luò)行業(yè)。之后,兄弟倆看到了coldfusion的發(fā)展前途,便成立了Allire公司(后來被macromedia收購)。之后的幾年,全球500強中的一半都采用了coldfusion來解決公司不同情況的問題。通過不斷的版本修改和開發(fā)者的不斷壯大,Coldfusion后來發(fā)展成為業(yè)界知名的企業(yè)級解決方案的開發(fā)首選,F(xiàn)在,為了產(chǎn)品線的統(tǒng)一,為了工業(yè)標(biāo)準(zhǔn)的統(tǒng)一,為了完全兼容Java平臺,Macromedia發(fā)布了ColdfusionMX。而眾位以前經(jīng)?吹降腘eo這個詞則是macromedia對于使用新一代coldfusion開發(fā)行業(yè)解決方案的編碼名稱。
如果大家看到neo這個詞,就不難理解Macromedia對于coldfusionMX的殷切期望,大名鼎鼎的電影《黑客帝國》中的男主人公的名字也叫做Neo。以上的相似之處只是作者本人的推測而已了。好,不多聊了,進(jìn)入我們這一期的正題。
第一部分 ColdFusionMX Basic tag 編程
作者本人看過很多關(guān)于中英文的教材,認(rèn)為最有效的一種方式就是參照實例的代碼段來配合講解的過程最為優(yōu)秀。所以,對于每一個coldfuiosn的tag,作者不打算一一贅述,各位朋友可以通過查看一些reference來了解所有的tag功能和語法。關(guān)于標(biāo)準(zhǔn)的文檔,請在安裝coldfusionmx之后參考administrator管理界面里包含的官方文檔。
那么作者采用一種什么樣的方式來幫助想學(xué)習(xí)ColdFusionMX的朋友快速的進(jìn)入動手編寫代碼的境界呢?如果是采用把所有的Tag全部都按照順序講解,那么會造成學(xué)習(xí)者興趣不同程度的下降。各位可能在前面的教程中知道了Macromedia MX中DreamweaverMX和ColdFusionMX之間的關(guān)系。DreamweaverMX的推出就是為開發(fā)ColdFusionMX的應(yīng)用提供一個完善的工具,因為它集成了以前ColdFusion Studio、UltraDev、Dreamweaver、HomeSite四款產(chǎn)品的主要功能于一身,所以,只用DreamweaverMX來制作靜態(tài)頁面,可以說只用到了不到三分之一的功能。那么,本系列的教程就從DreamweaverMX中集成的開發(fā)ColdfusionMX程序功能入手,讓大家先了解如何在DreamweaverMX中開發(fā)ColdFusionMX程序,然后再提供給大家使用ColdFusionMX開發(fā)高級應(yīng)用的技巧。
打開DreamweaverMX的界面可以看到處于右上方快捷Object面板,而其中會有如下三個Object面板是CFML Basic、CFML FLOW、CFML Advanced,而本教程的講解就從CFML Basic開始。
CFML Basic被選中后會出現(xiàn)如下的圖標(biāo)排列:
那么從左到右的圖標(biāo)依次表示CfServerVariables、CFQuery、CFOutput、CFInsert、CFUpdate、CFInclude、CFLocation、CFSet、CFParam、注釋、變量符號、CFScript。我們的教程也從CFSet開始。因為它是ColdFusionMX中最簡單也是最重要的一個Tag。
單擊 圖標(biāo),會出現(xiàn)如下代碼段:<cfset >,這個cfset的標(biāo)簽就是Coldfusion中設(shè)置變量的特有標(biāo)簽。在ColdFusion中,每個特有的由CFMX Server來負(fù)責(zé)解釋的Tag都用cf開頭,如cfset、cfquery等。而cfset的標(biāo)準(zhǔn)語法格式是:
等號左邊表示變量名稱,等號右邊是變量值。很簡單,如果你要創(chuàng)建一個叫做var1的變量,賦值為hello,friend!,那么你需要這樣寫出你的程序代碼:
<cfset var1="Hello,friend!"> 那么你要設(shè)置中文,就這樣寫好了: < cfset var1="你好,朋友!"> 那么,當(dāng)你為你的變量設(shè)置一個數(shù)值時,就不需要在變量值的兩側(cè)加上雙引號了。比如: < cfset PI=3.1415926>。另外,cfset這個tag的作用還可以進(jìn)行數(shù)值的運算和變量的動態(tài)轉(zhuǎn)移。進(jìn)行數(shù)值計算和變量跳轉(zhuǎn)的編碼方式也非常的簡單,請看下面的代碼片斷: < cfset PI=3.1415926> < cfset number_1=PI*10> < cfset number_2=number_1>
我想有一點點程序經(jīng)驗的朋友對上面代碼的理解都應(yīng)該不成問題,它執(zhí)行了一個PI值的賦值,以及對PI變量的乘法,結(jié)果賦值給number_1,最后,number_1變量的結(jié)果指向變量number_2。
另外,Cfset還有另外一種用法,讓我們來看看:
<cfset var1="Test"> < cfset "#var1#"="hello!"> < cfoutput>#test#</cfoutput>
結(jié)果輸出是什么?答案是:hello!這個字符串。原因很簡單,hello!這個字符串付給了一個叫做"#var1#"的變量,這個變量等價于test,也就是test這個字符串自動變?yōu)橐粋變量名稱。
單擊 圖標(biāo),嘆號表示的tag是cfparam,這個tag的基本功能和cfset是一致的,也是為變量賦值,那么它與cfset有什么區(qū)別呢?區(qū)別就是檢查一個變量是否存在,若存在,則給予一個默認(rèn)值?纯袋c擊它以后出現(xiàn)的屬性設(shè)置窗口:
在上圖中可以看到cfparam具有三個屬性,那就是name、Default、Type,name表示變量的名稱,Default表示變量的初始值,默認(rèn)為空,Type表示變量的類型,CFMX為cfparam設(shè)置了如下類型:
變量類型已經(jīng)涵蓋了我們用ColdFusion進(jìn)行編碼是可能用到的變量類型。Cfparam這個Tag的信息可以點擊屬性設(shè)置窗口中的tag info來了解詳細(xì)的使用方法,以后其他的tag也可以在屬性窗口中通過點擊tag info來了解。那么,設(shè)置完cfparam之后,出現(xiàn)的代碼行如下:
<cfparam name="URL.id" default="1" type="any"> 這行代碼等價于: < cfif not definede(URL.id)> < cfset URL.id=1> < /cfif> 判斷URL.id這個變量是否存在,如果不存在,那么給一個值1。這個功能經(jīng)常在開發(fā)注冊和驗證的模塊中配合cfform這個tag使用,后面的教程就會看到。
單擊 圖標(biāo),就是在你的cfm頁面里面加入coldfusion特有的注釋符號:<!--- content --->,例如: < !--- 設(shè)置一個變量名字叫做var_hello ---> 上面這段代碼就在.cfm被cf服務(wù)器解釋的過程中被忽略,良好的注釋習(xí)慣是開發(fā)大規(guī)模復(fù)雜應(yīng)用的必要,而且也是一個優(yōu)秀的開發(fā)者應(yīng)該具備的素質(zhì)。
單擊 圖標(biāo),會出現(xiàn)以后大家經(jīng)常在.cfm文件中遇到的##標(biāo)記,那么它用來顯示coldfusion中的變量結(jié)果,就像前面用到的程序: < cfset var1="Test"> < cfoutput>#var1#</cfoutput> 就是將var1變量的值顯示出來。
單擊 圖標(biāo),則會在頁面中添加特有的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:判斷瀏覽者來自哪個URL HTTP_USER_AGENT:判斷使用的瀏覽器類型,目前流行的幾款瀏覽器都可以識別。 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。這個標(biāo)簽用來完成數(shù)據(jù)庫查詢。
在開始說明數(shù)據(jù)庫查詢之前,作者本人對廣大開發(fā)者提一個醒,希望各位用coldfusionmx作開發(fā)的時候,盡量避免使用access和mysql,因為這兩款數(shù)據(jù)庫與coldfusionmx進(jìn)行信息交互會出現(xiàn)或多或少的中文問題,希望各位使用SQL Server數(shù)據(jù)庫或者oracle。當(dāng)然使用access或者mysql進(jìn)行英文處理當(dāng)然沒有問題。早期的coldfusion5在處理數(shù)據(jù)庫上,access等小型數(shù)據(jù)庫不存在中文問題,可能由于coldfusion核心代碼被重新編寫,jdbc對應(yīng)的中文問題就出來了,但是相信macromedia不久就會修正這個問題。作者本人在使用cfquery的時候,出于講解方便,會使用access數(shù)據(jù)庫,但是后續(xù)的用到中文更改數(shù)據(jù)庫記錄的操作都會轉(zhuǎn)向SqlServer,請大家注意。
如何解決中文問題,請各位參考這里的信息:
出處:
責(zé)任編輯:藍(lán)色
上一頁 下一頁 ColdFusionMX Basic Tag編程 二
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|