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 }
  • 相关阅读:
    如何配置mysql的超时时间
    什么是P2P流标
    为何农历10月1号要祭祖上坟?原来有这么多讲究,你知道吗?
    “请家堂”的旧习俗不是封建迷信
    sourcetree合并分支
    mybatis sql参考
    source tree使用经验
    关于 early Z 与 z-prepass
    发现一个好工具RenderDoc
    HASHSET不能预留容量问题
  • 原文地址:https://www.cnblogs.com/lahblogs/p/4372803.html
Copyright © 2011-2022 走看看