Java中配置文件的三种配置位置及读取方式 1.同包下的资源文件读取 2.将所有的资源文件放在根目录下 *编译后所有的资源文件都会自动进web-inf下 3 WEB-INF(或其子目录下)
1.1:第一种方式:在同包的情况下获取
1.2:如果不是同包的情况下,而是放在根目录下,我们就只要 在 db.properties 加个斜杠 " / "
将路径 properitesDemo.class.getResourceAsStream("db.properties"); 改为 properitesDemo.class.getResourceAsStream("/db.properties");1.3:如果是在WEB-INF里,我们就要写个Servlet并且配置
public class properitesServlet extends HttpServlet { private static final long serialVersionUID = 7973003110170094853L; @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();//这里的代码是本类的ServletContext去获得的 InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");//获取相对应的位置文件 Properties p = new Properties();//因为还是properites文件 p.load(in); System.out.println(p.getProperty("uname")); } } 配置: <servlet> <servlet-name>proServlet</servlet-name> <servlet-class>com.liwangwang.pares.properitesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>proServlet</servlet-name> <url-pattern>/proServlet</url-pattern> </servlet-mapping>properties文件的解析方式有java.util.properties这个类来完成 xml文件:应该由一个工具类来完成 以下是三种不同解析的工具类 jdk/jdom sax解析 由上往下解析 dom4j解析 由外到内解析 dom4j解析我们需要下载它的包来完成 注意:导的所有方法都在dom4j下的
案例:建立一个student.xml,获得小王
<?xml version="1.0" encoding="UTF-8"?> <students> <student sid="s001"> <name>小明</name> </student <student sid="s002"> <name>小芳</name> </student> <student sid='s003'> <name>小王</name> </student> </students>方法:
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()); // * 获取到所有的学生 List<Element> stuEles = doc.selectNodes("/students/student"); // * 遍历 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());//获得文本内容 } }如果我们是知道小王的id是’s003’的情况下
Element stuEles003 =(Element) doc.selectSingleNode("/students/student[@sid='s003']");//直接找到student的sid属性中为s003的student System.out.println(stuEles003.selectSingleNode("name").getText());//打印student中的name元素里面的文本内容 }xpath等同数据库的select语句
document.selectNodes(xpath);//查一组 document.selectSingleNode(xpath);//查单个