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 }
  • 相关阅读:
    不开心的事
    git push 时 error: RPC failed; HTTP 400 curl 55 Send failure: Connection was reset 问题
    Java多线程相关
    angularJS 级联下拉框
    leetcode260 Single Number III
    -2147483648的绝对值
    git 提交信息模板
    rabbitmq at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-5.4.3.jar:5.4.3] 错误
    Unity 切换场景的注意点
    Java位运算
  • 原文地址:https://www.cnblogs.com/lahblogs/p/4372803.html
Copyright © 2011-2022 走看看