gpt4 book ai didi

coldfusion - 在 ColdFusion 中对 String 调用底层 java 方法安全吗?

转载 作者:行者123 更新时间:2023-12-03 09:43:44 26 4
gpt4 key购买 nike

Adobe ColdFusion 基于 Java 构建。 CFML/CFSCRIPT 中几乎所有的简单变量都是 java.lang.String直到操作需要它是某种类型。

我一直想用startsWith()String而不是更笨重的 CFML 变体。

left(str,4) EQ "test"

但是,在 ColdFusion 中使用底层 Java 方法的普遍共识是什么?

这对 javacast() 会更安全吗?首先是var?
javacast("String",x).startsWith("test");

如果 CF 引擎不是建立在 Java 之上怎么办?

谢谢

最佳答案

是的,您可以使用 Adob​​e ColdFusion 和其他基于 Java 构建的 CFML 引擎来执行此操作。它实际上比你想象的要简单。

<cfset str = "hello what's up" />
#str.startsWith("hello")# <!--- returns "YES" --->
<cfif str.startsWith("h")>
This text will be output
</cfif>

#str.startsWith("goodbye")# <!--- returns "NO" --->
<cfif str.startsWith("g")>
This text will NOT be output
</cfif>

这是可能的,因为 ColdFusion 中的 CFML 字符串与 Java 字符串相同。您可以使用任何 native 字符串方法 (Java.lang.String)在 CFML 字符串上。

如果您没有猜到,这也适用于 CFML 数组(某种列表,可能是 java.util.Vector)和结构(可能是 java.util.Map)。试验数据类型和 cfdump 标签,你会发现很多 secret 。

一个警告,这是 不是 标准 CFML,因此如果您的底层引擎发生变化,包括升级到新版本,则不能保证它仍然可以工作。

也就是说,string.startsWith() 是 Java 和 .NET 原生的,因此如果您的 CFML 引擎是 BlueDragon.NET,这也将起作用。它无法运行的唯一 CFML 引擎是 ColdFusion 5 和更早版本。

使用安全吗?我会说是的。只要 CFML 引擎在 Java 或 .NET 上运行,它就是完全安全的。它没有记录,但很容易理解,所以我会说自由使用它。

关于coldfusion - 在 ColdFusion 中对 String 调用底层 java 方法安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com