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”);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。