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 }

 

转载于:https://www.cnblogs.com/lahblogs/p/4372803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值