ColdFusion はアプリケーションサーバーです。また、Web アプリケーションが様々なバックエンドシステムと通信できるようにする Web プログラミング言語でもあります。ColdFusion を使用すると、ユーザー入力、データベース検索、時間帯などの必要な条件を提供する動的な Web ページを作成できます。ColdFusion ページは、標準の HTML と独自の ColdFusion Markup Language(CFML)で構成されています。
ブラウザーが ColdFusion からリクエストを受け取ると、ColdFusion アプリケーションサーバーはそのページの前処理を実行します。その後、即座に HTML ページを生成し、そのページをブラウザーが表示します。
ColdFusion を使用すると、次のことも実行できます。
- アプリケーションの迅速な作成、テストおよびデプロイ(ColdFusion は拡張可能で、マルチスレッドに対応しており、サービス指向です)
- カスタム関数の作成および複数のアプリケーションへの拡張
- デバッガーを使用したアプリケーションのトラブルシューティングとデバッグ
- 大半の従来型データベース、最新のデータベース、外部システムとの接続
ColdFusion アプリケーションサーバー
<!--- Get names sorted by department ---> <cfquery datasource="company" name="employees"> SELECT EmpName FROM EMPDATA ORDER BY DEPTT </cfquery> <!--- HTML page ---> <HTML> <HEAD> <TITLE>List of employees</TITLE> </HEAD> <BODY> <ul> <cfoutput query="employees"> <li>EmpName</li> </cfoutput> </ul> </BODY> </HTML>
ColdFusion がリクエストを受け取ると、サーバーはテンプレートを解析して、ColdFusion 固有のタグ(CF で始まるタグ)または ColdFusion の変数と関数を探します。
HTML とプレーンテキストは無視され、そのままブラウザーで出力されます。すべての ColdFusion コンストラクトが処理され、結果が Web サーバーに送信されます。その後、Web サーバーは出力全体をリクエスト元のブラウザーに戻します。すべての ColdFusion ファイルには .cfm と .cfml のどちらかの拡張子が付いています。次に例を示します。
http://www.example.com/support.cfm
ColdFusion をインストールすると、必ずビルトイン Web サーバーもインストールされます。他の Web サーバーとの競合を避けるために、ColdFusion の Web サーバー(Apache または IIS)はポート 8500 または指定された他のポートで実行されます。
ColdFusion のインストール時に、ColdFusion をスタンドアローンモード(統合型の Web サーバーにバインドされる)で実行するか、既存の Web サーバーを使用するかを選択できます。内部 Web サーバーを使用する場合は、すべての URL でポート番号を指定します。
ColdFusion Markup Language(CFML)
ColdFusion Markup Language(CFML)は、ColdFusion で使用するスクリプト言語です。CFML では、Web アプリケーションの作成を目的として、データベースコマンド、条件演算子、高度な書式制御関数などを使用している標準の HTML ファイルをサポートしています。
ColdFusion のタグは、HTML のタグと同じ形式で記述します。タグは山括弧で囲まれており、0 個以上の属性を指定できます。多くの ColdFusion タグには本文があります。つまり、開始タグと終了タグの間に、処理するテキストを記述します。
ColdFusion アプリケーションのページには、HTML タグに加えて、サーバーサイド CFML タグも含まれます。
CFML は HTML を拡張して次の処理を実行します。
- スプレッドシート、フラットファイル、区切りファイルなどのデータの読み取りとデータベースや外部アプリケーションへの更新をおこなう。
- 動的なデータ駆動型のページを作成し、条件付き処理を実行する。
- バックエンドシステムのリアルタイムデータをフォームに入力し、フォームの送信を処理する。
- 電子メールメッセージを生成および取得する。
- リモートファイルにアクセスするために HTTP サーバーや FTP サーバーと通信する。
- 認証トークンを使用してアプリケーションを保護する。
- クライアントサイド Cookie の読み書きをおこなう。