Coldfusion 将 onRequestEnd() 与 Application.cfm 文件结合使用

2024-01-06

我正在使用一个遗留应用程序工作,该应用程序是基于使用Application.cfm文件而不是Application.cfc files.

需要能够在请求处理后运行代码。 (基本上,我想使用<cfhtmlhead>标签将一些 Javascript 和 CSS 文件注入到每个加载的文档中。在我使用 GreaseMonkey 用户脚本执行此操作之前,但服务器端的东西最好。)

从我读到的内容来看,我认为我应该能够做到这一点onRequestEnd()函数,但是,我只见过关于Application.cfc文件。我读过你可以把onRequestEnd.cfm文件与以下文件位于同一目录中Application.cfm文件以使其注册到onRequestEnd()功能,但系统没有映射到一个Application.cfm文件(即我必须抛出这个onRequestEnd.cfm文件在很多目录中)。

还有其他方法可以注册这个吗onRequestEnd()函数使用Application.cfm设置?如果有必要,我们正在运行 Coldfusion 9。


只是为了澄清,onRequestEnd()该方法仅在您使用Application.cfc file.

The OnRequestEnd.cfm文件确实像Application.cfm文件中的 ColdFusion 会自动查找它并在找到时处理它的内容。请注意如果您的应用程序有 Application.cfc 文件,则无法使用 OnRequestEnd.cfm 页面。所以假设你没有Application.cfc您的应用程序的文件并且仅使用Application.cfm文件然后OnRequestEnd.cfm文件应该适合你。您所需要做的就是将您希望在页面请求之后执行的 CFML 代码插入到该文件中。

如果你有几个Application.cfm文件分布在各个文件夹中,那么,是的,您还需要复制/创建OnRequestEnd.cfm这些目录中的文件也是如此。您也许可以复制stub OnRequestEnd.cfm这些目录中的文件仅执行以下操作cfinclude来自另一个单一位置的实际代码。至少这样一旦你拥有了所有的stub您可以在一个地方修改代码。

请参阅文档构建应用程序 http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=appFramework_06.html(它是为 ColdFusion 8 编写的,但相同的规则仍然适用)。如果该页面被删除,以下是相关文本:

ColdFusion 如何查找和处理应用程序定义页面

ColdFusion 使用以下规则来查找和处理定义应用程序特定元素的 Application.cfc、Application.cfm 和 OnRequestEnd.cfm 页面。 ColdFusion 定位这些文件的方式有助于确定您如何构建应用程序。

每次 ColdFusion 处理页面请求时,它都会执行以下操作:

  1. 当 ColdFusion 开始处理请求时,它会执行以下操作:

    • 它在页面目录中搜索名为Application.cfc 的文件。如果存在,它将创建一个新的 CFC 实例、处理初始事件并停止搜索。 (ColdFusion 创建 CFC 的新实例并为每个请求处理其初始化代码。)
    • 如果请求页面的目录没有 Application.cfc 文件,它将检查该目录中是否有 Application.cfm 文件。如果存在,ColdFusion 会在逻辑上将 Application.cfm 页面包含在所请求页面的开头,并停止进一步搜索。
    • 如果请求页面的目录没有 Application.cfc 或 Application.cfm 文件,ColdFusion 将搜索目录树并首先检查每个目录是否有 Application.cfc 文件,如果没有找到,则检查 Application.cfm 页面,直到到达根目录(如C:)。当它找到 Application.cfc 或 Application.cfm 文件时,它会处理该页面并停止搜索。
  2. ColdFusion 处理所请求页面的内容。
  3. When the request ends, ColdFusion does the following:
    • 如果您有 Application.cfc,ColdFusion 将处理 CFC 的 onRequestEnd 方法并释放 CFC 实例。
    • 如果您没有 Application.cfc,但有 Application.cfm 页面,ColdFusion 将在与 ColdFusion 用于当前页面的 Application.cfm 页面相同的目录中查找 OnRequestEnd.cfm。 ColdFusion 不会搜索该目录之外的内容,因此它不会运行驻留在另一个目录中的 OnRequestEnd.cfm 页面。此外,如果应用程序页面上出现错误或异常,或者应用程序页面执行 cfabort 或 cfexit 标记,则 OnRequestEnd.cfm 页面不会运行。

以下规则决定 ColdFusion 如何处理应用程序页面和设置:

  • ColdFusion 对于每个请求仅处理一个 Application.cfc 或 Application.cfm 页面。如果 ColdFusion 页面具有指向附加 ColdFusion 页面的 cfinclude 标记,则 ColdFusion 在包含附加页面时不会搜索 Application.cfc 或 Application.cfm 页面。
  • 如果 ColdFusion 页面具有 cfapplication 标记,它将首先处理任何 Application.cfc 或 Application.cfm,然后处理 cfapplication 标记。该标记可以覆盖应用程序文件中的设置,包括应用程序名称和 cfapplication 标记属性设置的行为。
  • 您可以拥有多个使用相同应用程序名称的 Application.cfc 文件、Application.cfm 文件和 cfapplication 标记。在这种情况下,所有具有相同名称的页面共享相同的应用程序设置和应用程序范围,并且可以设置和获取该范围内的所有变量。如果文件之间的设置(例如会话超时)不同,ColdFusion 将使用 cfapplication 标记或最近处理的文件的参数设置。

