如何在 Web 应用程序中初始化所有 servlet 共享的变量

How to initialize a variable shared by all servlet in web application

我想创建一个相机对象数组,我将其定义为 java class。该对象将由我的 Web 应用程序中的所有 servlet 共享,我希望它在服务器启动时被初始化,而不是在我加载任何 servlet 时。我该怎么做?

我的初始化:

public camera[] dummycams = new camera[5];
    dummycams[0] = new camera("pcam", 640, 480);
    dummycams[1] = new camera("icam", 641, 481);
    dummycams[2] = new camera("acam", 642, 482);
    dummycams[3] = new camera("hcam", 643, 483);
    dummycams[4] = new camera("mcam", 644, 484);

我正在使用 glassfish 服务器,Java EE7。

您可以在 ServletContext 中添加数组。

您可以使用 ServletContextListener 来监听 servlet 上下文初始化事件并检索 servletContext 并向其添加数组。

您可以通过 API 此处 ServletContextLitener