Java getServletContext().getAttribute()是否返回null?

Java getServletContext().getAttribute()是否返回null?,java,servlets,Java,Servlets,尝试设置上下文属性时,如下所示: void init() { String testing = new String(); testing = "This is a test"; getServletContext().setAttribute("test", testing); } 在一个servlet中,获取如下属性: String testing = (String) getServletContext().getAttribute("test") 在第二个se

尝试设置上下文属性时,如下所示:

void init()
{
    String testing = new String();
    testing = "This is a test";
    getServletContext().setAttribute("test", testing);
}
在一个servlet中,获取如下属性:

String testing = (String) getServletContext().getAttribute("test")
在第二个servlet中,
testing
null

这是否意味着我的servlet处于不同的上下文中?如果是这样,我如何访问第一个servlet的上下文属性?请提供参考,因为我对java/servlets比较陌生

我将Netbeans与Glassfish 3一起使用


编辑:它们都在同一个webapp中,并且都是在同一个WEB-INF/WEB.xml中定义的。我认为这两个servlet需要在WEB应用程序中,即打包在同一个war文件中,才能工作。

上下文==war==webapps


两个servlet必须位于同一个webapp下才能共享上下文。检查两个servlet类是否位于相同的WEB-INF/classes下。

如果两个servlet位于相同的webapp中,默认情况下,初始化顺序未定义。因此,您的“第二个”servlet可能在“第一个”之前初始化(根据web.xml中的顺序)。您可以通过向servlet标记添加启动时加载标记来修复它:

<servlet>
  <servlet-name>first<servlet-name>
  ...
  <load-on-startup>1<load-on-startup>
</servlet>

<servlet>
  <servlet-name>second<servlet-name>
  ...
  <load-on-startup>2<load-on-startup>
</servlet>

第一
...
1.
第二
...
2.

它们都在同一个webapp中,并且都在同一个WEB-INF/WEB.xml中定义。谢谢!!这似乎奏效了。整个上午我都快疯了。你知道为什么这很重要吗?