Servlet中如何获取类路径下资源呢?
下文笔者讲述Servlet获取类路径下的资源的方法分享,如下所示
获取classes目录中的资源的实现思路:
方式1:
借助ClassLoader对象获取
方式2:
借助Class对象获取
使用ClassLoader对象获取类路径下资源
例:
1.在应用src目录下,新建一个test.txt文件
2.新建一个Servlet类,来获取test.txt文件
public class ClassPathServlet extendsHttpServlet {
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
//1.获的ClassLoader对象
ClassLoaderclassLoader=this.getClass().getClassLoader();
//2.调用ClassLoader对象的getResourcAsStream()方法
InputStream input=classLoader.getResourceAsStream("test.txt");
//读取输入流内容,转换成字符串返回
String value=IOUtils.toString(input);
System.out.println(value);
}
}
使用ClassLoader的getResourceAsStream(Stringpath)方法
即可获得指定路径的对应输入流
然后再将流信息转换
借助Class对象获取类路径下资源
1 .src目录下,新建一个test.txt文件
2.新建一个Servlet类,来获取test.txt文件
public class ClassServlet extends HttpServlet{
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
Class clazz=this.getClass();
InputStreaminput=clazz.getResourceAsStream("/test.txt");
String value=IOUtils.toString(input);
System.out.println(value);
}
}
注意事项:
当具体的资源文件在 类文件中,我们可以输入相对路径
如下所示:
InputStream input=clazz.getResourceAsStream(“/com/java265/service/impl/test.txt”);
或
InputStreaminput=clazz.getResourceAsStream(“test.txt”);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


