1. Java中配置文件的三种配置位置及读取方式
1.src根目录下:Xxx.class.getResourceAsStream("/config.properties");
/**
* 各个位置下的资源文件(properties、xml结尾的文件)的读取方式
* 1.同包下的资源文件读取
* 2.将所有的资源文件放在根目录下
* 编译后所有的资源文件都会自动进WEB-INF下
* 3.直接将资源文件放到WEB-INF下
* @yinyi
*
*/
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
//将当前类同包下的db.properties资源文件转换成输入流
// /:代表根目录
InputStream in = PropertiesDemo.class.getResourceAsStream("/db.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
2.与读取配置文件的类在同一包
/**
* 各个位置下的资源文件(properties、xml结尾的文件)的读取方式
* 1.同包下的资源文件读取
* 2.将所有的资源文件放在根目录下
* 编译后所有的资源文件都会自动进WEB-INF下
* 3.直接将资源文件放到WEB-INF下
* @yinyi
*
*/
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
//将当前类同包下的db.properties资源文件转换成输入流
// /:代表根目录
InputStream in = PropertiesDemo.class.getResourceAsStream("/db.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
3.WEB-INF(或其子目录下)
3.1要写个Servlet并且配置;
public class PropertiesServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = req.getServletContext();
InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");
Properties p = new Properties();
p.load(in);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));
}
}
配置
2.XML的用途
1.配置:properties ,xml
2. 数据交换: xml,webservice, json
3.dom4j+xpath解析xml文件
1.xpath相当于数据库的select语句
2.要点
document.selectNodes(xpath);//查一组
document.selectSingleNode(xpath);//查单个
3.DOM由节点组成
4.Node
元素节点
属性节点
文本节点
下面写个案例
public class XmlParseDemo {
public static void main(String[] args) throws DocumentException {
InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml");
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(in);
// System.out.println(doc.asXML());
// 1.获取到所有的学生
// List<Element> stuEles = doc.selectNodes("/students/student");
// 2.遍历
// for (Element stuEle : stuEles) {
// if("s003".equals(stuEle.attributeValue("sid"))) {
// Element nameEle = (Element)stuEle.selectSingleNode("name");
// System.out.println(nameEle.asXML());
// System.out.println(nameEle.getText());
// }
// }
// 3.做判断、如果sid=s003那么拿到小王
Element stuEleS003 = (Element)doc.selectSingleNode("students/student[@sid='s003']");
System.out.println(stuEleS003.selectSingleNode("name").getText());
}
}
下面看另一种案例
InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml");
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(in);
Element stuEleS003 = (Element)doc.selectSingleNode("students/student[@sid='s003']");
System.out.println(stuEleS003.selectSingleNode("name").getText());
这种比较简单
制作不易,不喜勿喷,点个赞再走呗