【发布时间】:2012-11-05 18:23:54
【问题描述】:
作为我正在开发的 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 之类的东西,但有点迷茫。这是否适合我的需求?正则表达式实际上就足够了吗?有什么建议吗?
【问题讨论】:
标签: java javascript rhino