getServletConfig()/ getServletContext()返回null值

时间:2014-10-21 22:09:39

标签: java servlets servletconfig

我希望在Java类中获取servletContext以从WEB-INF目录中读取文件。我使用HttpServlet扩展了我的类,并尝试获取上面的代码中的上下文,但servlet配置返回null。我没有使用任何jsp或控制器。我的目的是从Java类中读取直接放在WEB-INF目录中的文件。请让我知道如何在课程中获得servletConfig / servletContext null:

ServletConfig config = getServletConfig(); 
ServletContext context = config.getServletContext(); 
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/samplefile");

2 个答案:

答案 0 :(得分:15)

年轻球员的陷阱。如果你覆盖

public void init(ServletConfig config)

方法,您必须致电

super.init(config);

在方法内部。否则,超类将上下文视为null.它在Javadoc中提到:

  

覆盖此方法时,请致电super.init(config).

注意:您可以通过getServletContext().直接获取上下文。无需通过getServletConfig().

答案 1 :(得分:-1)

我遇到了同样的问题,结果发现web.xml文件是在错误的地方创建的,并没有被容器加载。

需要在WEB-INF文件夹的根目录中创建。理想情况下,Eclipse会在您创建项目时为您执行此操作。