各个位置下的资源文件(properties,xml结尾的文件)的读取方式 1.同包下的资源文件读取
public class properitesDemo { public static void main(String[] args) throws IOException { InputStream in = properitesDemo.class.getResourceAsStream("db.properties");//获取到该包下的properites文件 Properties p = new Properties();//实列化properties p.load(in); //读取文件里的资源 String name = p.getProperty("uname"); //根据名字获取字符 System.out.println(name); } } 2.将所有的资源文件放在根目录下 编译后所有的资源文件都会自动进web-inf下 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下(但是要写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")); } }其次是web配置
<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> ---------------------1.properties文件的解析方式有java.util.properties这个类来完成 2. xml文件:应该有一个工具类来完成 jdk/jdom sax解析 由上往下解析 dom4j解析 由外到内解析 3. dom节点
首先我们写一个xml
接下来写一个java文件获得小王
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());//获得文本内容 // } // }如果需要的到sid为3 的学号 我们可以进行判断
Element stuEles003 =(Element) doc.selectSingleNode("/students/student[@sid='s003']"); System.out.println(stuEles003.selectSingleNode("name").getText());