java - JSP 的 Tomcat 类重新加载

标签 java tomcat classloader dynamic-class-loaders

在重新加载 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.

另见 where this method is called after compiling .

关于java - JSP 的 Tomcat 类重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934150/

相关文章:

java - 排序算法运行时间

java - 后退/主页按钮 [Java]

java - 在 JSP 文件中正确使用函数

performance - 从 tomcat 响应时间计算吞吐量

java - 与默认类加载器和 PlayFramework 自定义类加载器冲突

java - 类加载器有时无法加载资源

java - 我的程序正在访问哪些库?

java - PaintComponent 没有删除 JPanel

java - 许多同时连接和扩展的 Tomcat 性能问题

tomcat - Docker 容器未保存