ServletContext属性为null

时间:2011-05-16 01:43:11

标签: java servlets

属性repository返回null

public class BaseServlet extends HttpServlet {
    protected MyPersistentManager getPersistentManager(){
        return (MyPersistentManager) getServletContext().getAttribute("repository");
    }
//...
}

我在这里设置:

public class ServletListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
        /*
        load data
         */
        ServletContext servletContext = sce.getServletContext();
        MyPersistentManager persistentManager = new MyPersistentManager();
        servletContext.setAttribute("repository", persistentManager);
    }
}

为什么没有设置?似乎上下文没有初始化?我试图重置Tomcat,但这并没有解决问题。我正在使用Netbeans。

1 个答案:

答案 0 :(得分:4)

ServletListener类是否在web.xml中注册?

<listener>
 <listener-class>mypackage.ServletListener</listener-class>
</listener>

documentation“此接口的实现接收有关它们所属的Web应用程序的servlet上下文更改的通知。要接收通知事件,必须配置实现类在Web应用程序的部署描述符中。