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

首頁 > 開發 > 綜合 > 正文

Coldfusion MX技巧精華收集(1)

2024-07-21 23:03:56
字體:
來源:轉載
供稿:網友
Coldfusion 結合 Access 中文顯示問題
作者: Kyle 12/11/02 

內容: 

首先,在每一頁要傳遞和處理中文的頁面頂部加上如下代碼(也可以放在application.cfm里,但在有些情況下會有問題): 

<cfprocessingdirective pageencoding="gb2312"> 
<cfcontent type="text/html; charset=gb2312"> 
<cfset setEncoding("URL", "gb2312")> 
<cfset setEncoding("Form", "gb2312")> 

注:如果你使用Dreamweaver MX,可以在菜單Insert里用CFPageEncoding來插入以上代碼(確認你的Windows系統的地域設置是簡體中文)。 

以上步驟無論你是否使用數據庫,只要要處理中文變量都需要的。 

下面來解決Ms Access 的問題。 
CFMX的ODBC service, 和ODBC Socket Driver的缺省配置不支持雙字節字符,所以就算你加上了以上的代碼只是解決了CFMX處理中文的問題,所有傳到ODBC的中文還是會有問題,要讓ODBC service和ODBC Socket Driver支持中文,必須修改其缺省模式,方法如下: 

確認系統services里ColdFusion MX ODBC Agent 和 ColdFusion MX ODBC Server services兩個服務起來了。 

找到你的cfmx安裝的路徑,如果是c:/Cfusionmx 的話在dos提示符下運行這行命令 

c:/cfusionmx/db/slserver32/admin/setcp.bat OS (注意OS是大寫) 

成功的話,會有如下提示: 

DataDirect SequeLink Manager Version 5.2 (build 0092) 
(c) Copyright 1995-2000 MERANT, Inc., All rights reserved 


然后把ColdFusion MX ODBC Agent 和 ColdFusion MX ODBC Server services兩個服務重新激活,或把系統重開。 

這時在ms access里用中文就真的沒問題了 以上方法在在winnt4+cfmx+access97 和win2k server+cfmx+access2002上均成功。 

注:如果要恢復原來的設置運行如下命令: 
c:/cfusionmx/db/slserver32/admin/setcp.bat default 

要看例子在這里 
http://vvjohn.dyndns.org:8500/study/chinese.cfm 
其它一些關于在cfmx中中文要注意的地方 
cfmx 不允許用中文做文件名 
當然更不能在cfinclude等中使用帶中文的文件名。 
不能用使用Encrypt和Decrypt來處理中文


內容: 

與.NET、XML 和 Web 服務整合 
利用嵌入式 XML 文檔分析、XSL 轉換和資料到 XML 的自動串行化,輕松地與 XML 資料整合。將 web 服務整合到自己的應用程序中,或利用基于標準的 web 服務引擎出版自己的 Web 服務。 

運用 CF 組件構建高級應用程序 
利用標準 CFML 建立自存盤、可重用的組件。ColdFusion MX 組件能讓一次編寫組件,然后從 ColdFusion MX 頁或 Macromedia Flash 客戶機調用,或作為 web 服務調用,從而使定制標記更上一層樓。 

毫不費力地使用或出版WED服務 
使用一行程序代碼就能從的應用程序調用Web服務,也可以使用ColdFusion組件和基于標準的Web服務引擎出版自己的web服務. 

運用 Macromedia Dreamweaver MX 節省開發時間 
通過結合強大的可視化設計工具和剛重新設計的程序代碼編輯器,Dreamweaver MX 可提供穩健的應用程序開發、快速的可視化原型設計、整合的調試以及對 ColdFusion MX 新語言組件和功能的全面支持。 

提高性能和可靠性 
通過利用 Java 平臺久經考驗的性能和可靠性,提高站點響應性和可用性。運用共享變量鎖定和帶有共享內存變量的簡化鎖定配置,加速大量應用程序的開發。 

運用動態圖表繪制和 Macromedia Flash 遠程服務使的站點更加引人入勝 
運用快速、安全的協議將 ColdFusion MX 的資料傳遞給 Macromedia Flash 客戶機,并利用 Macromedia Flash MX 創作環境對 ColdFusion MX 調試的全面支持,輕松地建立豐富應用程序。使用增強的繪圖功能,包括多資料級數支持、完全可定制的輸出和報表類型、批報表和挖掘功能。 

