2014-04-06 42 views
0

哪个类的tomcat负责将.jsp文件转换为.class文件?我想查看为转换编写的源代码。我的目标是检查逻辑scriptlet注释是如何消除的,并且基于此我将编写自己的代码以删除HTML注释(我还没有决定如何实现它)。如何在服务器返回JSP页面时删除注释?

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

还是有可能实现某种过滤器,以便每次服务器返回一个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=""> 
+0

为什么不简单地在构建过程中添加一个任务,以确保没有JSP包含'<! - '?这将非常容易实现,它会教育你的开发人员,在运行时不会花费任何代价,并且它不会将你的解决方案绑定到任何特定的tomcat实现。 –

+0

您使用的是像Apache这样的网络服务器吗?他们中的许多人都有可以完成这项工作的缩小模块,比如Apache的[mod_deflate](http://httpd.apache.org/docs/2.2/mod/mod_deflate.html)。 –

+0

是的。我我们使用的是Apache。 – Kartic

回答

0

与其在Tomcat中使用它,不如直接使用Apache。它支持完全符合你需要的模块。 mod pagespeed可能最接近你想要的; mod deflate可能可以配置为做同样的事情,虽然它也压缩数据,这可能是矫枉过正。

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