《深入理解java虚拟机》——Tomcat类加载器体系结构

Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器:

(1).部署在同一个服务器上的两个web应用程序所使用的Java类库可以相互隔离。

(2).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互共享。

(3).许多Web服务器本身使用java语言实现,因此服务器所使用的类库应与应用程序的类库相互独立。

(4).支持JSP应用的Web服务器,需要支持HotSwap功能,因为JSP文件最终是被编译为java的servlet来运行的,当修改JSP文件时,不需要重启服务器就可以实现热部署。

Tomcat作为JDK推荐的双亲委派模式正统类加载器实现的代表,Tomcat5和Tomcat6类加载体系结构有较大区别:

Tomcat5:

Tomcat5中可以存放java类库以及Web应用的目录如下:

(1)./common目录:类库可以被Tomcat服务器本身和所有的Web应用程序共同使用。

(2)./server目录:类库可以被Tomcat服务器本身使用,对应用程序不可见。

(3)./shared目录:类库可以被所有的应用程序使用,对Tomcat服务器本身不可见。

(4)./WebApp/WEB-INF目录:类库仅可以被应用程序使用,对其他的应用程序和Tomcat服务器不可见。

Tomcat5的类加载体系结构如下:

Tomcat6:

Tomcat默认把/common、/server和/shared三个目录合并成一个/lib目录,因此Tomcat6默认可以存放java类库以及Web应用的目录如下:

(1)./lib目录:类库可以被Tomcat服务器本身和所有的Web应用程序共同使用。

(2)./WebApp/WEB-INF目录:类库仅可以被应用程序使用,对其他的应用程序和Tomcat服务器不可见。

Tomcat6的默认类加载体系结构如下:

在Tomcat6中,可以通过指定<Tomcat安装目录>/conf/catalina.properties属性文件中的server.loader和share.loader建立和Tomcat5类似的ServerClassLoader和SharedClassLoader。

最新文章

  1. vue吃进去的object已经变了样,不在是原来的!
  2. Django中载入javascript、css的操作
  3. linux中安装eclipse,安装好之后不能直接建servlet,不能直接在jsp页面中run on server.权限在作怪,我猜的,
  4. C#学习笔记——Show()与ShowDialog()的区别
  5. Block的简单使用
  6. JQuery开发之Galleriffic图片插件介绍
  7. Geoserver 相关学习
  8. JAVA并发,经典死锁案例-哲学家就餐
  9. Android多线程.断点续传下载
  10. UITextField的属性设置
  11. 程序员 10Tips
  12. GCD之异步同步体会
  13. SQL基础-----DDL
  14. jmeter生成html格式接口自动化测试报告
  15. 关于anaconda中jupyter notebook错误
  16. JavaScript的使用你知道几种?(上)
  17. HS BDC HDU - 3472(混合欧拉路径)
  18. windows核心编程
  19. ASP.NET MVC:Form Authentication 相关的学习资源
  20. Android——ViewPager滑动背景渐变(自定义view,ViewPager)

热门文章

  1. 普通Apache的安装与卸载
  2. 从零写一个编译器(九):语义分析之构造抽象语法树(AST)
  3. hive动态分区与静态分区
  4. C语言编程入门之--第五章C语言基本运算和表达式-part4
  5. Selenium + python 测试环境搭建扩展-HTMLUNIT的使用
  6. input样式重置(outline:none)
  7. 神经网络 OCR 参考
  8. Kafka到底有几个Offset?——Kafka核心之偏移量机制
  9. AI资源对接需求汇总:第3期
  10. Zabbix安装时出现缺少PHP模块,解决过程