運用強大的新調試功能加快開發進度 
運用可從 Macromedia Dreamweaver MX IDE 內訪問的增強錯誤訊息、可定制的跟蹤和更好的輸出組織,更快地找到錯誤。 

輕松地將現有的應用程序遷移到 ColdFusion MX Foundation 
通過遵循完整的遷移指南,并運用程序代碼兼容性分析器識別任何潛在問題,快速升級現有的服務器。 

使的應用程序國際化
運用嵌入式 UNICODE 支持,構建支持基于字符的語言(漢語、日語或韓語)的應用程序。 

就像 ColdFusion MX 定制標記一樣重用 JSP 標記庫 
通過重用 ColdFusion MX 內的組件提高效率。 導入 JSP 標記庫,并象使用 ColdFusion MX 定制標記一樣使用 JSP 標記,或整合 CFML 頁和 Java servlets。

內容: 

為應用程序加上安全防護
ColdFusion 企業版本身內建了一套安全防護架構。然而如果你無法取得企業版的 ColdFusion 服務器,或者不想使用內建的安全機制,那么你也可以建構一套自己的應用程序安全防護功能。在這里我們提供一些實作想法,好讓你有個開端。 

首先你得先建立好一個樣版(template),內含一個使用者登入窗體,該窗體里面必須包含 UserName 以及 Password 這兩個字段。請把這個檔案儲存成為 loginform.cfm,日后當使用者未經過認證時,該使用者便會被導向到這個登入頁面。 

在 ColdFusion 環境里面,一個應用程序的相關定義與參數設定是記錄在 application.cfm 這個檔案里面的,而這個檔案正是用來放置應用程序范圍安全機制相關程序的最佳地點。在這里我們將會使用一個使用者狀態(session)變量來記錄使用者的認證狀態(雖然你也可以改用客戶端變量(client variable)來實作這項功能)。 

<CFPARAM NAME="SESSION.VALIDATED" DEFAULT="No"> 
一旦我們定義好 SESSION.VALIDATED 這個變量,接下來便可以檢查使用者是否已經通過認證: 

<CFIF SESSION.VALIDATED IS "No"> 
一旦我們發現使用者尚未通過認證,我們便可以透過一連串程序代碼來檢查使用者是否來自登入窗體頁面,然后比對使用者輸入的帳號與密碼是否有效,最后便可讓使用者通過認證程序。在這個程序的任何一個階段里面,如果使用者未經授權,我們便把該使用者導向到登入窗體頁面,并且停止執行接下來的任何程序代碼。請參考下面這段范例程序,里面的批注會說明每個步驟的功能與用處。 

<!--- 如果使用者是來自登入窗體頁面... --->
<CFIF ISDEFINED("FORM.Password") AND ISDEFINED("FORM.UserName")>
<!--- 根據接收到的使用者名稱,到數據庫中查詢該使用者的資料 --->
<CFQUERY NAME="CheckPassword" DATASOURCE="mydsn">
SELECT UserName, Password
FROM Users
WHERE (UserName = '#FORM.UserName#')
</CFQUERY> 

<!--- 如果密碼正確,則授與該使用者存取這個應用程序的權力 --->
<CFIF FORM.PASSWORD IS #CheckPassword.Password#> 

<!--- 讓使用者通過認證 --->
<CFSET SESSION.VALIDATED = "Yes"> 

<!--- 如果密碼不正確,則再次顯示登入窗體 --->
<CFELSE> 

<CFINCLUDE TEMPLATE="/mypath/loginform.cfm">
<CFABORT> 

</CFIF> 

<!--- 如果窗體變量是處于未定義狀態,表示使用者并非來自于登入窗體頁面,因此我們顯示登入窗體。 --->
<CFELSE> 

<CFINCLUDE TEMPLATE="/mypath/loginform.cfm">
<CFABORT> 

</CFIF> 

<!--- 如果 SESSION.VALIDATED 變量的值已經是 YES 了,表示使用者之前已經通過認證。略過安全性檢查,繼續執行應用程序的其它部分。 --->
</CFIF> 

如果你把上面這段程序代碼放在 application.cfm 里面,那么它便可以為你的整個應用程序提供基本的安全機制。

