【发布时间】:2010-04-19 21:43:19
【问题描述】:
我知道有些人使用 ANT 来实现这一点,但我不想从实际的 jsp 中删除 HTML cmets,我只是想要一种从输出中去除它们的方法,除非用户在 url 中添加一个参数来显示用于调试的 cmets。
【问题讨论】:
标签: jsp parameters strip html
我知道有些人使用 ANT 来实现这一点,但我不想从实际的 jsp 中删除 HTML cmets,我只是想要一种从输出中去除它们的方法,除非用户在 url 中添加一个参数来显示用于调试的 cmets。
【问题讨论】:
标签: jsp parameters strip html
您可以使用JtidyFilter 并将hide-comments 设置为true。
<init-param>
<param-name>config</param-name>
<param-value>hide-comments: true</param-value>
</init-param>
要使其更具可配置性,请在您自己的自定义过滤器中使用 JTidy。
【讨论】:
这里是HTMLCompressor lib,可以从代码中调用,也可以作为 JSP 标记调用以剥离 cmets 等等。
【讨论】:
简单地说,你需要在 JSP 前面加一个过滤器。对结果进行后处理。
过滤器查看 HTTP 请求中的适当参数,并从那里决定是否过滤输出给用户的 HTML 结果。
就执行过滤而言,您可以使用简单的正则表达式。 REGEX 的缺点就是您需要将整个传出结果复制到内存中,然后再将其发送给用户。这不仅会消耗内存,还会消耗时间,具体取决于结果的呈现方式。但是,理论上,一个 REGEX 可以工作。
最好是一个流式 HTML 词法分析器来逐位读取内容,并以这种方式过滤掉 cmets。我不能推荐任何使用,我自己写的。
但是,过滤器就是你想要的。
【讨论】: