XML 和properties

properties:

1、存放于src根目录下

//获取到同包下的资源文件,将其转换成流对象
//InputStream is= PropertiesDemo.class.getResourceAsStream("/db.properties");
//需要专门的工具类来讲流中的数据
Properties p=new Properties();
p.load(is);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));

2、与读取配置文件的类在同一包

//InputStream is= PropertiesDemo.class.getResourceAsStream("db.properties");

Properties p=new Properties();
p.load(is);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));

3、存放在WEB-INF(或其子目录下)

//新建一个servlet类

ServletContext context=request.getServletContext();
InputStream is=context.getResourceAsStream("/WEB-INF/db.properties");
Properties p=new Properties();
p.load(is);
System.out.println(p.getProperty("uname"));
System.out.println(p.getProperty("upass"));

  

4. dom4j+xpath解析xml文件

InputStream is = XMLDemo.class.getResourceAsStream("students.xml");
// SAXReader saxReader = new SAXReader();
// Document doc = saxReader.read(is);
// System.out.println(doc.asXML());
// // xpath
// List<Element> stueles=doc.selectNodes("/students/student");
// for (Element element : stueles) {
//// if ("s002".equals(element.attributeValue("sid"))) {
//// System.out.println(element.asXML());
// Element name=(Element)element.selectSingleNode("name");
// System.out.println(name.asXML());
// System.out.println(name.getText());
// // }
// }
// Element stuele =(Element) doc.selectSingleNode("/students/student[@sid='s001']");
// System.out.println(stuele.asXML());

  

package com.lingerqi.demo;

import java.io.InputStream;
import java.util.List; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; /**
* 解析指定路径下的资源文件(dom4j)
*
* @author xyls
*
*/
public class XMLDemo { public static void main(String[] args) throws Exception { InputStream is = XMlDemo.class.getResourceAsStream("config.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(is);
List<Element> stueles = doc.selectNodes("/config/action");
for (Element element : stueles) {
Element forward = (Element) element.selectSingleNode("forward");
String type = element.attributeValue("type");
String path = element.attributeValue("path");
// if (path.equals("/loginAction")) {
// 2、获取第二个action中的type的值
// System.out.println(type);
// }
// 1、获取所有action中的type的值
// System.out.println(type);
// String fpath=forward.attributeValue("path"); // System.out.println(type);
if (element.attributeValue("path").equals("/loginAction")) {
List<Element> ford = (List<Element>) element.selectNodes("forward");
for (Element element2 : ford) {
String fpath = forward.attributeValue("path");
// 3、获取第二个action的所有forward的path
System.out.println(fpath);
}
}
if (path.equals("/loginAction")) {
// 4、获取第二个action的第二个forward的path
// System.out.println(fpath);
}
}
// if (path.equals("/loginAction")) {
// 4、获取第二个action的第二个forward的path
// System.out.println(fpath);
// }
}
}

  

Java中配置文件的三种配置位置及读取方式的更多相关文章

  1. java中 this 的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  2. CentOS中JDK的三种配置方法

    第一种方法(相对稳妥): 使用yum直接安装,在root用户下执行 "yum install java-openjdk-*" 第二种方法(最为稳妥): 前往'https://www ...

  3. Java中对象的三种状态

    Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态. 状态二:可复活态:从根节点开 ...

  4. java中线程的三种实现方式

    一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...

  5. Java中Map的三种遍历方法

    Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历.   告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...

  6. Java中Singleton的三种实现方式解析

    一.什么是Singleton? <设计模式>的作者.Eclipse和 Junit 的开发者 Erich Gamma 在它的理论体系中将 Singleton 定义为仅仅被实例化一次的类.在当 ...

  7. SpringMVC中HandlerMapping的三种配置方式

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-/ ...

  8. JAVA中this的三种用法的详解

    this关键字必须放在非静态方法里面 this关键字代表自身,在程序中主要的使用用途有以下几个方面: ? 使用this关键字引用成员变量 ? 使用this关键字在自身构造方法内部引用其它构造方法 ? ...

  9. 正则表达式在Java中应用的三种典型场合:验证,查找和替换

    正则式在编程中常用,总结在此以备考: package regularexp; import java.util.regex.Matcher; import java.util.regex.Patter ...

随机推荐

  1. Java的包

    Java 包 Java面向对象的核心的概念:类.接口.抽象类.对象:[主体] 包的定义: 指的是一个程序的目录,在最早的时候,如果要开发一个程序,只需要定义一个Java文件,而后在这个文件中编写所需要 ...

  2. Android SDK自带调试优化工具

    Android sdk中自带了一些分析内存,界面调优的非常实用的工具,这对于分析和调试我们的应用十分有帮助,由于我使用的是linux版本的sdk,所以就以linux版本的工具做一个介绍,这些工具的具体 ...

  3. Tomcat启动分析(二)-自己编译Tomcat

    为了方便分析Tomcat源码,利用大家习惯的方式来进行Debug调试,那么如何将Tomcat源码导入到Eclipse呢,这就是本文的重点 1 准备 1.1 获取Tomcat源码 获取tomcat源码有 ...

  4. 4.JavaCC处理中文字符

      要使JavaCC能够处理中文首先需要将语法描述文件的options块的UNICODE_INPUT选项设置为true: options { STATIS = false; DEBUG_PARSER ...

  5. Python—路由追踪(并生成追踪图片)

    需要先安装两个包 [root@localhost ~]# yum install graphviz // 为了使用dot命令 [root@localhost ~]# yum install Image ...

  6. unbuntu更换软件源

    编辑/etc/apt/sources.list文件,将文件中原有的国外源全部注释掉,文件头添加以下内容 ##中科大源 deb https://mirrors.ustc.edu.cn/ubuntu/ b ...

  7. 【cf600】E. Lomsat gelral(dsu on tree)

    传送门 题意: 求子树众数. 思路: \(dsu\ on\ tree\)模板题,用一个桶记录即可. 感觉\(dsu\ on\ tree\)这个算法的涉及真是巧妙呀,保留重链的信息,不断暴力轻边,并且不 ...

  8. 树型DP(2)

    声明 https://blog.csdn.net/no1_terminator/article/details/77824790 参考课件和讲授来自Accelerator 找树的直径 树的直径定义为一 ...

  9. Leetcode53_Spiral_Matrix

    Spiral_Matrix https://leetcode-cn.com/problems/spiral-matrix/ //当行数只有一行: 1. n = 1; m -> 0; //当列数只 ...

  10. ubuntu下的mv命令

    移动文件 代码: mv file1 dir1 #因为dir1目录是存在的,可以不加 / 直接放入 mv file1 dir1/ #把temp文件移动到myfiles目录中 移动目录 代码: mv di ...