讓客戶端變量逾期
這些方式的其中之一便是客戶端變量(client variable)。客戶端變量和使用者狀態變量(session variables)類似,不同之處在于使用者狀態變量是儲存在 ColdFusion 服務器的內存中,而客戶端變量則是儲存在 cookie 里面,Windows 注冊數據庫(Windows registry)或者外部的數據庫服務器里面。這項差異乍看之下并不太重要,然而如果你使用一系列 ColdFusion 服務器搭配組成負載平衡(load-balance)環境的話,這項差異性就變得非常關鍵了。 

在負載平衡服務器環境之下,你永遠無法得知哪一部服務器會被指定來處理哪一個使用者發出的請求。負載平衡硬件或者軟件純粹僅是將接收到的使用者請求傳遞給當時負載最輕的服務器來處理。在這樣的狀況下我們無法正常運用使用者狀態變量,因為某部服務器上面儲存的使用者狀態變量,對于其它服務器而言都是不可見的。每當負載平衡硬件(或者軟件)將同一個使用者從某部伺服器重新導向到另一部服務器(亦即:該使用者的某次請求被分配給 A 服務器來處理,而下一次請求卻被分配給 B 服務器來處理),使用者狀態變量便會立刻消失不見。 

要解決這個問題的方法之一便是使用客戶端變量,將使用者相關信息儲存在另一部所有參與負載平衡的服務器皆可存取得到的外部數據庫里面。然而這項作法本身卻又會帶來其它必須考量的問題,特別是如果你要透過客戶端變量來儲存儲存敏感性或者安全性資料的時候。你可以設定讓客戶端變量在某段時間之后便過期失效,但是這個時間間隔最短只能設定成一天。如果你儲存的是使用者認證相關資料,你應該會想要讓這段逾期時間設定成更短,例如十五分鐘。要做到這項短時間逾期功能,你只需要多加一些額外的 CFML 程序代碼。 

我建立了另一個稱作 CF_ClientTimeout 的自訂卷標來替你處理這個問題。同樣地,你可以直接在 Allaire 公司的開發情報交換中心網站上下載使用。這個卷標透過日期與時間相關函數來把目前時間與使用者上一次存取某個頁面的時間加以比對,如果兩者的時間差距大于你自己設定的某個時間長度,那么該使用者的相關信息便會被視為已經逾期并且失去效用。如果你在 applicaiton.cfm 這個檔案里面使用這個卷標,那么這個卷標便會在同一個應用程序里面的所有頁面里頭進行這項時間比對工作。相關的程序代碼如下: 

<CFPARAM NAME="CLIENT.CheckLastVisit" DEFAULT="#CreateODBCDateTime(Now())#">
<CFSET Compare = DateCompare(DateAdd("n", (ATTRIBUTES.TimeOut * -1), CreateODBCDateTime(Now())), CLIENT.CheckLastVisit)> 

<CFIF Compare IS NOT -1> 

<CFSET CALLER.TimedOut = "Yes"> 

<CFELSE> 

<CFSET CALLER.TimedOut = "No"> 

</CFIF> 

<CFSET CLIENT.CheckLastVisit = CreateODBCDateTime(Now())> 

如果你輸入 TimeOut 變量的值為 30(TimeOut = 30),那么使用者便會在連續三十分鐘沒有作任何動作之后,被系統視為已經逾期。一旦被系統視為逾期,下一次該使用者試圖再次存取某個頁面的時候,這個自訂卷標便會傳回 TimeOut 變量的值為「Yes」,你可以使用一個 CFIF 敘述來判斷這個變量值,并且將逾期使用者的相關客戶端變量刪除掉,或者修改某個認證變量的值(例如將 CLIENT.VALIDATED 變量的值設定成「No」,CLIENT.VALIDATED = "No"),并且接著執行一段使用者登入程序。

善用應用程序變量
應用程序變量(Application variables)對于同一個應用程序中的所有頁面來說都是可隨時叫用的。通常這類變量都是設定在 application.cfm 這個檔案里面,但是它們也可以在其它單一頁面里面設定。應用程序變量對于儲存整個應用程序共享的資料來說非常有用,例如資料來源名稱,絕對路徑或者顏色設定資料等等。 

