0

作为我正在开发的 Java webapp 的一部分,我需要为一些从数据库加载的 URI 添加前缀,例如

"controller.jsp?page=list"

变成……

<a href="${legacyBaseUrl}/controller.jsp?page=list">...</a>

简单的。尽管数据库中的某些 URI 包含 Javascript,但会出现问题,例如

"javascript:window.open('controller.jsp?page=popup')"

我希望能够做的是...

<a href="javascript:window.open('${legacyBaseUrl}/controller.jsp?page=popup')">...</a>

或者更好……

<a href="${legacyBaseUrl}/controller.jsp?page=popup" target="_blank">...</a>

我知道我可以用正则表达式将它分开,但我很谨慎地将其视为一个简单的字符串操作问题,因为数据从未被清理过,并且数据库中可能有任何 Javascript。

是否有一种(相对)简单的方法可以在 Java 中正确解析 Javascript,并识别/提取对 window.open 或其他 JS 函数的调用?

我已经简要地查看了 Rhino 或 javax.script 之类的东西,但有点迷茫。这是否适合我的需求?正则表达式实际上就足够了吗?有什么建议么?

4

1 回答 1

1

看来您需要功能齐全的 HTML 和可能的 java 脚本解析器。有很多这样的纯java实现,例如

http://www.webrenderer.com/products/server/product/

HTML 单元

http://lobobrowser.org/java-browser.jsp

雅加达仙人掌

于 2012-11-05T18:31:26.537 回答