JavaWeb学习——获取类路径下的资源

对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源。

获取资源的方式有两种,利用Class或ClassLoader。

Class类的getResourceAsStream(String path):

  • 路径以“/”开头,相对classes路径;
  • 路径不以“/”开头,相对当前class文件所有路径,例如在cn.sdut.servlet.MyServlet中执行,那么相对/classes/cn/sdut/servlet/路径;

ClassLoader类的getResourceAsStream(String path):

  • 相对classes路径;
 public class BServlet extends HttpServlet {

     public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//方式一
ClassLoader cl = this.getClass().getClassLoader();
InputStream input = cl.getResourceAsStream("a.txt");
// 读取输入流转换成字符串(使用commons-io-2.4.jar)
String s = IOUtils.toString(input);
System.out.println(s); //方式二
Class c = this.getClass();
// 路径前加"/"是相对于classes路径下
InputStream is = c.getResourceAsStream("/a.txt");
// 路径相对于当前.class文件
// InputStream is = c.getResourceAsStream("a.txt");
String str = IOUtils.toString(is);
System.out.println(str); /*
* 使用Class获取WebRoot目录下的资源
*/
// 第一个'/'表示在classes目录下,'../'表示回到上一级目录
InputStream is1 = c.getResourceAsStream("/../../index.jsp");
String str1 = IOUtils.toString(is1);
System.out.println("index:" + str1);
} }
上一篇:ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order


下一篇:MVC Razor模板引擎输出HTML或者生产HTML文件