為了展示一下應用程序變量的用處,在這里我打算說明如何以應用程序變量來儲存顏色設定資料。雖然 4.0 以及更新版本等支持 CSS 的瀏覽器占有率日漸提高,還是有很多使用者仍然在繼續使用舊版瀏覽器。如果你仍在使用 <FONT> 卷標來設定文字樣式,并且使用 color 屬性來設定表格與文字的顏色,那么你應該心知肚明當日后要修改網站的顏色設定的時候,你的惡夢就要開始了!使用 ColdFusion,我們可以用另一種更輕松有效的方式來設定頁面的各種顏色:那就是把色彩設定儲存在應用程序變量里面。一旦你把顏色設定透過應用程序變量儲存起來,你就可以透過變量名稱來參照到這些顏色,而非直接將色彩名稱(或者 16 進位色碼)直接寫在程序里面。進一步來看,你只需要修改這些應用程序變量的值,那么所有相關的頁面中的顏色就會一起改變。 

在你的 application.cfm 檔案里面,你可以設定一個應用程序變量讓它的值包含一個空白結構(結構是一個鍵-值配對或者一個二維數組): 

<CFSCRIPT>
application.colors=structNew();
</CFSCRIPT> 
這樣一來你便有了一個名為 Application.Colors 的應用程序變量了,該變量的值是一個空白結構。接下來你便可以將需要用的顏色名稱儲存在這個空白結構里面。下面是一個例子: 

<CFSCRIPT>
application.colors=structNew();
application.colors.body='FFFFFF';
application.colors.text='708090';
application.colors.link='C0F171';
application.colors.blue='131E63';
application.colors.red='C01531';
application.colors.yellow='FFFFE6';
</CFSCRIPT> 
現在在你的頁面里頭你便不再需要將顏色名稱直接寫進去,只要直接參照 Application.Colors 里面的變量就可以了。舉例來說,在 <BODY> 卷標里面你可以使用下面這樣的寫法: 

<CFOUTPUT>
<BODY
BGCOLOR="#application.colors.body#" 
TEXT="#application.colors.text#"
LINK="#application.colors.link#">
</CFOUTPUT> 
你可以把這個技巧應用在表格,框線或者其它任何使用到顏色屬性的地方。如此一來,你便可以很輕松地隨時調整網站的顏色設定,因為所有的顏色都儲存在同一個地方,修改起來非常容易。 

記得適時鎖定
在讀取或者設定應用程序(application),使用者狀態(session)或者服務器這些范圍的變量的時候,很重要的一點是在適當的變量范圍內使用 CFLOCK 卷標進行變量的鎖定。CFLOCK 卷標可以確保共享資料的完整與一致性,在高流量的服務器上面,這項工作尤顯重要。如果你需要更多這方面的資料,請閱讀你的使用說明文件,或者參考 ColdFusion 開發者期刊(ColdFusion Developer's Journal)網站上面的這篇文章。
 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 | 国产剧情在线观看一区二区 | 国产日韩大片 | 欧美日韩色片 | 中文日韩在线视频 | 久久久久久久亚洲精品 | www.9191.com| 久久国产精品久久精品国产演员表 | 成人男女啪啪免费观看网站四虎 | 黄污在线观看 | 国产精品a一| 成人福利视频在 | 亚洲字幕av | 把娇妻调教成暴露狂 | 国产大片全部免费看 | 香蕉成人在线观看 | 日本黄色免费播放 | 国产激情视频在线 | 黄色片在线观看网站 | 欧美成人精品不卡视频在线观看 | 国产精品久久久久久久亚洲按摩 | 国产免费久久久久 | 国产98色在线 | 欧美一级淫片007 | 亚洲网在线 | 国产精品免费一区二区三区四区 | 成年片在线观看 | 91看片淫黄大片欧美看国产片 | 干色视频 | 日韩精品久久久久久 | 男男啪羞羞视频网站 | 黄色片免费在线播放 | 中国3xxxx | 久久久久久久久久久av | 717影院理论午夜伦八戒秦先生 | 亚洲少妇诱惑 | 爽爽淫人综合网网站 | 7777久久香蕉成人影院 | 精品国产乱码久久久久久丨区2区 | 日韩毛片一区二区三区 | 在线91视频 |