在重新加载 JSP 时,类重新加载在 Tomcat 中是如何工作的(我说的是内部架构)?
我知道每个 JSP 都被编译成一个 Java 类。但是类加载器(每个 Web 应用程序都是唯一的)如何重新加载这些生成的类,因为类加载器不允许类卸载并且不会收集太多垃圾?
最佳答案
JasperLoader 实例是加载 jsp 生成的 servlet 的类加载器。
jsp 编译器在生成更新的 servlet 类文件时“丢弃”(设置为 null)旧的 JasperLoader 实例。
引自 JspServletWrapper.setServletLastModifiedTime 中的评论:
Really need to unload the old class but can't do that. Do the next best thing which is throw away the JspLoader so a new loader will be created which will load the new class.
关于java - JSP 的 Tomcat 类重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934150/