JSP 只有 运行 JAR 的单个实例吗

Does JSP only run a single instance of a JAR

我有一个 JSP 接受 EPUB 文件作为上传,然后使用 JAR 文件在 EPUB 上做一些 checks/validations。

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

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

java.util.ConcurrentModificationException

我认为这是由于我的 JAR 文件具有静态变量造成的。

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

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

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