Tomcat
Tomcat
连接器(Connector)
容器(Container)
tomcat类加载

类加载目录
- 放置在/common目录中。 类库可被Tomcat和所有的Web应用程序共同使用。
- 放置在/server目录中。 类库可被Tomcat使用, 对所有的Web应用程序都不可见。
- 放置在/shared目录中。 类库可被所有的Web应用程序共同使用, 但对Tomcat自己不可见。
- 放置在/WebApp/WEB-INF目录中。 类库仅仅可以被该Web应用程序使用, 对Tomcat和其他Web应
Tomcat为什么要自己实现classload
- 对于各个webapp中的class和lib,需要相互隔离,不能出现一个应用中加载的类库会影响另一个应用的情况;而对于许多应用,需要有共享的lib以便不浪费资源,举个例子,如果webapp1和webapp2都用到了log4j,可以将log4j提到tomcat/lib中,表示所有应用共享此类库,试想如果log4j很大,并且20个应用都分别加载,那实在是没有必要的。
- 第二个原因则是与jvm一样的安全性问题。使用单独的classloader去装载tomcat自身的类库,以免其他恶意或无意的破坏;
- 第三个原因是热部署的问题。相信大家一定为tomcat修改文件不用重启就自动重新装载类库而惊叹吧。