tomcat的开发模式和生产模式

   tomcat这两种模式对大家的影响主要是在jsp的开发当中。大家都知道jsp需要先编译成servlet源文件并编译为字节码,即生成.class文件才可以执行,所以在jsp文件首次运行时先要进行编译导致运行较慢,之后的访问都会直接进入执行阶段。

     在开发模式下容器会经常检查jsp文件的时间戳来决定是否进行编译,如果jsp文件的时间戳比对应的.class文件的时间戳晚就证明jsp又进行了修改,需要再次编译,但是不断地进行时间戳的比对开销很大,会影响系统性能,而在生产模式下系统不会经常想的检查时间戳。所以一般在开发过程中使用开发模式,这样可以在jsp修改后再次访问就可以见到修改后的效果非常方便,而系统上线之后就要改为生产模式,虽然生产模式下会导致jsp的修改需要重启服务器才可以生效,但是上线后的改动较少而且性能很重要。

     在tomcat的安装目录下conf文件夹下面的web.xml文件中配置tomcat的模式。如图一所示,在web.xml中配置参数development为true就是开发模式,如图二所示为false就是生产模式。

图片一
tomcat的开发模式和生产模式

图片二

tomcat的开发模式和生产模式

     在生产模式下也可以通过配置checkInterval参数让tomcat每过一段时间就去检查一下时间戳,这种跟开发模式还是有区别的,可以称为后台编译。checkInterval参数值默认为0,单位为秒,配置位置同上。
     在开发模式下,可用通过配置modificationTestInterval参数的值调节容器检查时间戳的频率,默认值为4,单位为秒。也就是容器说在检查完某个jsp的时间戳之后4秒才会再次检查,期间有对这个jsp的请求也不会检查时间戳,当然也不会重新编译,如果设置为0,则在每次有访问都会检查时间戳,可以保证编译为最新的版本。

     综合以上所说,大家可以根据对不同情况下的需求选择最佳的配置方案。