目录
北极星书库
MIME(Multipurpose Internet Mail Extensions)的目标之一是在数据文件和用于显示和编辑该文件类型的应用程序之间建立联系。MIME通过为每种数据文件提供一个内容类型来实现这一点。
在Web上,数据的交换要通过超文本传输协议(HTTP)。Web服务器和Web客户必须对文件的内容类型达成一致,并且客户端软件必须能够理解该种文件,或者能找到另外的能使用该文件的应用程序。
缺省情况下,ColdFusion使用的内容类型是text/html。尽管text/html是Web上最常使用的内容类型,但在某些情况下,你需要用ColdFusion动态地产生其他内容类型的文档。
例子:返回VRML
根据一个URL参数动态地返回一个VRML(Virtual Reality Modeling Language)原型,使用如下语法:
<CFCONTENT TYPE="x-world/x-vrml">
<CFQUERY NAME="GetCyberCafeRoom"
DATASOURCE="CyberCafe">
SELECT VRML_Script
FROM CyberCafeRooms
WHERE FloorNumber=#URL.FloorNumber#
</CFQUERY>
<CFOUTPUT QUERY="GetCyberCafeRoom">
#VRML_Script#
</CFOUTPUT>
向客户端传送非HTML的内容时,一个重要的考虑是流览器是否能理解该内容类型。所有的主流流览器都预先定义了一系列内容类型,这些类型或者被流览器本身所支持,或者被一个辅助的应用程序(通常称为查看器)所支持。因此,在使用流览器有可能不支持的内容类型之前,先对用户作出提示是很重要的。
例子:生成Excel表格
下面的例子用ColdFusion动态生成一个Excel表格,该表格可以在Microsoft Excel中直接打开。要无缝地实现这一点,你必须将本地的Microsoft Excel与text/tablelimited内容类型相关联。
<CFCONTENT TYPE="text/tabdelimited">
<CFQUERY NAME="GetFinancialData"
DATASOURCE="MutualFunds">
SELECT *
FROM Funds
WHERE Fund_ID=#Fund_ID#
</CFQUERY>
<P>Month Value Percentage Gain Estimate</P>
<CFOUTPUT QUERY="GetFinancialData">
#Month# #Value# #PercentageGain# #Estimate#
</CFOUTPUT>
字段之间和标题之间的空格实际上是制表符(Tab)。Excel需要制表符才能正确地处理表中的字段。
注意,ColdFusion会把程序文件中出现在CFCONTENT标签之前的输出文本删掉。
例子:返回一个文件
下面的例子演示了如何用CFCONTENT标签从服务器返回一个文件。这种方法的优点在于你可以控制对文件的访问。FILE属性允许你返回不存在Web服务器文档根目录下的文件。
<CFCONTENT TYPE="text/tabdelimited"
FILE="c:\land\topo.txt">
注意,在这种用法中,如果ColdFusion在CFCONTENT标签之后发现其他输出内容,将会产生错误。
小结:
本章主要介绍了如何进行数据查询和结果显示,实现数据库查询和显示的最常用的流程如下:
- 建立数据源。
- 通过表单字段接收用户输入。
- 在ACTION所指的文件中,使用CFQUERY标签,用DATASOURCE属性指定数据源,根据Form变量的内容(即用户的输入信息),用标准SQL语句对数据源进行查询。然后使用CFOUTPUT,用QUERY属性指定查询名,对查询结果中的每条记录进行显示。
在CFOUTPUT中可以使用各种HTML标签。
前页
目录
北极星书库