说一下事情发生的缘由吧,今天想写一个通用的jdbcUtil类,也试着想把它尽量做到美观和性能兼具。所以了解了很多种方法,其中一种呢,使用Properties和FileInputStream类读取资源文件,一致陷与路径问题,经常报错,俗话说:
世上本没路,走的人多便成了路,在我这里呢,就是“踩得坑多了,自然就有了规避坑的能力了~~~”
关于FileInputStream类中URL问题乃至是整个io流中URL按照项目可分为两类一种是web项目,一种是Java项目
在java项目中:
(1)IO的URL可以使用绝对地址(稳得一批),相对于磁盘。。
如果不明白请看一个栗子:D:\idea\WorkSpace\shopping-parent\src\main\java\utils\dbconfig.properties但是这样的代码看起来不够美观,也很不方便。
(2)io的URL可以使用相对地址。相对于IDE工具
Java的相对路径是基于项目根目录即src同级目录。。。因此可以使用./来替代项目
栗子:new FileInputStream("./src/main/java/utils/dbconfig.properties");
在web项目中:
也可是使用绝对地址,
相对地址是webapp目录,然後就是前台路径和后台路径区别:
1:前台路径:前台路径就是前端使用的URL,我的理解就是前端不执行逻辑处理或者今天的代码段就是前台路径。
使用/
2:后台路径:后台路径相对于前台路径,然后使用情况不用加/
注意:这里的/指的是获取到当前项目的相对地址即:projectName/。前台路径的相对路径是端口号,举个栗子吧,
假如当前项目为projectTest,前台路径的相对地址(URI)为localhost:8080/,如果前台路径为jsp/demo.jsp,整个访问路径就成了localhost:8080/jsp/demo.jsp自然是访问不到的,缺了什么?自然是项目名,所以前台路径为/jsp/demo.jsp就能访问到了。原因我也不多做赘述了,懂得人都懂,各位都是明白人。