ServletContext是每个web应用程序一个还是每个JVM一个?

8

我有一个疑问,ServletContext一次只能为一个Web应用程序和一个JVM提供服务。但是,如果我在同一个JVM上运行多个Web应用程序,则每个JVM会有2个ServletContext。这是否可能?有人可以详细说明吗?

3个回答

8

以下表格可以解释每个 Web 应用程序和每个 JVM 的概念。

一个服务器上的多个 Web 应用(一个 JVM):

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3

在多个服务器(多个JVM)上运行相同的Web应用程序:

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3 
Web App C - Server/JVM 2 - Context 4

8
每个web应用程序都有自己的ServletContext。根据api文档的说法:

每个Java虚拟机中的“Web应用程序”都有一个上下文。(“Web应用程序”是一组Servlet和内容,安装在服务器URL命名空间的特定子集下,例如/catalog,并可能通过.war文件安装。)

“每个Web应用程序”部分意味着,如果您在集群中设置应用程序,则集群中的每个节点都有单独的JVM,并且该JVM将运行所有应用程序的单独副本,包括每个Web应用程序的ServletContext。

3

ServletContext

每个Java虚拟机上的“Web应用程序”都有一个上下文。

这意味着每个Web应用程序在每个VM上都有一个且仅有一个 ServletContext。(多VM的情况是分布式应用程序)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接