如何清除tomcat缓存

如何清除tomcat缓存,第1张

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

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

解决办法如下:

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

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

conf/serverxml 文件Context path 中间加上 reloadable="true"

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

在tomcat的startupbat里首部加上批处理命令

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

tomcat路径根据自己情况修改

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

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

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

如果还不行

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

方法3、Apache Software Foundation\Tomcat 55\work\Catalina\localhost

有一些发布程序的时候编译的jsp的Java类,可都清空该文件夹,也可以只删除跟当前项目相关的类。

方法3,最直接。。。彻底

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

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

方法一:

conf/serverxml文件

Context path中间加上reloadable="true"

例如:

方法二:

删除work目录下的缓存文件

可以把Catalina目录删除; 注意:不能把work整个目录删除,不然重启tomcat时,会把conf/webxml删除掉,这样在启动时,日志会提示:No Default webxml,且访问页面会显示404错误;

由于缓存文件是特殊的文件,以及WebBrowser与IE版本有关
因此删除缓存绝对不可能用一些IO函数就总可以解决的
因此我的这些函数在IO *** 作的基础上,又针对环境进行相应的清理。
static class WebCleaner
{
/
7 个静态函数
私有函数
private bool FileDelete() : 删除文件
private void FolderClear() : 清除文件夹内的所有文件
private void RunCmd() : 运行内部命令

公有函数
public void CleanCookie() : 删除Cookie
public void CleanHistory() : 删除历史记录
public void CleanTempFiles() : 删除临时文件
public void CleanAll() : 删除所有



/
//private
///
/// 删除一个文件,SystemIOFileDelete()函数不可以删除只读文件,这个函数可以强行把只读文件删除。
///
/// 文件路径
/// 是否被删除
static bool FileDelete(string path)
{
//first set the File\'s ReadOnly to 0
//if EXP, restore its Attributes
SystemIOFileInfo file = new SystemIOFileInfo(path);
SystemIOFileAttributes att = 0;
bool attModified = false;
try
{
//### ATT_GETnSET
att = fileAttributes;
fileAttributes &= (~SystemIOFileAttributesReadOnly);
attModified = true;
fileDelete();
}
catch (Exception e)
{
if (attModified)
fileAttributes = att;
return false;
}
return true;
}
//public
///
/// 清除文件夹
///
/// 文件夹路径
static void FolderClear(string path)
{
SystemIODirectoryInfo diPath = new SystemIODirectoryInfo(path);
foreach (SystemIOFileInfo fiCurrFile in diPathGetFiles())
{
FileDelete(fiCurrFileFullName);
}
foreach (SystemIODirectoryInfo diSubFolder in diPathGetDirectories())
{
FolderClear(diSubFolderFullName); // Call recursively for all subfolders
}
}
static void RunCmd(string cmd)
{
SystemDiagnosticsProcessStart(\"cmdexe\", \"/c \" + cmd);
}
///
/// 删除历史记录
///
public static void CleanHistory()
{
string[] theFiles = SystemIODirectoryGetFiles(EnvironmentGetFolderPath(EnvironmentSpecialFolderHistory), \"\", SystemIOSearchOptionAllDirectories);
foreach (string s in theFiles)
FileDelete(s);
RunCmd(\"RunDll32exe InetCplcpl,ClearMyTracksByProcess 1\");
}
///
/// 删除临时文件
///
public static void CleanTempFiles()
{
FolderClear(EnvironmentGetFolderPath(EnvironmentSpecialFolderInternetCache));
RunCmd(\"RunDll32exe InetCplcpl,ClearMyTracksByProcess 8\");
}
///
/// 删除Cookie
///
public static void CleanCookie()
{
string[] theFiles = SystemIODirectoryGetFiles(EnvironmentGetFolderPath(EnvironmentSpecialFolderCookies), \"\", SystemIOSearchOptionAllDirectories);
foreach (string s in theFiles)
FileDelete(s);
RunCmd(\"RunDll32exe InetCplcpl,ClearMyTracksByProcess 2\");
}
///
/// 删除全部
///
public static void CleanAll()
{
CleanHistory();
CleanCookie();
CleanTempFiles();
}
}
这样应该可以删。

1webcache的简单介绍

 web缓存,是一种 缓存技术 ,用于临时存储(缓存)的网页文件,如HTML页面和图像等静态资源,减少带宽以及后端服务器的压力,通常一个WebCache也是一个 反向代理软件 ,既可以通过缓存响应用户的请求,当本地没有缓存时,可以代理用户请求至后端主机。

WebCache分为正向和反向之分,一般正向WebCache不常用,这次主要以反向WebCache为主。

2webcache的由来

 1)由于程序具有局部性,而局部性分为: 时间局部性和空间局部性

A时间局部性是指:在单位时间内,大部分用户访问的数据只是热点数据(热点数据指经常被访问的数据)

B空间局部性是指:某新闻网站突然出来一个重大新闻,此新闻会被被反复访问。

3webcache的变化性

  WebCache的新鲜度监测机制 :数据都是可变的,所以缓存中的内容要做新鲜度检测

4缓存相关的>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12945347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存