zoukankan      html  css  js  c++  java
  • Class.getResource()方法的使用

    我们之前使用路径总是有点不知道怎么用,发现别人使用Class.getResource()方法,好像挺不错的样子。于是看看博客,简单学习下。

    参考链接:http://blog.csdn.net/lcj8/article/details/3502849

    几点总结下:

      jsp里面:request对象的contextPath方法得到的是“工程名”。应该说是链接的根路径,作用于外部访问,对于jsp而言相当于webapp的位置

      servlet里面:getRealPath可以得到绝对路径

    通过类得到资源:

        那就是Class.getResource()与Class.getResourceAsStream()方法

    解析一下:

      就是通过Class得到有关的文件资源URL和输出流

    要点:

      此方法只能得到处于根目录及其子目录下的资源,都使用相对路径得到。/代表根目录,指的是class的编译存放的文件夹位置。

    比如,有以下目录:

    |--project 
        |--src 
            |--javaapplication 
                |--Test.java 
                |--file1.txt 
            |--file2.txt 
        |--build 
            |--javaapplication 
                |--Test.class 
                |--file3.txt 
            |--file4.txt 

    Test中想要获得file3.txt的方式,使用Class的方法:

       Test.class.getResource("file3.txt");

       Test.class.getResource("/javaapplication/file3.txt")

       Test.class.getClassLoader().getResource("javaapplication/file3.txt");

    Test中想要获得file4.txt的方式:

        Test.class.getResource("../file4.txt");

      Test.class.getResource(/file4.txt);

      Test.class.getClassLoader().getResource("file4.txt");

    简单推出结论:

      Class处于的位置为该class文件的位置

      Class.getClassLoader()处于的位置为编译文件文件夹所在的位置

  • 相关阅读:
    Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
    Java文件IO操作应该抛弃File拥抱Paths和Files
    什么是内存(一):存储器层次结构
    mysql 锁
    Mysql索引面试题
    node.js中对同步,异步,阻塞与非阻塞的理解
    mysql 快照读 当前度
    mysql 联合索引
    redis 分布式锁(单机)
    docker 环境搭建redis集群相关问题
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/7297660.html
Copyright © 2011-2022 走看看