ServletContext方式:
1)资源的文件的位置任意 注意:这里的位置随意是说的在IDE中既可以放在src目录下,也可以放在webroot目录下(类加载器在IDE中只能放在src目录下) 虽说位置随意,但两种情况的写法却不同,具体例子如下:
1.当放在src目录下时
InputStream inputStream = this.getServletContext().getResourceAsStream(
"/WEB-INF/classes/DuoServlet/config.properties");
Propertiesproperties = new Properties();
properties.load(inputStream);
System.out.println(properties.getProperty("name"));
这是文件(绝对)路径要写成 /WEB-INF/classes/包名(如果是根目录就没有包名了)/文件名 的形式(此时的path要写成发布之后的路径,而不是在eclipse中看到的位置,因为在src目录下的资源文件发布之后位于WEB-INF/classes目录下)
2.当放在webroot目录下时
上面的代码可以继续用,只是把文件路径改成 /文件夹名/文件名 的形式就行了,同样此时的path要写成发布之后的路径,而不是在eclipse中看到的位置,因为在webroot目录下的资源文件发布之后就位于web应用的根目录下
注意:以上两种情况中最前面的/都表示web应用的根目录,这刚好在下面3)中提到了
2)加载文件时,只会以流的方式读取,不会一次性加载全部
3)/表示当前web应用,即day06