作为我正在研究的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这样的东西,但有点迷失了。这对我的需求是否正确?正则表达式真的足够吗?有什么建议吗?
答案 0 :(得分:1)
似乎你需要功能齐全的HTML和可能的java脚本解析器。有很多这样的纯java实现,例如
http://www.webrenderer.com/products/server/product/
HTML UNIT
http://lobobrowser.org/java-browser.jsp
雅加达仙人掌