
| 出版日期:1999-08-09 总期号:847 本年期号:57 |
|
web 开发新工具:coldfusion
张萍 对于在网上建立动态web应用和交互web站点的开发者,allaire 公司的cold fusion应是你可以选择的一个很好的开发工具。它提供集浏览器、服务器和数据库技术于一体的强大的web应用。 cold fusion与asp的比较 作为web信息发布的技术开发人员,对于这一技术领域内流行和新兴的技术都会比较敏感和关注。目前比较流行的是asp,但cold fusion是一个新兴的web开发技术。下面对这两种技术做一个简单的比较: asp是微软公司1997年10月推出的web应用制作软件包,而cold fusion是在1999年4月才在国内进行全面推广的,所以目前对于一些开发者来说,asp是熟悉的,cold fusion则相对陌生。 cold fusion和asp都是由一个集成开发环境和一个应用服务器组成,两部分合作生成由服务器解析的html。在集成开发环境中创建的网页由html、专有标记和脚本代码混合组成。当用户有请求时,专用的服务器对代码进行解析并予以执行,然后再将产生的标准html页发送给用户。 asp是一个以nt为中心的环境,而cold fusion在nt和solaris上都能运行,不久将出linux的版本,它的适用领域更广泛。 使用过asp的用户都会感觉到,由于asp使用的是vbscript或javascript 脚本语言来编写脚本,不使用专用标记,所以编写起来较为复杂。cold fusion则提供了一套简单专用的标记来执行任务,此外cold fusion也通过〈cfscript〉标记来提供编写脚本的能力。所以有时在执行同一项任务时,cold fusion只需要几个标记,而asp则需要编写较多的代码。 在数据库连接方面,cold fusion支持查询缓存,企业版的cold fusion不光支持odbc数据库、ole数据库和存储过程,还支持内置的数据库,提高了数据库的访问速度。 此外cold fusion服务器的企业版提供负载均衡的能力,可以很方便地建立cold fusion群集。而asp服务器不带有此功能。 以上的比较并不是要在cold fusion和asp之间分出孰优孰劣,而是给广大开发者提供另外一种可供选择的技术开发手段。 cold fusion工作原理 cold fusion应用服务器是后台服务器,它的工作是建立在一个具体的web服务器(如iis)之上的。它的具体工作原理如下图所示。 * 用户点击提交键或超级链,用户的web浏览器通过internet或intranet发送http请求到web服务器。 * web服务器通过服务器的应用程序接口将用户请求和相应的页交给cold fusion服务器。 * cold fusion从用户端读取用户数据并处理其中的cfml(cold fusion标记语言),基于cfml,code fusion服务器可以通过cold fusion 应用程序接口或通过 com/dcom建立与数据库服务器、文件系统、smtp系统等的联系。 * cold fusion 动态地建立一个web页,并将此页返回给web服务器。 * web服务器返回标准的html页给用户浏览器。
cold fusion技术特色 前面已经讲到了cold fusion的一些特点,这里结合用户在实际应用中所关心的几个方面,对cold fusion的特点作一个总结和概括。 快速开发性 利用cold fusion强大的可视化工具、直接编程环境和便于管理的应用服务器,可以快速、简单地建立复杂的应用程序。 技术综合性 cold fusion提供对数据库、邮件服务器、文件目录、xml、com、corba等服务器系统的支持。 安全性 对服务器的开发和管理进行访问控制,利用高级安全特性避免运行时的其它侵入。使用ssl对远程文件、数据传输进行加密。所具有的源代码加密程序,可以对源代码进行加密。 高效率 程序员可指定在多次调用数据库时,数据库保持打开状态多长时间。缓存经常使用的查询结果,在保证数据一致性的同时减少数据库通信量。 出错处理 当cold fusion不能找到模板文件中指定的变量时,它能够提供详细的错误信息和原因。 输入合法性检查 在输入表格中用一隐含域实现输入数据的合法性检查。cold fusion提供的一些标准的合法性检查涉及数据类型、数据范围的检查等。 可扩展性 利用cfml、c/c++、com、corba、javascript、vbscript建立自己的部件和标识。通过把〈cfx_xxx〉调入页中,利用〈cfscript〉标记提供编写脚本的能力。 多种数据源 cold fusion本身带有oracle 和sybase的连接驱动,可以和任何odbc兼容的数据库连接,通过ole-db可以与exchange、 lotus notes等连接。 全文索引 利用内嵌的verity search 97可以全文索引非结构化的数据和标准文本。 源代码重用 可将经常使用的代码保存为cfml模块或cfx ,供日后重复应用于其他应用和界面中。 支持e-mail 数据库的输出不仅能送至web浏览器,还能作为e-mail发给客户。 支持cookies cookies是web服务器在客户机上存储的一个数据项,它提供一种可在客户端存储信息以作将来检索用的途径。cold fusion提供对cookies的支持。 支持多种网络应用协议 cold fusion本身支持多种网络协议,如ftp、http、mail、pop、ldap等。这样通过浏览器就可实现文件下载、邮件收发等网络应用。 在cold fusion中对于这些协议的支持是通过几个简单的tag来实现的,下表列出这些与网络协议有关的常用cold fusion tag:
cfml语言 cfml语言是一种标记语言,它是cold fusion特有的一种语言,也是cold fusion的重要组成部分。由cfml语言或结合标准html语言组成的cfm文件,由cfml tags、cfml functions和wddx javascript objects组成。cfml tags十分简单,语法类似于html的元素语法。cfml提供了大量有用的函数,如动态赋值函数、队列函数、串函数、查询函数等。当执行web分布式交换时可使用javascript objects。 cfml语言特点 * 可以对处理过程进行封装 即可以用〈cfxxx〉、〈/cfxxx〉来封装一个cf处理过程。 * 支持变量处理功能 cold fusion可以在动态页中处理变量,并可以在页与页之间进行传递,管理服务器、应用程序、会话层和用户层数据。 * 具有可扩展性 通过cfx_xxx,可以将自己开发的应用程序导入web应用中。 cfml对html功能的扩展 * 可以读取表格提交的数据,修改数据库和表格中的数据。 * 可以建立基于数据驱动的动态页,页面内容随数据的变化而变化。 * 可以执行条件处理,即通过cfif cfelse cfelseif、cfcase等tag来支持条件处理。 * 可以通过cfmail支持邮件收发。 * 可以通过cffile对本地文件进行各种操作。 * 可以通过cfhttp和cfftp执行http和ftp操作 * 可以通过cfauthenticate和isauthenticated函数对加密信息(如信用卡信息)进行认证和授权。 * 可以读写用户端的cookies变量。 目前网上已经有不少的有关cold fusion的站点。有整个网站是由cold fusion编写的,也有关于cold fusion的论坛。还有不少cold fusion爱好者将自己编写的cfml tags发布在网上供大家免费使用。下面列举几个: allaire公司 http://www.allaire.com cold fusion论坛 http://forums.allaire.com/devconf/ tags gallery http://www.allaire.com/developer/taggallery |
|||||||||||||||||||||||||||