adobe coldfusion アプリケーションの開発...coldfusion 9 アプリケーションの開発...

1269
アプリケーションの開発 ADOBE ® COLDFUSION 9 ®

Upload: others

Post on 25-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

  • アプリケーションの開発 ADOBE® COLDFUSION 9®

  • �����© 2009 Adobe Systems Incorporated. All rights reserved.

    Adobe® ColdFusion9 アプリケーションの開発This guide is licensed for use under the terms of the Creative Commons Attribution Non-Commercial 3.0 License. This License allows users to copy, distribute, and transmit the guide for noncommercial purposes only so long as (1) proper attribution to Adobe is given as the owner of the guide; and (2) any reuse or distribution of the guide contains a notice that use of the guide is governed by these terms. The best way to provide notice is to include the following link. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ Adobe, the Adobe logo, ColdFusion, and Flash are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.

    http://creativecommons.org/licenses/by-nc-sa/3.0/

  • iii

    目次

    第 1 章: ColdFusion 9 の新機能 ORM のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Flex と AIR の統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    言語の機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    他の製品およびテクノロジーとの統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    パフォーマンスの向上 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    データベースに関する機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    コードアナライザ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    サービス機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    その他の機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    第 2 章: はじめに本マニュアルの使用について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Adobe ColdFusion 9 マニュアルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    第 3 章: ColdFusion の概要インターネットアプリケーションと Web アプリケーションサーバーについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    ColdFusion について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    J2EE と ColdFusion アーキテクチャについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    第 4 章: CFML プログラミング言語CFML の要素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    ColdFusion 変数の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    式と # 記号の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    配列および構造体の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    CFML スクリプト言語による ColdFusion ページの拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    関数での正規表現の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

    第 5 章: ColdFusion アプリケーションのビルディングブロックColdFusion 要素の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

    ユーザー定義関数の作成と呼び出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    ColdFusion コンポーネントの構築と使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    カスタム CFML タグの作成と使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

    CFXAPI カスタムタグの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    第 6 章: CFML アプリケーションの開発ColdFusion アプリケーションの設計と最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

    エラー処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

    永続データとロックの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    ColdFusion スレッドの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

  • ivCOLDFUSION 9 アプリケーションの開発目次

    アプリケーションの保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

    グローバル化アプリケーションの開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

    アプリケーションのデバッグとトラブルシューティング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

    ColdFusion デバッガの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

    第 7 章: データへのアクセスおよび使用データベースおよび SQL の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

    データのアクセスおよび取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

    データベースの更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

    クエリーオブクエリーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

    LDAP ディレクトリの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    検索インターフェイスの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

    Verity 検索式の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

    Solr 検索のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

    第 8 章: ColdFusion ORMColdFusion ORM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

    アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

    ORM の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

    ORM マッピングの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

    オブジェクトの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540

    クエリーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546

    トランザクションと同時性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

    パフォーマンスの最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552

    ORM セッション管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559

    CFC でのイベント処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560

    データベーススキーマの自動生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562

    第 9 章: ColdFusion での Flex と AIR の統合Flash Remoting サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565

    Flash Remoting Update の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

    オフライン AIR アプリケーションのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

    ColdFusion サービスのプロキシ ActionScript クラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

    LiveCycle Data Services ES アセンブラの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618

    サーバーサイド ActionScript の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635

    第 10 章: 情報のリクエストと表示データの取得および形式設定の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650

    cfform タグによるダイナミックフォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668

    データの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688

    Flash フォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710

    スキン可能 XML フォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727

  • vCOLDFUSION 9 アプリケーションの開発目次

    Ajax ユーザーインターフェイスコンポーネントおよび機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747

    Ajax データ機能および開発機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797

    第 11 章: Office ファイルとの相互運用性cfdocument の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824

    cfpresentation の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825

    cfspreadsheet の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827

    サポートされている Office 変換形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828

    SharePoint の統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829

    第 12 章: ColdFusion ポートレットJBoss Portal Server での ColdFusion ポートレットの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833

    portlet.cfc で使用する一般的なメソッド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839

    ColdFusion ポートレットコンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839

    JSR-286 のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842

    WebSphere Portal Server での ColdFusion ポートレットの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845

    第 13 章: ドキュメント、チャート、レポートの操作ColdFusion での PDF フォームの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846

    PDF ドキュメントの組み立て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861

    ColdFusion イメージの作成と操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888

    チャートとグラフの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909

    印刷用のレポートとドキュメントの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933

    Report Builder を使用したレポートの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940

    スライドプレゼンテーションの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973

    第 14 章: Web 要素および外部オブジェクトの使用XML および WDDX の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982

    Web サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1015

    ColdFusion Web サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1042

    CFML アプリケーションへの J2EE および Java 要素の統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1045

    Microsoft .NET アセンブリの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1068

    CFML アプリケーションでの COM および CORBA オブジェクトの統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1089

    第 15 章: 外部リソースの使用電子メールの送受信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1110

    Microsoft Exchange サーバーとの対話 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1125

    リモートサーバーとの対話 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1150

    サーバー上のファイルの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1160

    イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1171

    インスタントメッセージングイベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1194

    SMS イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1209

    FMS イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1225

  • viCOLDFUSION 9 アプリケーションの開発目次

    Data Services Messaging イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1228

    Data Management イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1233

    カスタムイベントゲートウェイの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1237

    Eclipse 用の ColdFusion Extension の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1251

  • 1

    第 1 章: ColdFusion 9 の新機能

    ColdFusion 9 には、アプリケーションの開発と管理を効率化するため新しく追加された機能や強化された機能があります。このリリースでは、アプリケーションのパフォーマンスが改善されており、コード、テンプレート、アプリケーションをより詳細に制御できるようになっています。

    ColdFusion 9 の主な新機能を次に示します。

    ORM のサポートColdFusion オブジェクトリレーショナルマッピング (ColdFusion ORM) は、データ中心アプリケーションを構築するための強力な RAD (Rapid Application Development) ソリューションです。SQL コードを記述せずにオブジェクトのみを使用してアプリケーションを構築できるようにすることで、リレーショナルデータベースと ColdFusion コンポーネントの間の仲介を行います。オープンソースの Hibernate ライブラリが基本エンジンとして使用されます。

    ColdFusion ORM には次の特徴があります。

    • エンタープライズ向けの Rapid Application Development インフラストラクチャ

    • キャッシュ機能や遅延ロードなどのパフォーマンス最適化機能が組み込まれている

    • アプリケーションコードが簡潔になり、管理が容易になる

    • データベースベンダに依存しない

    詳細については、ColdFusion ORMを参照してください。

    Flex と AIR の統合

    Adobe AIR アプリケーションオフライン機能 オフライン状態の AIR アプリケーションをサポートする機能には、データの永続性や同期などの機能があります。クライアント側で SQLite を使用し、サーバー上で ORM を使用することにより、アプリケーションがオンライン状態に戻ったときの競合解決およびデータ同期が ColdFusion によって自動的に管理されます。

    ActionScript プロキシ AIR/Flex クライアントから ColdFusion サービスにアクセスするときに使用します。MXML タグはサーバー上の ColdFusion タグにマップできます。

    詳細については、オフライン AIR アプリケーションのサポートを参照してください。

    Flash Remoting の機能強化ColdFusion 9 では Flash Remoting の設計が見直され、パフォーマンスとリモート操作が高速化されています。このリリースでは循環参照がサポートされています。

    詳細については、Flash Remoting Update の使用を参照してください。

    BlazeDS との統合BlazeDS を使用すると、ColdFusion でメッセージングのサポートが可能になります。デフォルトでは、ColdFusion と同時に BlazeDS がインストールされます。

  • 2COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    言語の機能強化

    CFScript言語構文 throw、writedump、writelog、location および trace という基本言語構文を使用できるようになりました。

    スクリプト関数 このリリースでは、query、mail、http、storedproc、pdf および ftp という新しい関数が CFC として実装されています。

    キーワード このリリースでは、abort、exit、include、param、property、rethrow および throw のキーワードが新しく追加されています。

    操作 CFscript で、import 操作と new 操作がサポートされるようになりました。

    さらに、ColdFusion では次の機能がサポートされるようになりました。

    • CFScript のみによるコンポーネントとインターフェイスの作成

    • CFScript での関数宣言の完全制御

    • Java Doc スタイルのコメント

    • 三項演算子

    詳細については、CFML スクリプト言語による ColdFusion ページの拡張を参照してください。

    onServerStartサーバーの起動時にのみ実行される onServerStart メソッドを含む CFC がサポートされるようになりました。この関数は、アプリケーションのインスタンス化、ロギングの設定、スケジューラの設定など、アプリケーションに依存しないタスクを使用する場合に便利です。

    詳細については、『CFML リファレンス』で「onServerStart」の説明を参照してください。

    言語に関するその他の機能強化cfsrcipt および onServerStart の新機能に加え、このリリースでは言語に関して次の機能が強化されています。

    • ネストされた cftransaction

    • CFC における UDF 名の競合解決

    • ローカルスコープ

    • 関数の任意の場所における Var スコープのサポート

    • CFC の cfproperty に対する暗黙的な getter および setter

    他の製品およびテクノロジーとの統合

    新しい Ajax コントロールColdFusion 9 では、CFML タグと属性を使用して、新しい Ext JS 3.0 ライブラリを活用する、さまざまな Ajax コントロールにアクセスできるようになりました。これらのコントロールは、Ajax 内部の動作を知らなくても、わずかなコードを記述するだけで利用できます。

  • 3COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    新しい Ajax コントロールでは、次のものがサポートされています。

    • 地図

    • メディアプレーヤー

    • 複数ファイルのアップロード

    • 拡張データグリッド

    • 改善された Ajax プラミング (plumbing)

    • 強化された自動候補表示

    • アコーディオンナビゲーション

    • 進捗インジケータ

    • 確認、アラート、プロンプトのダイアログボックス

    • スライダ

    詳細については、Ajax ユーザーインターフェイスコンポーネントおよび機能の使用を参照してください。

    SharePoint との統合cfsharepoint タグを使用すると、ColdFusion アプリケーションから Microsoft Office SharePoint Server と操作できます。ColdFusion は、Microsoft Windows SharePoint Services 2.0 または 3.0、および Microsoft Office SharePoint Portal Server 2003 または 2007 と組み合わせて使用できます。

    次の操作が可能になりました。

    • ColdFusion アプリケーションから SharePoint アクションをロードする

    • カスタム Web パーツを使用して SharePoint から ColdFusion アプリケーションにアクセスする

    • シングルサインオンを使用し、SharePoint で ColdFusion アプリケーションを表示する

    詳細については、SharePoint の統合を参照してください。

    Office ファイルとの相互運用性 ColdFusion には、PDF、Adobe Flash、および Adobe Connect と連携するためのインターフェイスが用意されています。ColdFusion では、Office アプリケーション (Excel、PowerPoint など ) との統合をサポートする機能がさらに拡張されています。

    この機能を使用すると、次の操作が可能です。

    • cfspreadsheet タグを使用して MS Excel スプレッドシートの作成、読み取り、更新を行う

    • cfdocument タグを使用して MS Word および MS PowerPoint から PDF を自動的に生成する

    • cfpresentation タグを使用して HTML から PowerPoint プレゼンテーションをダイナミックに生成する

    • cfpresentation タグを使用して MS PowerPoint から Connect プレゼンテーションを作成する

    詳細については、Office ファイルとの相互運用性Office ファイルとの相互運用性を参照してください。

    Apache Solr サーバーとの統合Solr は、Lucene Java 検索ライブラリをベースとした、オープンソースのエンタープライズ検索サーバーです。これは Verity の代わりとなる強力なサーバーです。

  • 4COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    Solr を使用すると、インデックス作成時および検索時のパフォーマンスが向上します。cfsearch タグを使用すると、ドキュメントのインデックスを作成して、それらのページにアクセスできます。インデックスを作成するページの数に制限はありません。

    ColdFusion には、Verity から簡単に移行するための方法が用意されています。また、Solr では Macintosh 環境もサポートされています。

    詳細については、Solr 検索のサポートと、『ColdFusion 設定と管理』の「Solr サーバーとコレクション」を参照してください。

    パフォーマンスの向上

    キャッシュ制御の強化ColdFusion 9 では、キャッシュを制御するための機能が強化されています。

    次の機能を使用すると、アプリケーションのパフォーマンス向上に役立ちます。

    • ページフラグメントのキャッシュ

    • メモリ内でのキャッシュ。メモリがキャッシュのデフォルトの場所になりました。

    • 特定のオブジェクトのキャッシュ。これには、キャッシュ済みオブジェクトの格納、取得、フラッシュなどの機能が含まれます。

    • キャッシュ依存関係の設定

    • アイドルタイムアウトの設定

    • キャッシュ済みオブジェクトに関するメタデータの取得

    詳細については、ColdFusion アプリケーションの最適化を参照してください。

    メモリ内ファイルメモリ内ファイルを使用すると、CFM ファイルをダイナミックに生成して、メモリから直接 CFM ファイルを実行できます。メモリベースの仮想ファイルシステムを使用すると、一時的なデータの処理速度が向上します。メモリ内ファイルは、ディスクに書き込まれるのではなく、RAM に保存されます。

    ColdFusion でメモリ内ファイルを使用すると、ダイナミックコードの実行が容易になります。メモリ内ファイルはディスク上のファイルと同様に機能しますが、より高速に処理されます。メモリ内ファイルは、ファイルやディレクトリを入力または出力として使用するすべてのタグと関数でサポートされます。メモリ内ファイルはディスク上に保存されたファイルと同様に機能します。

    詳細については、メモリ内ファイルの使用を参照してください。

    クラスタリングの強化このリリースでは、CFC での query、array、datetime 型のシリアル化がサポートされています。

    パフォーマンスに関するその他の機能強化• CFC のパフォーマンス向上

    • Java メソッド呼び出しの高速化

  • 5COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    データベースに関する機能強化

    DataDirectこのリリースでは、DataDirect ドライバ 4.0 SP 1 がサポートされています。この機能には次の利点があり、データベース操作に関する機能が強化されます。

    • MySQL (Enterprise および Commercial エディション )、Oracle11g、DB2v9.5、Informix 11、SQL Server 2008 のサポート

    • IPv6 のサポート

    • デフォルトのクエリータイムアウト値を設定するオプション

    詳細については、『ColdFusion 設定と管理』のDataDirect 接続での JDBC のサポートを参照してください。

    注意: DB2、Informix、MSSQLServer、Oracle、Sybase、および MySQL (DataDirect) ドライバを使用する場合、データソースプロパティ MaxPooledStatements はデフォルトで 100 に設定されます (これまでのリリースでは 1000 に設定されていました )。メモリ関連の問題を避けるため、プールに保存するステートメントの最大数はデフォルト値から変更しないようにすることをお勧めします。

    オプション属性 datasourcedatasource 属性は、cfquery、cfinsert、cfupdate、および cfdbinfo タグのオプション属性です。この属性は Application.cfc で指定できます。

    コードアナライザColdFusion 7 または ColdFusion 8 で作成したコードは ColdFusion 9 に移行できます。

    詳細については、コードアナライザの使用を参照してください。

    サービス機能

    サービスとしての ColdFusionColdFusion では、既存のさまざまなエンタープライズサービスが Web サービスとして公開されます。これらのサービスには、SOAP および AMF/Flash Remoting を使用してアクセスできます。

    公開されるサービスには次のものがあります。

    • cfpdf

    • cfImage

    • cfdocument

    • cfmail

    • cfpop

    • cfchart

  • 6COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    公開サービスをセキュリティで保護すると、不明なアプリケーションやユーザーによるアクセスを防止できます。これ行うには、サービスへのアクセスを許可するクライアントの IP アドレス範囲を設定します。また、サービスごとにユーザーアクセスコントロールを設定することもできます。

    その他の機能強化

    Server ManagerServer Manager は、複数の ColdFusion サーバーを 1 箇所から一元的に管理するために作成された AIR ベースのデスクトップアプリケーションです。

    ColdFusion サーバー管理者はこのアプリケーションを使用して、複数のサーバーを監視または管理したり、特定の ColdFusion サーバーの設定を他の ColdFusion サーバーに適用することができます。

    Server Manager すると、複数のサーバーやクラスタの間で設定の一貫性が確保されるので、システムの管理が容易になり、エラーが最小限に抑えられます。

    Server Manager では、次の操作を行えます。

    • データソースを作成する

    • タスクのスケジュールを設定して、アラートを通知する

    • ホットフィックスを適用する

    • ColdFusion サーバーのクラスタ全体でキャッシュをクリアする

    • サーバー間で設定を比較する

    • サーバーヘルスを監視する

    詳細については、Server Manager の使用を参照してください。

    ポートレット規格のビルトインサポートこのリリースでは、JSR-168、JSR-286、および WSRP 仕様がサポートされています。これにより、主要なポータルサーバー向けに ColdFusion を使用したコンテンツを簡単に作成できるようになりました。

    ColdFusion コンポーネントは、ポートレットとして定義できます。ColdFusion アプリケーションを含むすべてのエンタープライズアプリケーションを 1 つの統合ポータルで公開することで、さらに魅力的なコンテンツをアプリケーションユーザーに提供できます。

    詳細については、ColdFusion ポートレットを参照してください。

    PDF 機能次のリストに、新しく追加された機能および強化された機能を示します。

    • PDF フォームでの FDF のサポート

    • PDF パッケージ

    • サイズの最適化

    • cfpdf タグによる PDF ドキュメントへのヘッダおよびフッタの追加

    • cfpdf タグによる PDF への透かし入れにおける RGB/ARGB、cfimage、およびアクセス可能なイメージのサポート

    • サムネール生成の品質およびパフォーマンスの向上

  • 7COLDFUSION 9 アプリケーションの開発ColdFusion 9 の新機能

    • PDF からのイメージおよびテキスト抽出のサポート

    詳細については、PDF ドキュメントの組み立てを参照してください。

    IMAP のサポートcfimap タグを使用して IMAP サーバーにクエリーを送信し、複数のフォルダ内のメールを取得または管理できます。

    この機能を使用すると、次のことが可能になります。

    • メッセージを取得して、クエリーオブジェクトに情報を格納する。ColdFusion の一時フォルダまたは新規フォルダに添付ファイルをダウンロードすることもできます。

    • 不要なメールやユーザーが作成したフォルダを削除する

    • 複数のメッセージに既読のマークを付ける

    • フォルダの作成、フォルダ名の変更、またはフォルダ間でのメッセージの移動によって、メールフォルダを管理する

    詳細については、『CFML リファレンス』で「cfimap」の説明を参照してください。

    JRE の仕様このリリースには、Solaris を除くすべてのプラットフォーム用に JRE 6 Update 14 が付属しています。Solaris では JRE 6 Update 12 を使用します。

  • 8

    第 2 章: はじめに

    『Adobe® ColdFusion® 9 アプリケーションの開発』ガイドでは、Adobe ColdFusion を使用してインターネットアプリケーションを開発するためのツールについて説明します。本マニュアルは、ColdFusion を学習している Web アプリケーションプログラマや、ColdFusion のプログラミング知識を拡充したいプログラマを対象としています。本マニュアルを読めば、ColdFusion に用意されているツールを使用してさまざまな種類の複雑な Web アプリケーションを開発するための基礎知識を習得できます。

    本マニュアルの使用について 本マニュアルには、HTML に関する基本的な情報だけでなく、詳細な情報も記載されています。ColdFusion の基本機能を使用したことがある方や、Adobe ColdFusion Administrator の「ファーストステップ」をご覧になった方には、より使いやすい構成になっています。本マニュアルを読むときは、CFML 言語の要素に関する詳細な情報が記載されている『CFML リファレンス』を参照することをお勧めします。

    Adobe ColdFusion 9 マニュアルについてColdFusion のマニュアルは、あらゆるユーザーを総合的にサポートできるように作成されています。

    マニュアルセットColdFusion のマニュアルセットには、次のマニュアルが含まれています。

    オンラインマニュアルの参照ColdFusion のすべてのマニュアルは、HTML 形式および Adobe Acrobat PDF (Portable Document Format) 形式でオンラインから入手できます。Adobe Web サイトの ColdFusion マニュアルホームページ www.adobe.com/go/learn_cfu_support_jp にアクセスしてください。また、www.adobe.com/go/learn_cfu_docs_jp では、コメントの追加と閲覧が可能なオンラインマニュアルを参照することもできます。

    タイトル 説明

    『Adobe® ColdFusion® 9 インストール』

    Windows、Macintosh、Solaris、Linux、および AIX 環境でのシステムインストールおよび基本設定について説明します。

    『Adobe® ColdFusion® 9 設定と管理』

    ColdFusion の管理作業 (サーバー設定の管理、データソースの設定、セキュリティの管理、ColdFusion アプリケーションのデプロイ、キャッシュ、CFX タグのセットアップ、ColdFusion サーバーモニタを使用したサーバーアクティビティの監視、Web サーバーの設定など ) について説明します。

    『Adobe® ColdFusion®9 アプリケーションの開発』

    ダイナミック Web アプリケーションの開発方法について説明します。このガイドには、CFML プログラミング言語と ColdFusion の機能 (ColdFusion Web サービス、ColdFusion ポートレット、ColdFusion ORM、AJAX サポート、Flex および AIR 統合など ) の使用方法と、他社の製品およびテクノロジー (Microsoft Office、OpenOffice、SharePoint など ) との統合に関する詳細情報が含まれています。

    『Adobe® ColdFusion® 9 CFML リファレンス』

    すべての ColdFusion タグ、関数、変数に関する説明、シンタックス、使用方法、コード例が含まれています。

    http://www.adobe.com/go/learn_cfu_support_jphttp://www.adobe.com/go/learn_cfu_docs_jp

  • 9

    第 3 章: ColdFusion の概要

    Adobe ColdFusion を使用すれば、ダイナミックなインターネットアプリケーションを作成できます。

    インターネットアプリケーションと Web アプリケーションサーバーについてColdFusion は、Web アプリケーションサーバーで実行するインターネットアプリケーションを開発するためのツールです。

    Web ページとインターネットアプリケーションについてインターネットは、スタティックな HTML ページの集まりから、アプリケーションをデプロイするためのプラットフォームへと発展してきました。スタティックな Web ページの集合であったインターネットは、まず、ダイナミックなインタラクティブコンテンツへと進化しました。一定のコンテンツしか表示できないページで商品やサービスを宣伝するだけであった企業は、ダイナミックページを導入することで、e コマースから業務プロセスの管理まで、広範なビジネス活動をインターネットで展開できるようになりました。たとえば書店であれば、スタティックな HTML ページを使用することで、店舗の地図や提供しているサービス (特別注文など ) を掲示したり、サイン会などの今後のイベントを告知したりすることができますが、ダイナミックな Web サイトを構築すれば、顧客からオンラインで注文を受けたり、本の感想を投稿できるページを用意したり、顧客の好みに応じて購入アドバイスを表示したりすることができます。

    さらに最近では、さまざまなアプリケーションを実装するためのインフラストラクチャとしてインターネットが活用されています。XML、Web サービス、J2EE (Java 2 Platform, Enterprise Edition)、Microsoft .NET などのテクノロジーが登場したことで、ビジネス活動のさまざまな側面がインターネットに統合できるようになりました。インターネットを使用すれば、顧客サービス、受注、受注処理、請求などの広範なビジネス活動を統合することができます。

    Adobe ColdFusion は、ダイナミックな Web サイトやインターネットアプリケーションをすばやく簡単に構築できるアプリケーション開発環境です。ColdFusion を使用すれば、複雑なテクノロジーに精通していなくても高度な Web サイトやインターネットアプリケーションが開発でき、スキルの高い開発者は最新のインターネットテクノロジーも活用できます。

    Web アプリケーションサーバーについて通常、Web ブラウザがリクエストを行うと、Microsoft IIS (Internet Information Server) や Apache Web サーバーなどの Web サーバーがそれを処理して、リクエストされた情報をブラウザに返します。Web サーバーが返す情報としては、HTML ファイルや FLA ファイルなどがあります。

    Web サーバーの役割は、リクエストが届くのを待ち受けてそのリクエストにできるだけ早く応答することなので、Web サーバーが実行できることは限られています。たとえば、Web サーバーでは次のタスクは行えません。

    • データベース、他のリソース、または他のアプリケーションの操作

    • ユーザーの好みやリクエストに基づいたカスタム情報の提供

    • ユーザー入力の検証

    Web サーバーが行うのは、基本的に、情報を見つけて Web ブラウザに返すことだけです。

    Web サーバーの機能を拡張するには、Web アプリケーションサーバーを使用します。Web アプリケーションサーバーは、前述のようなタスクを行えるように Web サーバーの機能を拡張するためのプログラムです。

  • 10COLDFUSION 9 アプリケーションの開発ColdFusion の概要

    Web サーバーと Web アプリケーションサーバーの連携Web サーバーと Web アプリケーションサーバーが連携してページリクエストを処理する過程を、次の手順に示します。

    1 ユーザーがブラウザに URL を入力してページをリクエストすると、Web サーバーがそのリクエストを受信します。

    2 Web サーバーはファイル名の拡張子を調べて、そのページを Web アプリケーションサーバーで処理するかどうかを判断します。次のいずれかの処理が行われます。

    • シンプルな Web ページ (拡張子が HTM または HTML のページなど ) をユーザーがリクエストした場合は、Web サーバーがそのリクエストを処理し、ブラウザにファイルを送信します。

    • Web アプリケーションサーバーで処理する必要があるページ (ColdFusion リクエストであれば拡張子が CFM、CFML、または CFC のページ ) をユーザーがリクエストした場合は、Web サーバーから Web アプリケーションサーバーにそのリクエストが渡されます。Web アプリケーションサーバーはページを処理して、その結果を Web サーバーに送信します。Web サーバーは受信した結果をブラウザに返します。このプロセスを次の図に示します。

    Web アプリケーションサーバーを使用すれば、プログラムの命令を実行して、Web ブラウザで処理可能な出力を生成できるので、データを活用したインタラクティブな Web サイトを実現できます。たとえば、次のことが行えます。

    • 他のデータベースアプリケーションにクエリーを発行してデータを取得する。

    • フォーム要素にデータをダイナミックに入力する。

    • Flash データをダイナミックに生成する。

    • アプリケーションのセキュリティを提供する。

    • HTTP、FTP、LDAP、POP、SMTP などの標準プロトコルを使用して他のシステムを統合する。

    • ショッピングカートや e コマースの Web サイトを作成する。

    • ユーザーがフォームを送信したら電子メールメッセージを返す。

    • キーワード検索の結果を返す。

    ColdFusion についてAdobe ColdFusion は、ダイナミックなインターネットアプリケーションを作成するためのスクリプト環境を備えたサーバーです。CFML (ColdFusion Markup Language) は、習得しやすいタグベースのスクリプト言語で、エンタープライズデータへのアクセス機能や、強力なビルトイン検索機能、グラフ作成機能などを備えています。ColdFusion を使用すれば、ダイナミックな Web サイト、コンテンツパブリッシュシステム、セルフサービス型アプリケーション、コマースサイトなどを簡単に構築してデプロイできます。

    2. Web サーバーでページリクエストを受け取ります。.

    5. Web サーバーはブラウザに出力内容を送信します。

    3. Web サーバーはアプリケーションサーバーにページを処理するように指示します。

    4. アプリケーションサーバーはページを処理し、出力を生成します。

    W eb ServerA p p licatio n

    Server

    1. Web ブラウザからweb ページをリクエストします。.

    In te rn e t

  • 11COLDFUSION 9 アプリケーションの開発ColdFusion の概要

    ColdFusion ページは、Web アプリケーションの作成に使用するプレーンテキストファイルです。ColdFusion アプリケーションを作成するには、すべてのコードを自分で入力してもかまいませんし、一部のエディタで提供されているウィザードを使用して大半のコードを生成することもできます。

    ColdFusion ページの保存ColdFusion サーバーで処理するページは、ColdFusion がインストールされているコンピュータに保存する必要があります。ローカルサーバー (ColdFusion が稼動しているコンピュータ ) 上でページを作成している場合は、そのコンピュータにページを保存します。リモートサーバーを使用している場合は、そのサーバーにページを保存します。

    J2EE 設定を使用している場合は、通常、ColdFusion の Web アプリケーションのルートディレクトリの下に ColdFusion ページを保存します。たとえば、JRun の J2EE 設定でデフォルトのディレクトリ構造を使用している場合は、/servers/cfusion/cfusion-ear/cfusion-war の下にページを保存します。

    ColdFusion ページのテスト作成したコードが期待どおりに動作するか確認するには、http://localhost/test/mypage.cfm などの該当する URL にアクセスして、ColdFusion ページをブラウザで表示します。ビルトイン Web サーバーを使用している場合は、http://localhost:8500/test/cfpage.cfm などのように、使用するポートを URL で指定します。localhost は、ページをローカルで表示する場合にのみ有効です。

    注意: Vista では、::1 というアドレスが localhost に相当します。ColdFusion の GetLocalHostIP 関数を使用すれば localhost の IP アドレスを取得できます。

    リモートサイトの URL にアクセスする場合は、http:///test/mypage.cfm のように、ColdFusion がインストールされているサーバーのサーバー名または IP アドレスを指定します。J2EE 設定の ColdFusion を使用している場合は、http:////mypage.cfm のように、必要に応じてコンテキストルートも指定します。たとえば、EAR ファイルをデプロイし、cfconroot というデフォルトのコンテキストルートを使用している場合は、http://localhost/cfconroot/test/mypage.cfm と指定します。

    ColdFusion の要素ColdFusion は、次のコア要素から構成されます。

    • ColdFusion スクリプト環境• CFML

    • ColdFusion Administrator

    • Verity 検索サーバー

    ColdFusion スクリプト環境ColdFusion スクリプト環境は、インターネットアプリケーションを開発するための効率的なモデルを提供します。この ColdFusion スクリプト環境の中核をなしているのが、CFML (ColdFusion Markup Language) です。CFML はタグベースのプログラミング言語で、Web プログラミングに必要な低レベル処理の多くが高レベルのタグや関数にカプセル化されています。

    CFMLCFML (ColdFusion Markup Language) は HTML に似たタグベースの言語で、固有のタグや関数が用意されています。CFML を使用すれば、データベースコマンド、条件演算子、高度な書式制御関数などを使用して標準の HTML ファイルを拡張し、保守を行いやすい Web アプリケーションを迅速に作成できます。また、HTML の拡張以外にも CFML を活用できます。たとえば、Flash 要素と CFML だけで構成される Flash 出力を作成したり、他のアプリケーションで利用可能な Web サービスを作成したりすることもできます。

  • 12COLDFUSION 9 アプリケーションの開発ColdFusion の概要

    詳細については、14 ページの「CFML の要素」を参照してください。

    CFML タグCFML のタグは HTML のタグに似ています。開始タグと (多くの場合 ) 終了タグがあり、各タグは山括弧で囲まれています。終了タグの前にはスラッシュ記号 (/) があり、すべてのタグの名前は cf で始まります。たとえば、次のようになります。

    tag body text and CFML

    CFML は、一種のアブストラクションレイヤーです。インターネットアプリケーションのプログラミングで必要な多くの低レベル処理が隠蔽されているので、生産性の向上が図れます。また、CFML は強力で柔軟性が高いので、ファイル、データベース、レガシーシステム、メールサーバー、FTP サーバー、オブジェクト、コンポーネントなどを統合するアプリケーションを簡単に構築できます。

    CFML タグを使用すれば、さまざまな処理が行えます。条件処理やループ処理などのプログラミング構文を使用したり、グラフ作成や全文検索などのサービスを利用することもできます。また、FTP、SMTP/POP、HTTP などのプロトコルにアクセスすることもできます。次の表に、代表的な ColdFusion タグの例を示します。

    CFML タグの詳細については、『CFML リファレンス』を参照してください。

    CFML 関数と CFScriptCFML では、文字列操作、データ管理、システム機能などのさまざまな処理がビルトイン関数として用意されています。また、CFScript というビルトインスクリプト言語も用意されています。CFScript を使用すれば、JavaScript などの一般的なプログラミング言語に近い形でコードを記述できます。

    CFML の拡張CFML では、カスタムタグやユーザー定義関数 (UDF) を作成したり、COM、C++、Java のコンポーネント (JSP タグライブラリなど ) を統合したりすることで、CFML を拡張できます。また、ColdFusion コンポーネント (CFC) を作成することで、関連する関数やプロパティをカプセル化してそのインターフェイスを提供できます。

    これらの機能を使用すれば、構築するアプリケーションや Web サイトに適した再利用可能な機能を簡単に作成できます。

    CFML 開発ツールAdobe® Dreamweaver® CS3 を使用すれば、ColdFusion アプリケーションを効率的に開発できます。Dreamweaver には、CFML のデバッグツールなど、ColdFusion の開発を効率化しサポートするさまざまな機能が用意されています。CFML は HTML に似たテキスト形式で記述されており、ColdFusion ページで HTML を使用することも多いので、HTML エディタやメモ帳などのテキストエディタを使用して ColdFusion アプリケーションを作成することもできます。

    タグ 用途

    cfquery データベースへの接続を確立し (確立されていない場合 )、クエリーを実行して結果を ColdFusion 環境に返します。

    cfoutput ColdFusion の関数、変数、式などの処理結果を使用して出力を表示します。

    cfset ColdFusion 変数に値を設定します。

    cfmail アプリケーション変数、クエリー結果、またはサーバーファイルを使用して、アプリケーションから SMTP メールメッセージを送信します (メールを受信するには cfpop という別のタグを使用します )。

    cfchart アプリケーションデータやクエリー結果を、Flash、JPG、または PNG 形式の棒グラフや円グラフなどに変換します。

    cfobject COM (Component Object Model) コンポーネント、Enterprise JavaBeans などの Java オブジェクト、一般的な CORBA (Object Request Broker Architecture) オブジェクトなどの、他のプログラミング言語で作成されたオブジェクトを呼び出します。

  • 13COLDFUSION 9 アプリケーションの開発ColdFusion の概要

    ColdFusion 9 にはラインデバッガが用意されており、Eclipse™ または Adobe Flex™ Builder™ で ColdFusion アプリケーションをデバッグすることができます。

    Verity 検索サーバーVerity 検索サーバー (Verity 検索エンジン ) を使用して、ColdFusion サイトに保存されているドキュメントおよびデータを全文検索することができます。

    ColdFusion AdministratorColdFusion Administrator では、ColdFusion アプリケーションサーバーの設定や管理が行えます。ColdFusion Administrator は、セキュリティ保護された Web ベースのアプリケーションで、インターネットに接続しているコンピュータから Web ブラウザでアクセスできます。これには、ColdFusion サーバーのステータスを確認できるサーバーモニタが含まれています。

    ColdFusion Administrator の詳細については、『ColdFusion 設定と管理』を参照してください。

    J2EE と ColdFusion アーキテクチャについてインターネットソフトウェアの市場が成熟するにつれて、ColdFusion アプリケーションなどの分散インターネットアプリケーションに必要なインフラストラクチャサービスが標準化されてきました。今日最も広く採用されている標準は J2EE (Java 2 Platform, Enterprise Edition) 仕様です。J2EE は、複数のオペレーティングシステムでデータベース、プロトコル、およびオペレーティングシステム機能を利用するための、共通インフラストラクチャサービスのセットを提供します。

    ColdFusion と J2EE プラットフォームについてColdFusion は Java テクノロジープラットフォーム上に実装されています。データベース接続、ネーミングサービスやディレクトリサービス、その他のランタイムサービスなどの基本サービスの多くは、J2EE アプリケーションサーバーを使用して提供されています。ColdFusion は、組み込みの J2EE サーバーを使用するように設定する (サーバー設定にする ) ことも、独立した J2EE アプリケーションサーバーに J2EE アプリケーションとしてデプロイする (マルチサーバー設定または J2EE 設定にする ) ことも可能です。ColdFusion エンタープライズ版には、JRun J2EE アプリケーションサーバーの完全機能版が含まれています。または、IBM WebSphere や BEA WebLogic などのサードパーティの J2EE サーバーにデプロイすることもできます。

    ColdFusion 設定の詳細については、『ColdFusion インストール』を参照してください。

    ColdFusion のスクリプト環境は J2EE プラットフォーム上に実装されているので、J2EE プラットフォームの強力な機能が活用できるとともに、使いやすいスクリプト環境やビルトインサービスも利用できます。ColdFusion は J2EE プラットフォーム上に構築されているので、J2EE や Java の機能を ColdFusion アプリケーションに簡単に統合できます。たとえば、ColdFusion ページでは次のことが行えます。

    • JSP (Java Server Pages) や Java サーブレットとセッションデータを共有する。

    • カスタムの JSP タグライブラリをインポートして、ColdFusion のカスタムタグと同様に使用する。

    • J2EE Java API、JavaBeans、Enterprise JavaBeans などの Java オブジェクトを統合する。

    ColdFusion での J2EE 機能の使用方法の詳細については、1045 ページの「CFML アプリケーションへの J2EE および Java 要素の統合」を参照してください。

  • 14

    第 4 章: CFML プログラミング言語

    CFML の要素CFML には、タグ、関数、定数、変数、式、CFScript などの基本要素が用意されています。これらの要素を使用すれば、インタラクティブな Web アプリケーションを簡単に開発できます。

    CFML の基礎CFML はダイナミックアプリケーションを開発するためのツールであり、プログラミング言語のさまざまな特徴を利用できますそれらの特徴には、関数、式、変数、定数、フロー制御構造 (if-then やループなど ) が含まれます。また、CFML には "言語内の言語 " である CFScript が用意されており、JavaScript に似たシンタックスでさまざまな処理を記述できます。

    これらの要素や、コメント、データ型、エスケープ文字、予約語などの基本的な CFML エンティティを使用すれば、複雑なアプリケーションを作成できます。

    コメントColdFusion のコメントと HTML のコメントはよく似ています。ただし、ハイフンを 2 つではなく 3 つ挿入する点が異なります。次に例を示します。

    ColdFusion サーバーは、Web サーバーにページを返す前に、そのページに含まれている ColdFusion コメントをすべて削除します。したがって、ブラウザで受信されるページにコメントは含まれていません。ユーザーがページのソースを表示してもコメントは表示されません。

    CFML コメントは、タグ本文以外にも、開始タグ、関数呼び出し、# 記号で囲まれた変数テキストの中に挿入できます。ColdFusion では、コメント内のテキストは無視されます。 )#

    この方法は、式の一部や、オプションの属性や引数などを一時的にコメントアウトしたい場合に便利です。

    次の例のように、コメントをネストすることもできます。

    #errormessage1#

    --->

    このようにネストは、アプリケーションのテスト時に、特定のコードセクションを一時的に無効にしたい場合に便利です。

    コメントの中にコメントを埋め込むことは可能ですが、このテクニックを使用する際は注意が必要です。

    注意: コメントは、Variable") のように文字列の中に挿入することもできません。

  • 15COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    タグColdFusion のタグは、情報を処理するように ColdFusion サーバーに指示するためのマークです。ColdFusion サーバーで処理されるのは、タグの本文のみです。ColdFusion の外にあるテキストはそのまま Web サーバーに返されます。ColdFusion ではさまざまなビルトインタグが使用でき、カスタムタグも作成できます。

    タグのシンタックスColdFusion のタグは、HTML のタグと同じ形式で記述します。タグは山括弧 (< と >) で囲まれており、0 個以上の属性を指定できます。多くの ColdFusion タグには本文があります。つまり、開始タグと終了タグの間に、処理するテキストを記述します。たとえば、次のようになります。

    Hello #YourName#!

    cfset や cfhttp のように、本文がないタグもあります。次の例のように、必要な情報はすべて開始文字 () の間に挿入します。

    注意: cfset タグは他のタグと異なり、本文も引数も持ちません。このタグは、変数に値を代入するステートメントを囲みます。cfset タグでは、結果変数に値を代入せずに関数を呼び出すこともできます。

    本文を持つことができるタグでも、必要な情報を属性ですべて指定できる場合は、必ずしも本文を記述する必要はありません。タグに本文がない場合は、終了タグを省略して、開始タグの終了文字 (>) の前にスラッシュを置くこともできます。たとえば、次のようになります。

    ほとんどの場合は、この例のように attributeName=" attributeValue" の形式を使用して、タグの中で属性を直接指定します。または、すべての属性を 1 つの構造体に格納して、その構造体を単一の attributeCollection 属性で指定することもできます。たとえば、次のように記述します。

    cfmodule を除くすべてのビルトイン ColdFusion タグでは、attributeCollection 属性を指定した場合はその他の属性は指定できません。この方法は、タグの引数の個数や値が処理結果によって異なる場合に便利です。この場合の例を次に示します。

  • 16COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    #cfhttp.fileContent#

    注意: attributeCollection 属性は、cfmodule タグおよびカスタムタグで使用する場合と、その他のタグで使用する場合とでは、その性質が異なります。cfmodule タグおよびカスタムタグでは、attributeCollection 属性に加えて、カスタムタグ属性を明示的に指定することができます。また、cfmodule タグでは、attributeCollection 属性に name および template 属性を含めることはできません。これらの属性は、cfmodule タグで直接指定します。

    attributeCollection 属性は、次を除くすべてのタグで使用できます。

    ビルトインタグビルトインタグは、ColdFusion の中核をなす機能です。これらのタグを使用すれば、次のようなさまざまな処理が行えます。

    • 変数の操作

    • インタラクティブフォームの作成

    • データベースへのアクセスおよび操作

    • データの表示

    • ColdFusion ページでの実行フローの制御

    • エラー処理

    • ColdFusion ページの処理

    cfargument cfelseif cflogout cfset

    cfbreak cffunction cfloop cfsilent

    cfcase cfif cfparam cfswitch

    cfcatch cfimport cfprocessingdirective cftry

    cfcomponent cfinterface cfproperty

    cfdefaultcase cflogin cfrethrow

    cfelse cfloginuser cfreturn

  • 17COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    • CFML アプリケーションフレームワークの管理

    • ファイルおよびディレクトリの操作

    • Verity コレクション、COM、Java、CORBA オブジェクト、実行可能プログラムなどの外部ツールおよびオブジェクトの使用

    • mail、http、ftp、pop などのプロトコルの使用

    各タグの詳細については、『CFML リファレンス』を参照してください。

    カスタムタグColdFusion ではカスタムタグを作成できます。作成できるカスタムタグには、次の 2 つのタイプがあります。

    • ColdFusion ページである CFML カスタムタグ

    • Java、C++ などのプログラミング言語で記述する CFX タグ

    カスタムタグを使用すれば、頻繁に利用するビジネスロジックや表示コードをカプセル化できます。頻繁に利用するコードをカスタムタグとして用意しておけば、さまざまな場所から呼び出せるようになります。また、カスタムタグを使用すると、複雑なロジックを単純な 1 つのインターフェイスにまとめることができます。この方法を使用すれば、開発したコードを簡単に配布できます。タグのロジックにアクセスできないようにタグを暗号化することもできます。

    Adobe ColdFusion コンポーネントの情報交換サイト (www.adobe.com/go/learn_cfu_cfdevcenter_jp) では、無償または有償で提供されている、さまざまなカスタムタグにアクセスできます。たとえば、クライアントのブラウザで Cookie や JavaScript が有効であるかどうかを確認するカスタムタグや、あるリストボックスから別のリストボックスに項目を移動するカスタムタグなどが用意されています。これらのタグの多くは、ソースコードとともに無償で提供されています。

    CFML カスタムタグCFML でカスタムタグを記述する場合は、ビルトインタグや他のカスタムタグを含む、ColdFusion 言語のすべての機能を利用できます。CFML カスタムタグには本文と終了タグを含めることができます。CFML カスタムタグは CFML で記述するので、Java などのプログラミング言語の知識は必要ありません。CFML カスタムタグは、ユーザー定義関数と比べて多くの機能を実現できますが、効率は劣ります。

    CFML カスタムタグの詳細については、196 ページの「カスタム CFML タグの作成と使用」を参照してください。CFML カスタムタグ、ユーザー定義関数、CFX タグなどの ColdFusion コードの再利用方法の詳細および比較については、136 ページの「ColdFusion 要素の作成」を参照してください。

    CFX タグCFX タグは、Java、C++ などのプログラミング言語で記述する ColdFusion カスタムタグです。CFX タグでは、ランタイム環境へのアクセスなど、使用する言語に用意されているツールやリソースをすべて利用できます。また、CFX タグはコンパイルされているので、一般に CFML カスタムタグよりも実行速度が速くなります。クロスプラットフォームに対応している CFX タグもありますが、COM オブジェクトや Windows API を利用しているタグなど、多くの CFX タグはプラットフォーム固有です。

    CFX タグの詳細については、211 ページの「CFXAPI カスタムタグの構築」を参照してください。

    関数および演算子としてのタグColdFusion には、CFML タグに対応するさまざまな関数や演算子言語要素が用意されています。これらの要素を既存の CFScript 言語に組み合わせると、完全に CFScript 内で多数の関数や CFC を定義できます。

    新しい関数と演算子は、次のタグカテゴリに分類されます。

    • 本文を持たないタグ (cfexit や cfinclude など )

    • 本文を持つ言語タグ (cflock や cftransaction など )

    http://www.adobe.com/go/learn_cfu_cfdevcenter_jp

  • 18COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    • 本文を持つサービスタグ (cfmail や cfquery など )

    • コンポーネントや関数を定義して使用するためのタグ (cfcomponent、cfinterface、cfimport、cffunction、cfproperty、cfargument)。詳細については、113 ページの「CFScript でのコンポーネントと関数の定義」を参照してください。

    本文を持たないタグ基本的な ColdFusion タグの一部に対応する CFScript 演算子が追加されました。これらの演算子では、標準のタグ属性の一部を指定できますが、カスタム属性は使用できません。これらの演算子は値を返しません。

    CFML タグとそれに対応する CFScript シンタックスを次のリストに示します。

    • cfabort: abort ["message"];

    • cfexit: exit ["methodName"];

    • cfinclude: include "template";

    • cfparam: param [type] name [=defaultValue];

    param 属性で name=value のペアをいくつでも指定できるようになりました。また、param では、 のすべての属性を名前 / 値のペアとして指定できます。

    次に例を示します。

    param name="paramname" default="value" min="minvalue" max="maxvalue" pattern="pattern"

    • cfrethrow: rethrow;

    • cfthrow: throw "message";

    ステートメントパラメータの詳細については、『CFML リファレンス』で対応するタグ属性の説明を参照してください。

    本文を持つ言語レベルのタグColdFusion には、次に示す言語 (コンパイラ ) レベルのタグ (本文を持つタグ ) の機能を提供する CFScript 要素が含まれています。これらのタグは、本文内のコードの実行を管理します。

    • cflock: lock

    • cfthread: thread

    • cftransaction: transaction

    また、スレッドとトランザクションのサポートには、threadJoin や transactionCommit などの関数も含まれます。これらの関数を使用すると、タグと関数のどちらを使用して定義されているかにかかわらず、あらゆるスレッドやトランザクションを管理できます。

    lock、thread、および transaction 操作のシンタックスを次に示します。operationName attributeName1=value1 attributName2=value2...

    {body contents }

    cflocklock 操作には、特別な特徴や制限はありません。cflock タグの属性はすべて、有効な操作パラメータとして使用できます。次のコードでは、lock 操作を使用しています。

  • 19COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    lock scope = "request" timeout = "30" type = "Exclusive" {

    request.number = 1;

    writeoutput("E-Turtleneck has now sold "& request.number &"

    turtlenecks!");

    }

    cftransactiontransaction 操作を使用するには、begin アクションパラメータを指定します。transaction の一般的な形式を次に示します。

    TRANSACTION action="begin" [isolation="isolationValue"] {

    transaction code

    }

    transaction ブロック内では、トランザクションを管理するために次のメソッドを呼び出します。

    • transactionCommit()

    • transactionRollback([savepoint])

    • transactionSetSavepoint([savepoint])

    savepoint パラメータは、セーブポイントを識別する文字列です。

    注意: これらのメソッドは、cftransaction タグの本文でも使用できます。

    transaction 操作は、ネストすることもできます。ネストされたトランザクションの詳細については、『CFML リファレンス』の cftransactionを参照してください。

    ネストされた transaction 操作の使用例を次に示します。

    qry = new Query();

    qry.setDatasource("test");

    qry.setSQL("delete from art where artid=62");

    qry.execute();

    TRANSACTION action="begin"

    {writeoutput("Transaction in cfscript test");

    TRANSACTION action="begin" {

    qry.setSQL("insert into art(artid, artistid, artname, description, issold, price)

    values ( 62, 1, 'art12', 'something', 1, 100)");

    qry.execute();}

    transactionSetSavepoint("sp01");

    qry.setSQL("update art set artname='art45' where artid=62");

    qry.execute();

    transactionSetSavepoint("sp02");

    qry.setSQL("update art set artname='art56' where artid=62");

    qry.execute();

    transactionrollback("sp02");

    transactioncommit();

    }

    cfthreadthread 操作を使用するには、run アクションパラメータを指定します。thread は、操作本文のコードを実行します。thread ブロックの一般的な形式を次に示します。THREAD name="text" [action="run"] [priority="priorityValue"

    application-specific attributes] {

    thread code

    }

  • 20COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    thread 操作本文のコードは、単一の ColdFusion スレッドで実行されます。本文の外側にあるコードは、このスレッドの一部としては実行されません。スレッドを管理するには、次のメソッドを使用します。

    • threadTerminate(threadName)

    この関数を使用すると、threadName パラメータで指定されたスレッドが終了します。この関数の動作は、cfthread action="terminate" と同じです。

    • threadJoin([[threadName], timeout])

    この関数を使用すると、指定されたスレッドに現在のスレッドが結合されます。現在のスレッドは、指定されたスレッドが完了するか、タイムアウト期間が経過するまで (いずれかの条件が先に満たされるまで ) 待機します。thread 関数ブロック内における現在のスレッドはそのブロックスレッドに属し、thread 関数ブロック外における現在のスレッドはページスレッドになります。threadName パラメータでは、ページスレッドに結合するスレッドをカンマで区切って指定します。この属性を省略すると、現在のスレッドは、すべての ColdFusion スレッドの実行が完了するまで待機します。timeout パラメータでは、指定したスレッドの処理が完了するまで呼び出し元のスレッドを待機させる最大時間をミリ秒単位で指定します。未完了のスレッドがある場合でも、タイムアウト期間が経過すると、現在のスレッドの処理が直ちに開始されます。この属性を省略した場合、現在のスレッドは、指定されたすべてのスレッドの実行が完了するまで待機します。

    注意: これらの関数は、cftransaction タグを使用して作成したトランザクションと組み合わせて使用することもできます。

    本文を持つサービスタグColdFusion には、次のサービスタグに対応するオブジェクトが用意されており、これらのオブジェクトは CFC として実装されます。

    • cfftp

    • cfhttp

    • cfmail

    • cfpdf

    • cfquery

    • cfstoredproc

    これらのタグは本文を持ち、クエリーの実行やメールの送信などのサービスを提供します。これらのタグの多くは action 属性を持ちますが、残りのタグは暗黙的なアクション (execute など ) を持ちます。cfmail と cfpdf を除く各サービスタグでは、該当するプロパティセットを含むコンポーネントが返され、データにアクセスするにはそれらのプロパティに対して getter を呼び出す必要があります。

    注意: 以前は、getName() メソッドおよび getResult() メソッドを呼び出すと、クエリーの結果セット、pdf オブジェクト、または ftp 接頭辞などのデータが返されていましたが、現在は、その代わりに、適切なプロパティセットを含むコンポーネントが返されるようになりました。

    オブジェクト名は、タグ名から cf 接頭辞を取り除いたものになります (ftp など )。これらのオブジェクトは、子タグの機能 (cfmailpart や cfmailparam など ) もサポートします。

    注意: 暗黙的な setter が使用されているときに cfmailpart や cfmailparam などの子タグが追加された場合、それらのタグは CFC 変数スコープ内に追加されるため、スレッドセーフティの問題が発生する可能性があります。したがって、サービスごとに新しいコンポーネントを作成することをお勧めします。属性の状態を保持する必要がある場合、初期化された属性値を保持するには、そのコンポーネントに対して duplicate() を使用します。

    これらのタグを関数で使用するには :

    1 サービスオブジェクトをインスタンス化します。

    2 オブジェクトの属性と子タグを設定します。

  • 21COLDFUSION 9 アプリケーションの開発CFML プログラミング言語

    3 オブジェクトに対してアクションを実行します。

    注意: 対応するタグとは異なり、これらの関数では、アプリケーション固有のパラメータを使用できません。使用できるパラメータは、ColdFusion で直接サポートされるパラメータのみです。

    手順 1 : サービスオブジェクトのインスタンス化関数オブジェクト (メールオブジェクトなど ) を作成するには、次の例のように new 演算子または createobject() 関数を使用します。

    myMail = new mail(server="sendmail.myCo.com");

    手順 2a : 属性の管理属性は次に示すいずれかの方法で設定できます。

    • 次の例のように、オブジェクトをインスタンス化するときに、オブジェクトイニシャライザに対する name=value 形式のパラメータとして設定する。

    myMail = new mail(server="sendmail.myCo.com");

    • 次の例のように、オブジェクトのアクションメソッドに対する name=value 形式のパラメータとして設定する。Q = myQuery.execute(sql="select * from art");

    • 次の例のように、属性設定メソッドを使用する。

    myMail.setSubject("Hi");

    注意: getAttributeName 関数を使用して、AttributeName で指定された属性の値を取得することはできません。その場合は、代わりに GetAtt