尝试像这样设置Context属性时:
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 / 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/