哪個類的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