3.读取Web应用下的资源文件
ServletContext接口的常用方法:
方法说明 | 功能描述 |
---|---|
Set getResourcePaths(String path) | 返回一个 Set 集合,集合中包含资源目录中子目录和文件的路径名 称。参数 path 必须以正斜线(/)开始,指定匹配资源的部分路径 |
String getRealPath(String path) | 返回资源文件在服务器文件系统上的真实路径(文件的绝对路径)。参数 path 代表资源文件的虚拟路径,它应该以正斜线(/)开始,/ 表示当前 Web 应用的根目录,如果 Servlet 容器不能将虚拟路径转换为文 件系统的真实路径,则返回 null |
URL getResource(String path) | 返回映射到某个资源文件的 URL 对象。参数 path 必须以正斜线(/)开始,/ 表示当前 Web 应用的根目录 |
InputStream getResourceAsStream(String path) | 返回映射到某个资源文件的 InputStream 输入流对象。参数 path 的传递规则和 getResource() 方法完全一致 |
创建文件资源
在项目中右击src目录new—other—general—file—next----输入文件名
创建一个名为“newfile”的文件
在创建好的文件中输入如下所示的配置信息
Company = CSDN
Address = Beijing
注:Eclipse中在src目录下创建的资源文件夹在Tomcat服务器启动时会被复制到项目的WEB-INF/classes目录下
创建读取资源文件的Servlet类TestServlet06
TestServlet06:
public class TestServlet06 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 向浏览器说明编码方式,防止乱码
response.setContentType("text/html;charset=utf-8");
ServletContext context = this.getServletContext();
PrintWriter out = response.getWriter();
// 获取相对路径中的输入流对象
// InputStream in=context.getResourceAsStream("/WEB-INF/classes/itcast.properties");
// 获取绝对路径
FileInputStream in = new FileInputStream(context.getRealPath("/WEB-INF/classes/newfile"));
//Properties相关说明在文末
Properties pros = new Properties();
pros.load(in);
out.println("Company=" + pros.getProperty("Company") + "<br />");
out.println("Address=" + pros.getProperty("Address") + "<br />");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doGet(request, response);
}
//浏览器测试网址 http://localhost:8080/chapter03/TestServlet06
}
对Properties类的说明
菜鸟教程说明