为一个HTTP Servlet创建了多少个实例

我正在阅读“ JavaWeb服务:启动和运行,第二版”这本书,并遇到了一条声明:

Web服务器(例如Tomcat)可以实例化Servlet的许多实例,尽管数量通常很少(例如1到4)。Web服务器本身做出决定。

因此,这意味着如果我创建一个Servlet,则服务器可以创建多个实例,但这与许多帖子中给出的解释相矛盾,例如,如果我查看以下帖子:“10个客户端请求一个Servlet。有多少个Servlet实例。被创建 ”,然后明确指出:

(每个类加载器)仅存在一个servlet实例(每个实例都将在其自己的线程上服务)

因此,请帮助我理解这一点,服务器是否可以为一个servlet创建多个实例?

回答:

该Servlet规范状态

但是,对于实现该

SingleThreadModel接口 ,

如果将servlet作为部署描述符中标记为可分发的应用程序的一部分进行部署,则每个Java虚拟机(JVM)的每个servlet声明中,一个容器可能只有一个实例。但是,如果可分发应用程序中的servlet实现了该SingleThreadModel接口,则容器可以在容器的每个JVM中实例化该servlet的多个实例。

因此,这取决于您的部署方式。

如评论中所建议,SingleThreadModel已被弃用很长时间。

以上是 为一个HTTP Servlet创建了多少个实例 的全部内容, 来源链接: utcz.com/qa/402123.html

回到顶部