如果您尝试从可识别 Servlet 的类(例如 ContextListener 或其他生命周期侦听器)访问此文件,则可以使用 ServletContext 对象来获取资源的路径。
这三个大致相当。(不要将 getResourceAsStream 与ClassLoader
类提供的相同混淆。它们的行为非常不同)
void myFunc(ServletContext context) {
//returns full path. Ex: C:\tomcat\5.5\webapps\myapp\web-inf\message.properties
String fullCanonicalPath = context.getRealPath("/WEB-INF/message.properties");
//Returns a URL to the file. Ex: file://c:/tomcat..../message.properties
URL urlToFile = context.getResource("/WEB-INF/message.properties");
//Returns an input stream. Like calling getResource().openStream();
InputStream inputStream = context.getResourceAsStream("/WEB-INF/message.properties");
//do something
}