//使用servletContext读取资源文件,相对于web项目的根路径(即JspServletFeature)
out.println("\n使用servletContext读取资源文件,相对于web项目的根路径(即JspServletFeature):");
readFileByServletContext(response,"FileReadFile1.properties");
readFileByServletContext(response,"/FileReadFile1.properties");
readFileByServletContext(response,"WEB-INF/classes/FileReadFile2.properties");
readFileByServletContext(response,"/WEB-INF/classes/FileReadFile2.properties");
readFileByServletContext(response,"WEB-INF/classes/com/zsm/util/FileReadFile3.properties");
readFileByServletContext(response,"/WEB-INF/classes/com/zsm/util/FileReadFile3.properties");//使用ClassLoader读取资源文件,相对于类目录(即classes)
out.println("\n使用ClassLoader读取资源文件,相对于类目录(即classes):");
readFileByClassLoader(response,"../../FileReadFile1.properties");
readFileByClassLoader(response,"/../../FileReadFile1.properties");
readFileByClassLoader(response,"FileReadFile2.properties");
readFileByClassLoader(response,"/FileReadFile2.properties");
readFileByClassLoader(response,"com/zsm/util/FileReadFile3.properties");
readFileByClassLoader(response,"/com/zsm/util/FileReadFile3.properties");//使用servletContext读取资源文件,相对于web项目的根路径(即JspServletFeature)
synchronized void readFileByServletContext(HttpServletResponse response, String filePath) throwsIOException {
InputStream in= this.getServletContext().getResourceAsStream(filePath);
Properties prop= newProperties();
prop.load(in);
String fileName= prop.getProperty("fileName");
String name= prop.getProperty("name");
String company= prop.getProperty("company");
in.close();
response.getWriter().println(MessageFormat.format("filePath={0}, fileName={1}, name={2}, company={3}",
filePath, fileName, name, company));
}//使用ClassLoader读取资源文件,相对于类目录(即classes)
synchronized void readFileByClassLoader(HttpServletResponse response, String filePath) throwsIOException {//获取到装载当前类的类装载器
ClassLoader loader = FileReadServlet.class.getClassLoader();
InputStream in=loader.getResourceAsStream(filePath);
Properties prop= newProperties();
prop.load(in);
String fileName= prop.getProperty("fileName");
String name= prop.getProperty("name");
String company= prop.getProperty("company");
in.close();
response.getWriter().println(MessageFormat.format("filePath={0}, fileName={1}, name={2}, company={3}",
filePath, fileName, name, company));
}