JavaWeb學習——獲取類路徑下的資源


對於JavaWeb而言,獲取類路徑下的資源,就是獲取classes目錄下的資源。

獲取資源的方式有兩種,利用Class或ClassLoader。

Class類的getResourceAsStream(String path):

  • 路徑以“/”開頭,相對classes路徑;
  • 路徑不以“/”開頭,相對當前class文件所有路徑,例如在cn.sdut.servlet.MyServlet中執行,那么相對/classes/cn/sdut/servlet/路徑;

ClassLoader類的getResourceAsStream(String path):

  • 相對classes路徑;

 

 1 public class BServlet extends HttpServlet {
 2 
 3     public void doGet(HttpServletRequest request, HttpServletResponse response)
 4             throws ServletException, IOException {
 5         //方式一
 6         ClassLoader cl = this.getClass().getClassLoader();
 7         InputStream input = cl.getResourceAsStream("a.txt");
 8         // 讀取輸入流轉換成字符串(使用commons-io-2.4.jar)
 9         String s = IOUtils.toString(input);
10         System.out.println(s);
11 
12         //方式二
13         Class c = this.getClass();
14         // 路徑前加"/"是相對於classes路徑下
15         InputStream is = c.getResourceAsStream("/a.txt");
16         // 路徑相對於當前.class文件
17         // InputStream is = c.getResourceAsStream("a.txt");
18         String str = IOUtils.toString(is);
19         System.out.println(str);
20 
21         /*
22          * 使用Class獲取WebRoot目錄下的資源
23          */
24         // 第一個'/'表示在classes目錄下,'../'表示回到上一級目錄
25         InputStream is1 = c.getResourceAsStream("/../../index.jsp");
26         String str1 = IOUtils.toString(is1);
27         System.out.println("index:" + str1);
28     }
29 
30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM