麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

ColdFusionMX 編程指南 ColdFusionMX編程入門

2024-07-21 23:03:55
字體:
來源:轉載
供稿:網友

第三期:ColdFusionMX編程入門

 

 

序言

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

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

      1995年是個值得紀念的年代,因為發生在那個年月的事情已經是上個世紀的事情了,而且不單單是這么多。如果老資歷的開發人員回憶一下的話,那個時候的web是html和cgi稱雄的天下,靜態頁面是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編程

   作者本人看過很多關于中英文的教材,認為最有效的一種方式就是參照實例的代碼段來配合講解的過程最為優秀。所以,對于每一個coldfuiosn的tag,作者不打算一一贅述,各位朋友可以通過查看一些reference來了解所有的tag功能和語法。關于標準的文檔,請在安裝coldfusionmx之后參考administrator管理界面里包含的官方文檔。

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

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

CFML Basic被選中后會出現如下的圖標排列:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

那么從左到右的圖標依次表示CfServerVariables、CFQuery、CFOutput、CFInsert、CFUpdate、CFInclude、CFLocation、CFSet、CFParam、注釋、變量符號、CFScript。我們的教程也從CFSet開始。因為它是ColdFusionMX中最簡單也是最重要的一個Tag。

單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,會出現如下代碼段:<cfset >,這個cfset的標簽就是Coldfusion中設置變量的特有標簽。在ColdFusion中,每個特有的由CFMX Server來負責解釋的Tag都用cf開頭,如cfset、cfquery等。而cfset的標準語法格式是:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

等號左邊表示變量名稱,等號右邊是變量值。很簡單,如果你要創建一個叫做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這個字符串自動變為一個變量名稱。

      單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,嘆號表示的tag是cfparam,這個tag的基本功能和cfset是一致的,也是為變量賦值,那么它與cfset有什么區別呢?區別就是檢查一個變量是否存在,若存在,則給予一個默認值。看看點擊它以后出現的屬性設置窗口:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

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

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

變量類型已經涵蓋了我們用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使用,后面的教程就會看到。

      單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,就是在你的cfm頁面里面加入coldfusion特有的注釋符號:<!--- content --->,例如:

<!---

設置一個變量名字叫做var_hello

--->

上面這段代碼就在.cfm被cf服務器解釋的過程中被忽略,良好的注釋習慣是開發大規模復雜應用的必要,而且也是一個優秀的開發者應該具備的素質。

      單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,會出現以后大家經常在.cfm文件中遇到的##標記,那么它用來顯示coldfusion中的變量結果,就像前面用到的程序:

<cfset var1="Test">

<cfoutput>#var1#</cfoutput>

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

      單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,則會在頁面中添加特有的coldfusion Server variable。DreamweaverMX中彈出的界面是:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門
而CFMX支持的Server variable有以下種類:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

下面就把Server variables中經常用到的變量做簡要介紹。Server variables在coldfusion中被成為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)!

單擊 ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門 圖標,則是使用coldfusion中最為常用的tag:cfquery。這個標簽用來完成數據庫查詢。

在開始說明數據庫查詢之前,作者本人對廣大開發者提一個醒,希望各位用coldfusionmx作開發的時候,盡量避免使用access和mysql,因為這兩款數據庫與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出現的界面是這樣的:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

上圖就是關于設置cfquery的窗口,圖形左邊的紅色矩形內的三個部分可以對cfquery進行不同細節程度的設置,general是我們最長用到的設置,connection則是連接設置,一般connection的部分屬性直接就可以通過cfmx administrator中的datasource設定來確定了。Persistent Queries表示設定一個持續的可以從緩存里調用的查詢。下面是cfquery的標準語法:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

其中,name屬性是必須要有的,就是給你定義的cfquery一個名字,以后其他地方要調用的時候就會用到這個name屬性值找到相對的query。Datasource則是該查詢來自的數據源的名稱,而數據源的名稱則是通過設定cfmx administrator的。這里有必要插入一段關于設置數據源的方法。打開cfmx administrator管理界面,點擊Data & Services里的data Sources,然后看到管理界面的右側區域出現cfmx administrator已經定義好了的數據源,截圖如下:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

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

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

基本上,設置access數據庫不需要設置什么高級選項,但是如果有需要,比如限制對數據庫的操作等等,可以點擊show advanced settings來修改。上圖中的cfsnippets就是安裝完coldfusionmx后的默認案例數據庫,就像裝完access這個軟件后,自動就有northwind這個庫一樣。下面的cfquery例子我們就以cfsnippets為主。而sql server只是多加了幾步的設置,首先,在設置sqlserver的數據源時要填入sql server的database 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>

結果是什么?看看下面的截圖:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

令人驚奇的是可以循環輸出!!!數數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>

那么結果如下截圖:

ColdFusionMX,ColdFusionMX編程,ColdFusionMX編程入門

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

下一期的教程接著為大家講解cf basic tag編程,包括操作數據庫的cfinsert,、cfupdate;cfinclude和cflocation標簽的使用,還要講解如何編寫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

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级黄色在线观看 | 毛片小网站 | 91亚洲免费视频 | 国产一区二区三区影视 | 黄视频网站免费在线观看 | 成人一区二区在线观看视频 | 欧美成人激情 | 国产精品久久久久久久久久了 | 欧美日韩精品一区二区三区不卡 | 国产精品久久久久久久久久东京 | 一级免费在线视频 | 国产一区二区三区色淫影院 | 国产成人高潮免费观看精品 | 久久国产乱子伦精品 | 精品国产一区二区三区成人影院 | 久久视频精品 | 免费一级片网站 | 原来神马影院手机版免费 | 日本黄色一级视频 | 最新影院 | 涩涩天堂| 一级观看免费完整版视频 | 久久久久久久久久性 | 日韩视频一区二区三区四区 | 涩涩激情网 | 成人午夜免费福利 | 中文字幕在线观看精品 | 日韩视频不卡 | 九九热免费视频在线观看 | 成人nv在线观看 | 成人免费午夜视频 | 国产免费成人在线 | 欧美三日本三级少妇三级99观看视频 | 色播视频在线播放 | 成人毛片在线免费看 | 视频一区二区视频 | 中国hdxxxx护士爽在线观看 | 欧美第1页 | 久久久久久69 | 91九色视频在线观看 | 国产午夜精品一区二区三区不卡 |