标签:tomcat 缓存 线程 delegate servlet
Bootstrap.java
System.setProperty("catalina.base", System.getProperty("user.dir"));
FileLogger logger = new FileLogger();
logger.setPrefix("FileLog_");
logger.setSuffix(".txt");
logger.setTimestamp(true);
logger.setDirectory("webroot");
context.setLogger(logger);
在使用的时候,调用log(message)即可
private void log(String message) {
Logger logger = connector.getContainer().getLogger();
if (logger != null)
logger.log(threadName + " " + message);
}
我们设定了两个数组变量,triggers与packageTriggers,这个两个数组里面放置不能访问的类与包。当我们加载一个类的时候提前检查类名,包名。这里有一个问题,我们加载类的顺序是:
所有加载过的类都要进行缓存,所以首先需要检查本地缓存。这条看的不是很懂,DirContext也看的不是很明白。
WebLoader.java run方法(部分)
while (!threadDone) {
// Wait for our check interval
threadSleep();
if (!started)
break;
try {
if (!classLoader.modified())
continue;
} catch (Exception e) {
continue;
}
// Handle a need for reloading
notifyContext();
break;
}modified方法会检查已经载入的类是否被修改,是否修改的表示就是最后修改的时间是否改变!标签:tomcat 缓存 线程 delegate servlet
原文地址:http://blog.csdn.net/dlf123321/article/details/40782987