zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    许家骏
    平均得分 【杭州电-HDOJ-2023】 附加题+详细说明
    百度之星的第二个问题
    kendo ui 单击取消编辑数据grid减少的原因和治疗方法的数据
    2013年第36周准备考下半年的项目管理师
    2013年第36周三杂记
    2013第36周二小结
    2013第36周星期一
    2013年9月1日下午
    2013年8月最后一天晚上
  • 原文地址:https://www.cnblogs.com/lahblogs/p/4372803.html
Copyright © 2011-2022 走看看