JSP是否仅运行JAR的单个实例

时间:2016-09-05 05:37:16

标签: java jsp jar epub

我有一个接受EPUB文件作为上传的JSP,然后使用JAR文件在EPUB上进行一些检查/验证。

我让它工作正常但是当我测试使用来自2个不同标签的JSP页面, tab1 tab2 并为每个标签上传不同的文件时,两个页面的结果只有tab1或tab2中的一个选项卡,然后tomcat服务器关闭。

我检查了控制台,它有一个

  

java.util.ConcurrentModificationException

我认为这是由我的JAR文件有静态变量引起的。

所以我的问题是,即使我使用2个浏览器,JSP是否只运行我的JAR的单个实例?

如果是这样,修复静态变量是我唯一的选择还是我还能做什么呢?

1 个答案:

答案 0 :(得分:2)

每个Web应用程序只有一个类加载器。 JSP(它是Web应用程序的一部分)使用仅加载一次的JAR。因此,静态变量在所有请求之间共享,内容被覆盖。您需要使变量非静态,并在每个JSP中创建一个新实例来进行处理。