哪个类的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="\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>">
<fileset refid="html.fileset"/>
</replaceregexp>
</target>
但是,我不知道如何删除与//或/ * * /开始评论。任何建议我怎么能这样做?我在互联网上搜索,但没有得到任何线索。
我们使用ant脚本进行构建。
[新增]
要删除与//我使用正则表达式如下开始单行注释。但不知何故,它不工作。任何人都可以请帮助我我做错了什么?提前致谢。
<replaceregexp flags="gs" match="?:^\s*\/\/(?:.*)$" replace="">
为什么不简单地在构建过程中添加一个任务,以确保没有JSP包含'<! - '?这将非常容易实现,它会教育你的开发人员,在运行时不会花费任何代价,并且它不会将你的解决方案绑定到任何特定的tomcat实现。 –
您使用的是像Apache这样的网络服务器吗?他们中的许多人都有可以完成这项工作的缩小模块,比如Apache的[mod_deflate](http://httpd.apache.org/docs/2.2/mod/mod_deflate.html)。 –
是的。我我们使用的是Apache。 – Kartic