关于tomcat 缓存

本文讨论了在开发过程中遇到的Tomcat缓存问题,导致修改后的JS文件未生效。Tomcat的work目录存储了编译后的JSP页面,当清空此目录时,可以解决缓存问题。此外,提供了多种清理Tomcat缓存的方法,包括修改server.xml设置reloadable属性、删除work目录下的特定文件夹以及浏览器缓存的清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在开发过程中,增加了几个js文件,在jsp文件中引入后,但是浏览器中一直报 改对象没有定义。然后我尝试了各种方法,新写个文件再次引入,结果发生了一个更诡异的结果,第一次访问该页面的时候,依旧报该对象没有定义,但是第二次就正常了,出现这种情况的原因还在探究中。不过,最主要的罪魁祸首,是tomcat的缓存。

tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来 访问时,就直接运行servlet类就可以向客户端反应响应页面了,所以有的博客说第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先 编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户,所以快),编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。     
    有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。



以下是转载:tomcat清除缓存的方式:

tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开     依然是以前的Jsp的页面。

出现这种现象的原因主要是tomcat缓存的原因。

解决办法如下:

在jsp文件头加上

<meta http-equiv="Expires" content="0">
      <meta http-equiv="kiben" content="no-cache">

其中,第一行的content="0",是表示过期的时间,如果不是0的话,就必须使用GMT的时间格式。第二行表示不用缓存机制。

删除work目录下的缓存文件。

conf/server.xml 文件Context path 中间加上 reloadable="true"

例如:<Context path="" docBase="E:\MYJSP\" debug="0" reloadable="true" />

在tomcat的startup.bat里首部加上批处理命令

rd/s/q "D:\Program Files\tomcat-6.0\work\Catalina

tomcat路径根据自己情况修改.

这样基本可以解决缓存遗留问题。

==========================================

方法1、再当前浏览器,工具里清空一下上网记录(如果你的cookie没那么重要的话,全部选中,清空)。重新打开一个IE浏览器,再打上网址,回车。
如果还不行

方法2、重启tomcat,但是太费时间,有时还不管用。。

方法3、Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost
有一些发布程序的时候编译的jsp的Java类,可都清空该文件夹,也可以只删除跟当前项目相关的类。

方法3,最直接。。。彻底
不过我常用方法1。方法3,要翻那么多文件夹,我会在方法1实在还是不可以的话。才用方法3

=========================================

方法一:
conf/server.xml文件
Context path中间加上reloadable="true"
例如:<Context path="" docBase=""  reloadable="true">

方法二:
删除work目录下的缓存文件
可以把Catalina目录删除; 注意:不能把work整个目录删除,不然重启tomcat时,会把conf/web.xml删除掉,这样在启动时,日志会提示:No Default web.xml,且访问页面会显示404错误;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值