Note:如果您的应用程序在区分大小写的 UNIX 平台上运行,则必须使用大写字母拼写 Application.cfc、Application.cfm 和 OnRequestEnd.cfm。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Coldfusion 将 onRequestEnd() 与 Application.cfm 文件结合使用 的相关文章

随机推荐

  • 无需索引即可搜索文件内字符串的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我必须在一个非常旧的遗留应用程序中更改一些连接字符串 而制作它的程序员认为在整个应用程序中到处都贴上连接
  • Laravel,NPM:找不到命令“mix”

    有谁知道为什么它会抛出以下错误以及如何修复它 我还尝试使用重新安装所有软件包npm install几次 在 Windows 上重新安装 NodeJS 不起作用 我正在使用 Laravel 8 22 0 Full Log 0 verbose
  • MediaSession 在锁定屏幕上不显示背景

    我在用MediaSession在 Lollipop 上控制播放 它似乎有效 因为我的 Android Wear 设备允许我控制播放 但是手机锁定屏幕不显示来自METADATA KEY ALBUM ART URIAndroid Wear 上的
  • react-admin 中资源路由的自定义路径

    有没有办法指定资源的自定义路径 例子
  • 你如何在 Symfony2 项目中组织你的包? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 更改表主键 - Crate DB

    我想更改我的表Crate DB更改主键约束以向现有列添加一列 如果我需要删除约束并创建一个新约束 那么 SQL 语法是什么 我一直在尝试传统的 SQL 语法 但它似乎不起作用 alter table my data table drop p
  • 正测试用例和负测试用例

    什么是阳性测试用例 and 负面测试用例 在谷歌上搜索后 我发现了非常令人困惑的答案 谁能用例子解释一下吗 积极的测试用例测试系统是否做了它应该做的事情 示例 提供有效凭据后将允许您登录 负面测试用例测试系统没有做不应该做的事情 示例 当提
  • 用pynsist打包PyGObject Python 3程序?

    我想用 pynsist 打包一个 Python3 PyGObject 程序 该存储库有一个 PyGTK 的示例 它让我认为更改该示例应该不会太难 该示例可以在这里找到 https github com takluyver pynsist t
  • 如何判断 xyY 颜色是否位于 CIE 1931 色域内?

    我正在尝试使用数学绘制 CIE 1931 色域 我采用 xyY 颜色 其中 Y 固定为 1 0 然后将 x 和 y 从 0 0 更改为 1 0 如果我将生成的颜色绘制为图像 即 x y 处的像素是我转换为 RGB 的 xyY 颜色 我会得到
  • 闭包/范围 JavaScript/jQuery

    我正在尝试将一些现有的顶级函数分组到一个 闭包 以避免污染全局名称空间 但我不太明白 让它发挥作用 首先 所有 JS 在我的匿名函数之外工作 但是一旦我把 它在匿名函数中我得到一个错误 交叉淡入淡出不是 定义 有没有人看到我的任何完全明显的
  • C# 获取时出现一些错误

    private void TxtFarmerCode TextChanged object sender EventArgs e try cmd Open cmd new SqlCommand Select farmername from
  • 尝试更新我的 Intellij 时出现 OutOfMemory 错误

    我正在尝试将 IntelliJ IDEA 从内部版本 141 177 更新到 141 178 当更新下载所有需要的文件并开始更新时 我收到此错误 Temp directory tmp java lang OutOfMemoryError J
  • 从数据框中选择和分组双类别数据

    我真的需要关于如何解决问题的帮助 我有一个看起来像这样的数据集 Name Sex Total Anna F 10 Jamie M 2 Jamie F 7 Mike M 13 Sam F 6 Sam M 3 structure list Na
  • Android:在canvas api中使用渐变填充颜色绘制圆弧

    我想使用渐变填充使用画布绘制圆弧 如何才能实现这一点呢 嘿 我从这里偷了这个 在 Android 中使用 SweepGradient 绘制圆弧 https stackoverflow com questions 4786318 draw a
  • glDrawArrays 之间的 glBufferSubData 调用重整数据

    这好像是glBufferSubData正在覆盖或以某种方式破坏我之间的数据glDrawArrays来电 我正在使用 Windows 7 64 位操作系统 并使用适用于我的 Nvidia GeForce GT520M CUDA 1GB 的最新
  • 禁用或删除 apc

    我在 ubuntu 11 04 linux 上安装了 APC 我想进行一些性能基准测试 看看没有 APC 的 PHP 的速度有何改进 但我不知道如何禁用 删除 APC 我尝试清空 apc ini 文件 但没有成功 尽管如此 在我第一次加载页
  • 使用 UIModalPresentationFormSheet 的模态视图出现在屏幕外

    我有一个 UIViewController 实现 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation Return
  • 身份服务器 4 上出现“客户端密钥验证失败”错误

    我正在尝试使用 client credentials 从我的 Identity Server 4 获取访问令牌 我想我几乎通过搜索完成了 Google 页面 但我什么也没找到 所以 请 这是我的 GetClients 方法 My PostM
  • SQL Server:为什么默认情况下禁用 xp_cmdshell?

    默认情况下禁用扩展存储过程 xp cmdshell 的安全原因是什么 您可以在中找到解释PermissionsSQL Server 部分文档 http msdn microsoft com en us library ms175046 as
  • Coldfusion 将 onRequestEnd() 与 Application.cfm 文件结合使用

    我正在使用一个遗留应用程序工作 该应用程序是基于使用Application cfm文件而不是Application cfc files 需要能够在请求处理后运行代码 基本上 我想使用