关于tomcat的classloader相关的帖子网上非常多,我觉得比较好的有:
https://www.jianshu.com/p/d90e4430b0b9
https://blog.csdn.net/qq_38182963/article/details/78660779
但是看了很多文章都说tomcat违反了双亲委派模型,可以是通过源码以及一些概念包括tomcat的delegate的设置描述并没有觉得tomcat是因为违反了双亲委派模型才实现多个应用的classpath隔离。
个人觉得:
Tomcat可以走双亲委派模式,也可以走违反双亲委派的模式
Tomcat的隔离性在于它的每个线程都有自己的WebappClassLoader以及每个jsp都有自己jasperloader(不同的classloader加载同一个class都是不同的类,实例也不同)。
Tomcat的隔离性不是因为他违反了双亲委派模式,更不是因为他用了上下文模式,上下文模式只是解决了双亲委派模式下上层loader加载下层loader的问题。