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

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

最佳答案

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

public void init(ServletConfig config)

方法,您必须调用
super.init(config);

里面的方法。否则,超类会将上下文视为null.。Javadoc中已提到:

覆盖此形式的方法时,请调用super.init(config).
注意:您可以直接通过getServletContext().获取上下文。无需通过getServletConfig().

08-06 10:09