1、Java中配置文件(.properties文件、.xml文件)的三种配置位置及读取方式
1.1 位置: src根目录下
读取方式:
类名(类名去点class)例如:
PropertiesDemo.class.getResourceAsStream("/db.properties");
1.2 位置:与读取配置文件的类在同一包
读取方式:
类名(类名去点class)例如:
PropertiesDemo.class.getResourceAsStream("db.properties");
注意:此处无“/”
1.3 位置:WEB-INF下(或其子目录下)
读取方式:
ServletContext application = this.getServletContext();
InputStream is = application.getResourceAsStream("/WEBINF/config3.properties");
注:.properties文件的解析方式由java.util.properties这个类来完成
如:
结果如下:
而.xml文件的解析需要一个工具来完成解析
如:dom4j和sax解析(常用dom4j解析xml文件,所以下面也是用着dom4j解析的)
sax解析:由上往下解析
dom4j解析:由外到内解析
2、dom4j+xpath解析xml文件(我们用一个例子来解释)
xpath:因为xpath等同数据库的select语句,所以它也可以查看单个和查询一组
document.selectNodes(xpath);//查一组
document.selectSingleNode(xpath);//查单个
首先:先写一个.xml的文件(以下是一个.xml的文件,我们放了id和学生姓名)
然后我们获取到这个文件并把它读取出来
是不是觉得代码比较多,有点小麻烦?没关系,还有第二种方法
直接根据id准确的拿到该学生
打印结果一样的哦~
在xml的解析我们可以看出一个问题:
通过获取资源文件xml,可以拿到指定的xml字符串,
那么不同的人,有不同的需求,那么是不是意味着每一个人都需要对
指定xml字符串进行解析呢?
而建模的由来:
就是将指定的xml字符串当作对象来操作
如果说当对一个指定的xml格式字符串完成了建模操作,
好处在于,只需要调用指定的方法就可以完成预定的字符串获取;
建模的思路:
1、分析需要被建模的文件中有那几个对象
2、每个对象拥有的行为以及属性
3、定义对象从小到大(从里到外)
4、通过23种的设计模式中的工厂模式,解析xml生产出指定对象
好处:提高代码的复用性
以下用一个例子来实现建模
建模分两步:
1、以面向对象的编程思想,描述xml资源文件
2、将xml文件中内容封装进model实体对象。
首先,写一个.xml的文件,这里我们已经写好了一个了,
然后依次把标签作为一个类,里面的属性作为类的属性,然后我们可以看出forward在action的里面,所有在action内写一个Map集合,而action又在config内,所有同样在config内写一个集合,这里还需要注意的是:config内可以增加无数个action这样的例子,也可以根据唯一值查询,所以config内肯定要写一个增加和查询的方法的,action同样如此。如下:
以上就是我建的类,接下来我们就去写方法了
然后我们就可以测试一下
(在main方法里写好)