我希望在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");
答案 0 :(得分:15)
年轻球员的陷阱。如果你覆盖
public void init(ServletConfig config)
方法,您必须致电
super.init(config);
在方法内部。否则,超类将上下文视为null.
它在Javadoc中提到:
覆盖此方法时,请致电
super.init(config).
注意:您可以通过getServletContext().
直接获取上下文。无需通过getServletConfig().
答案 1 :(得分:-1)
我遇到了同样的问题,结果发现web.xml文件是在错误的地方创建的,并没有被容器加载。
需要在WEB-INF文件夹的根目录中创建。理想情况下,Eclipse会在您创建项目时为您执行此操作。