`
buddie
  • 浏览: 185295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于不重启Tomcat,更新JSP生效,更新Class不生效的原因

 
阅读更多

今天看了一个帖子,帖子里中提到了“tomcat怎么保证jsp在修改后生效”,最后从评论中得到了答案。这里我自己也整理一下,留用。原文地址:http://tywo45.iteye.com/blog/1768354

JSP页面的最终归宿也是Class(JSP->Servlet->Class),为什么同样是Class,一般情况下(Tomcat server.xml中reloadable=false)修改了JSP后,会生效,而修改了Class文件后,不会生效,而要重启呢?

这是因为Tomcat对JSP进入了侦听,如果有修改,就会重新翻译成Servlet并最终编译成Class文件,替换掉原JSP页面对应的Class文件。Tomcat的内部机制是可以让这种Class文件立即生效的。而普通的Class文件修改后,不能立即生效。

在Tomcat的Conf/web.xml文件中,可以对Tomcat的这种对JSP修改的机制进行修改。

  <!--   modificationTestInterval                                           -->
  <!--                       Causes a JSP (and its dependent files) to not  -->
  <!--                       be checked for modification during the         -->
  <!--                       specified time interval (in seconds) from the  -->
  <!--                       last time the JSP was checked for              -->
  <!--                       modification. A value of 0 will cause the JSP  -->
  <!--                       to be checked on every access.                 -->
  <!--                       Used in development mode only. [4]             -->

 

在“development”(开发模式)下,可以使用modificationTestInterval来设置Tomcat检查JSP更新的时间间隔,单位为秒,默认4秒

  <!--   checkInterval       If development is false and checkInterval is   -->
  <!--                       greater than zero, background compilations are -->
  <!--                       enabled. checkInterval is the time in seconds  -->
  <!--                       between checks to see if a JSP page (and its   -->
  <!--                       dependent files) needs to  be recompiled. [0]  -->

 

在非“development”模式下,使用checkInterval来设置Tomcat检查JSP更新的时间间隔,单位为秒,默认为不检查。

 

对于上面提到的“development”模式,也是在web.xml文件中配置的,如下

  <!--   development         Is Jasper used in development mode? If true,   -->
  <!--                       the frequency at which JSPs are checked for    -->
  <!--                       modification may be specified via the          -->
  <!--                       modificationTestInterval parameter. [true]     -->

默认情况下Tomcat使用“development” 模式。

 

分享到:
评论

相关推荐

    实现tomcat热更新class文件.docx

    为了解决这个问题,可以配置Tomcat实现热更新class文件,使得修改后的Java类在不重启服务器的情况下就能立即生效。下面将详细介绍如何实现这一功能。 首先,我们需要理解Tomcat的工作原理。当一个Web应用被部署到...

    tomcat插件介绍

    8. **解决可能出现的问题**:如果遇到找不到jsp编译的class错误,可以尝试清理work目录,或者复制一个新的Tomcat项目中的work目录到当前项目。 总结起来,Tomcat插件在Eclipse中提供了强大的调试和部署功能,极大地...

    IDEA+Tomcat热部署配置.doc

    在IT领域,特别是Java Web开发中,热部署(Hot Deployment)是一种非常实用的功能,它允许开发者在不重启服务器的情况下更新应用程序代码,极大地提高了开发效率。本文将深入解析如何在IntelliJ IDEA(简称IDEA)中...

    Tomcat 6.0配置

    - `reloadable`:若设为`true`,则允许热部署,即在不重启Tomcat的情况下更新JSP或Servlet文件。 - `privileged`:设为`true`后,该上下文将拥有更高的权限,比如访问系统级资源。 2. **Host元素**: ```xml ...

    Tomcat8.0与Solr8.0的整合

    Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它遵循Java Servlet和JavaServer Pages(JSP)规范,提供了一个运行Java Web应用的轻量级服务器环境。Solr,另一方面,是Apache Lucene项目的一个子项目,...

    tomcat详细配置

    - 重启 Tomcat。 - 访问 `http://localhost:8080/testapp/index.jsp`,以确认虚拟目录是否生效。 #### 四、Server 创建 此处提到的“Server 创建”可能是指配置 Tomcat 服务器,已经在上述步骤中完成了。 #### ...

    apache-tomcat-8.5.29

    Apache Tomcat 8.5.29 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。Tomcat是Apache软件基金会Jakarta项目的一部分,以其轻量级、高效和稳定而受到...

    eclipse中的2个tomcat插件安装用法

    4. **重启Eclipse**:安装完成后需要重启Eclipse使插件生效。 5. **配置Tomcat**:重启后,在Eclipse中选择“Window” -&gt; “Preferences” -&gt; “Tomcat”,然后添加一个新的Tomcat服务器,选择版本为`5.x`,并指定...

    tomcat读取本地文件

    - 测试时应确保Tomcat服务已重启生效。 #### 四、扩展知识:大型系统中的图片处理 在大型项目中,通常不会仅仅依赖于Tomcat的静态文件服务功能。更常见的是采用以下架构模式: 1. **负载均衡与多级缓存**: - ...

    手动配置tomcat

    - 重启Tomcat服务器使更改生效。 - 使用浏览器访问`http://localhost:8080/aa/aa`,可以看到“Hello World Servlet”的输出。 通过以上步骤,我们成功地手动配置了Tomcat服务器并部署了一个简单的Servlet程序。这...

    tomcat配置环境变量

    在IT行业中,Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java EE的Web部分标准,尤其是Servlet和JSP。配置Tomcat的环境变量是每个开发者或运维人员在部署和运行Tomcat时必须经历的步骤。这有助于确保...

    windows系统下jsp+mysql+tomcat的配置.docx

    - 重启计算机后启动Tomcat,以确保所有更改生效。 #### 二、连接MySQL数据库 为了测试MySQL数据库的连接性,可以创建一个简单的JSP文件`testmysql.jsp`,并将其放置在Tomcat的`webapps\root`目录下(假设Tomcat...

    初学JSP知识精华集锦

    - 修改`web.xml`配置文件,添加或更新`.jar`,或者修改Java类(`.class`)文件,需要重启Tomcat服务器以使更改生效。 5. 常用JSP代码示例: - `("name") %&gt;`用于获取HTTP请求参数。 - `&lt;jsp:include&gt;`标签用于...

    Tomcat热加载Jrebel

    为了解决这个问题,引入了热加载技术,其中Jrebel是一个非常知名的工具,它能实现在不重启服务器的情况下即时更新应用代码。 【描述】:Tomcat热加载Jrebel是通过Jrebel插件与Tomcat服务器的集成,实现Java应用的热...

    Tomcat连接池配置详解

    为了使配置生效,需要更新Tomcat的主配置文件`Server.xml`,位于`conf`目录下。找到`&lt;GlobalNamingResources&gt;`标签,这里包含了全局资源的定义。你需要添加一个`&lt;Resource&gt;`标签来定义你的数据源,包括`name`、`...

    tomcat5.0静态化shtml配置.

    在IT行业中,Tomcat是一个广泛使用的Java Servlet容器,它实现了Java EE的Web...记得在完成配置后重启Tomcat,以确保改动生效。在实际生产环境中,还可以根据服务器负载和用户需求调整这些参数,以达到最佳的性能效果。

Global site tag (gtag.js) - Google Analytics