有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从servlet读取xml文件

我无法从servlet中正确加载xml文件: 这就是代码:

       try{

           DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
           DocumentBuilder db = dbf.newDocumentBuilder();
           Document doc = db.parse("db.xml");
       } catch (Exception ex) {
       ex.printStackTrace();
           out.print("File Not Found!");
   }

db。xml与类和java文件一起位于classes文件夹中


共 (2) 个答案

  1. # 1 楼答案

    如果war文件的根文件夹中有XML文件,则可以使用上下文应用程序文件夹的real path来读取它

    String contextPath = request.getSession().getServletContext().getRealPath("/");
    

    另一方面,您可以使用context class loader in a multi-module environment

    ClassLoader classloader = Thread.currentThread().getContextClassLoader()
    Document doc = db.parse(classloader.getResourceAsStream(contextPath+ "/db.xml"));
    

    在某些环境中,不需要额外的斜杠

  2. # 2 楼答案

    您需要使用getResourceAsStream()

        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(getClass().getResourceAsStream("db.xml"));
        } catch (Exception ex) {
            ex.printStackTrace();
            out.print("File Not Found!");
        }