为什么在更改jsp时不需要重启tomcat

Har*_*hra 11 java jsp tomcat servlets

我已经使用JSP,Servlet了很长一段时间.我知道每当我们改变任何内容时,Servlet我们都需要重启Tomcat Server才能获得更改.在JSP更改的情况下,tomcat不需要重新启动.

根据我的知识,JSP页面Servlet只有在编译时才会被转换.所以,毕竟它是一个Servlet.So,如何在没有Tomcat重启的情况下工作.

我知道JSP页面在服务器重启后第一次访问时编译的情况.

JB *_*zet 11

因为当要求Tomcat执行JSP时,将JSP文件的修改日期与对应于此JSP的编译类的修改时间进行比较,如果是更新的,则在执行之前重新编译.

这是BTW应该在生产中关闭的选项,因为执行此检查需要时间.

有关详细信息,请参见http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html.


Boz*_*zho 8

因为默认情况下tomcat是在开发模式下启动的,这意味着在检测到更改时会重新编译JSP派生的servlet.这是一个很好的问题,JVM如何加载新类 - 可能是tomcat类加载器配置为这样做.

一些相关的说明:

  • 您可以关闭生产的开发选项
  • 你也可以重新加载servlet - 你必须在调试模式下使用JVM启动tomcat .