JSP的生命周期,编译和替换

时间:2011-01-18 14:21:35

标签: jsp tomcat

我无法找到有关此内容的信息,特别是有关在tomcat中放置JSP代码的信息。

我有一个应用程序并为它开发。我'远程调试和更改代码。这不会将代码发布到远程计算机。所以,我尝试复制JSP文件。这不会改变一件事,在调试时,我可以看到调试器跳转到不包含代码的行。

非常好。我使用Lambda Probe删除工作目录,甚至显式重新编译所有JSP,包括我想要首先更改的那个。我可以查看代码甚至编译的servlet代码,所有这些都列出了我的更改。但是,再次运行调试器并尝试调试我更改的代码STILL跳转到行,就像我根本没有更改我的代码一样。

这迫使我做一个完整的部署:我编译一个完整的WAR文件,将其复制到服务器(它被部署),我的程序启动,我需要大约10分钟来达到我之前的相同点

哪里有tomcat缓存/存放工作目录旁边的JSP代码?是否可以通过调试器“动态”更改代码?我知道只要我不改变方法签名就可以使用类,但是我无助地在JSP文件中苦苦思索同样的想法。

任何帮助将不胜感激,无论是链接到解释网站或解释本身。

谢谢。

1 个答案:

答案 0 :(得分:0)

首先,您应该使用ant自动化您的构建。您需要能够快速部署。

如果检测到更改(通常来自文件修改日期),vanilla tomcat将重新加载JSP。因此,请确保tomcat配置不会阻止这种情况发生。看看http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Production_Configuration

要删除已编译的JSP(从而强制tomcat根据请求重新编译JSP),您可以删除tomcat/work下的相应文件夹,例如tomcat/work/Catalina/www.example.com/_/org,在该文件夹下可以找到已编译的JSP和标记文件。 / p>