尝试像这样设置Context属性时:

void init()
{
    String testing = new String();
    testing = "This is a test";
    getServletContext().setAttribute("test", testing);
}


在一个servlet中,并像这样获取属性:

String testing = (String) getServletContext().getAttribute("test")


在第二个servlet中,testingnull

这是否意味着我的servlet在单独的上下文中?如果是这样,我如何访问第一个servlet的上下文属性?请为此提供参考,因为我是java / servlet的新手。

我正在将Netbeans与Glassfish 3一起使用。

编辑:它们都在同一个webapp中,并且都在同一个WEB-INF / web.xml中定义

最佳答案

如果两个Servlet都在同一个Web应用程序中,则默认情况下,初始化的顺序是不确定的。可能是这样,您的“第二个” 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>

关于java - getServletContext()。getAttribute()返回null吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1444674/

10-16 21:28