Class.getResource()方法的使用

时间:2024-06-01 11:04:56

我们之前使用路径总是有点不知道怎么用,发现别人使用Class.getResource()方法,好像挺不错的样子。于是看看博客,简单学习下。

参考链接:http://blog.****.net/lcj8/article/details/3502849

几点总结下:

  jsp里面:request对象的contextPath方法得到的是“工程名”。应该说是链接的根路径,作用于外部访问,对于jsp而言相当于webapp的位置

  servlet里面:getRealPath可以得到绝对路径

通过类得到资源:

    那就是Class.getResource()与Class.getResourceAsStream()方法

解析一下:

  就是通过Class得到有关的文件资源URL和输出流

要点:

  此方法只能得到处于根目录及其子目录下的资源,都使用相对路径得到。/代表根目录,指的是class的编译存放的文件夹位置。

比如,有以下目录:

|--project 
    |--src 
        |--javaapplication 
            |--Test.java 
            |--file1.txt 
        |--file2.txt 
    |--build 
        |--javaapplication 
            |--Test.class 
            |--file3.txt 
        |--file4.txt

Test中想要获得file3.txt的方式,使用Class的方法:

   Test.class.getResource("file3.txt");

   Test.class.getResource("/javaapplication/file3.txt")

   Test.class.getClassLoader().getResource("javaapplication/file3.txt");

Test中想要获得file4.txt的方式:

    Test.class.getResource("../file4.txt");

  Test.class.getResource(/file4.txt);

  Test.class.getClassLoader().getResource("file4.txt");

简单推出结论:

  Class处于的位置为该class文件的位置

  Class.getClassLoader()处于的位置为编译文件文件夹所在的位置