如何在服务器返回JSP页面时删除注释?

时间:2014-04-06 05:10:24

标签: regex jsp tomcat ant

哪个类的tomcat负责将.jsp文件转换为.class文件?我想看看为转换编写的源代码。我的目的是检查如何消除scriptlet注释的逻辑,并根据我将编写自己的代码来删除HTML注释(我还没决定如何实现它)。

我确信源代码应该是可用的,因为它是开源的。

或者是否可以实现某种过滤器,以便每次服务器返回JSP页面时都会删除注释。我可以将所有HTML注释替换为Scriptlet注释。但我想确保,如果将来有人使用HTML评论,则不会显示。这基本上是为了安全。

[补充]

根据JB Nizet的建议,我们将修改build.xml文件以删除注释。我想出了这个来删除HTML评论 -

<target name="-trim.html.comments">
    <echo message="Inside trim html comments" /> 
    <fileset id="html.fileset" dir="${build.dir}" includes="**/*.jsp, **/*.html" />
        <!-- HTML Comments -->
    <replaceregexp replace="" flags="g" match="\&lt;![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\&gt;">
    <fileset refid="html.fileset"/>
        </replaceregexp>
</target>

但是,我不知道如何删除以//或/ * * /开头的注释。有什么建议我该怎么办?我通过互联网搜索但没有得到线索。

我们正在使用ant脚本进行构建。

[补充]

要删除以//开头的单行评论,我正在使用以下正则表达式。但不知怎的,它不起作用。谁能帮助我,我做错了什么?提前谢谢。

<replaceregexp flags="gs" match="?:^\s*\/\/(?:.*)$" replace="">

1 个答案:

答案 0 :(得分:0)

而不是在Tomcat中执行,而是直接使用Apache。它支持完全符合您需求的模块。 mod pagespeed可能与你想要的最接近; mod deflate可以配置为执行相同的操作,但它也会压缩数据,这可能是过度的。

作为一个很好的副作用,这允许您留下方便的评论,并且它们将被提供给使用端口8080的内部用户(开发人员),而使用端口80的那些将只看到缩小的产品。 / p>