1

我希望在 servlet 上下文初始化阶段使用 servletContext.setAttributes 设置一些应用程序范围的变量。我怎样才能实现这一点。

4

2 回答 2

1

实现在初始化javax.servlet.SevletContextListener时获取回调。javax.servlet.ServletContext

这是示例:

public class MyServletContextListener implements ServletContextListener
{
   public void contextInitialized(ServletContextEvent sce)
   {
       ServletContext sc = sce.getServletContext();
       //do your initialization here.
       sc.setAttribute(.....);
   }

   public void contextDestroyed(ServletContextEvent sce)
   {
       ServletContext sc = sce.getServletContext();
       //do your cleanup here

   }
}
于 2012-07-05T05:38:38.390 回答
1

如果您想将您的逻辑更接近 servlet(而不是使用侦听器),您可以覆盖 servletsinit方法。像这样:

@Override
public void init() throws ServletException {
    ServletContext sc = getServletContext();

    // Store our attribute(s)!
    // Check first to make sure it hasn't already been set by another Servlet instance.
    if (sc.getAttribute("key") == null)
        sc.setAttribute("key", "value");
}

而且您不必打电话到super.init(config). 请参阅文档

于 2013-02-12T17:47:32.057 回答