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中定义。谢谢!!这似乎奏效了。整个上午我都快疯了。你知道为什么这很重要吗?