java - 容器加载后创建了多少个servlet实例?辛格尔顿?

标签 java servlets

加载 servlet 容器后,它会创建多少个 servlet 实例? 只有一个吗?

最佳答案

Servlet遵守 Singleton pattern 。 Servlet 类有一个公共(public)构造函数,它已经违反了单例模式。默认情况下,servlet 的创建就是 Just Create One pattern 。从技术上讲,容器可以根据需要创建任意数量的容器。特别是如果 servlet 碰巧实现了(已弃用) SingleThreadedModel接口(interface),以便容器可以创建这些 servlet 实例的池以提高性能。

但是,同一个实例确实可以在多个请求之间共享。这就是为什么将任何请求/ session 范围的数据分配为 servlet 的实例变量非常重要。它将在多个请求之间共享。

Servlet 本身遵守 Template Method pattern顺便一提。这与创作无关,只是一种行为模式。

另请参阅:

关于java - 容器加载后创建了多少个servlet实例?辛格尔顿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298309/

相关文章:

java - Thread 中的 join() 方法是否保证完美工作,还是也依赖于各个 JVM?

java - 为 torrent 计算的 info_hash 不正确

java - 如何在不离开jsp的情况下从servlet返回消息?

java - 我如何在 Servlet 中打开一个弹出窗口,然后重定向一个页面

Java对象引用问题

java - 监听器的代码执行顺序

java - JAXB 编码失败,错误为 "unsupported javax.xml.parser.transform.Result parameter"

java - 刷新数据时发生异常。这是什么,为什么我会得到这个?

java - 如何获取响应对象的大小?

java - Servlet 和资源文件