解析/提取可能包含Javascript的URI

时间:2012-11-05 18:23:54

标签: java javascript rhino

作为我正在研究的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这样的东西,但有点迷失了。这对我的需求是否正确?正则表达式真的足够吗?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

HTML UNIT

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

雅加达仙人掌