Apache Tomcat
Tomcat 是伟大的,以至于我不理解为什么别人还在开发差不多的软件。啊,这是一个竞争,我已经深入了解了Tomcat 5.0。在这篇摘要中我会列出一些我所解决的一些晕倒的困难。
Bootstrap
要求将所有System.out和System.err截取输出到文件中。我们可以创建一个简单的类在main中来实现。小心不要用web application中的任何类,没有东西会替你载入他们。
public class TomcatBootstrapWrapper {
public static void main(String [] args){
System.out.println("JVM bootstrap " + TomcatBootstrapWrapper.class.getName() + "!");
// do what ever you want here
//// load catalina
org.apache.catalina.startup.Bootstrap.main(args);
}}
不同webapps之间的沟通(crosscontext)
对于很大的程序,也许需要几个不同程序之间对话。Tomcat不允许这样。Classloading被组织成不能访问另外一个程序中的实例。我有两个解决方案:
1. 把所有需要共享的类放在单独一个jar文件中,部署在%TOMCAT_HOME%/shared/lib;这里面的类能被所有的webapps共享。
2. 在context中使用crosscontexx属性,如:
<Context path="/search" docBase="C:/webapps/search/" crossContext="true">
</Context>
Cache Control 缓存控制
Tomcat中没有缓存控制,意味html,images,css, and js文件没有缓存策略。我们可以用Filter来简单实现这个功能。
httpResponse.addHeader("Cache-Control", "360");