java web项目 web.xml中如何读取properties配置文件中的值

java web项目 web.xml中如何读取properties配置文件中的值,第1张

<util:properties id="config" location="classpath:testproperties" />

其中id为读取文件以后的bean id,可以通过这个id获取文件中对应属性的值,如configtest代表获取文件中test属性的值

相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。

举例:

XMLSclassgetClass()getResourceAsStream("/test/testxml");

解释:XMLSclassgetClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。

备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。

java读取xml节点元素,主要使用java提供的解析xml的工具类SAXParserFactory,如下代码:

package xmlxmlreader;

import javaioFile;

import javanetURL;

import javautilProperties;

import javaxxmlparsersSAXParser;

import javaxxmlparsersSAXParserFactory;

public class CFGParser {//解析xml文件的工具类

    private Properties props;

    public Properties getProps() {

        return props;

    }

    public void setProps(Properties props) {

        thisprops = props;

    }

    public void parse(String filename) throws Exception

    {

        CFGHandler handler = new CFGHandler();

        SAXParserFactory factory = SAXParserFactorynewInstance();

        factorysetNamespaceAware(false);

        factorysetValidating(false);

        SAXParser parser = factorynewSAXParser();

        URL confURL = supergetClass()getClassLoader()getResource(filename);

        if (confURL == null) {

            Systemoutprintln("Can't find configration file");

            return;

        }

        try

        {

            parserparse(confURLtoString(), handler);

            thisprops = handlergetProps();

        }

        finally {

            factory = null;

            parser = null;

            handler = null;

        }

    }

    public void parseFile(String filename)

    throws Exception

    {

        CFGHandler handler = new CFGHandler();

        SAXParserFactory factory = SAXParserFactorynewInstance();

        factorysetNamespaceAware(false);

        factorysetValidating(false);

        SAXParser parser = factorynewSAXParser();

        File f = new File(filename);

        if ((f == null) || (!fexists()))

            return;

        try

        {

            parserparse(f, handler);

            thisprops = handlergetProps();

        }

        finally {

            factory = null;

            parser = null;

            handler = null;

        }

    }

}

package xmlxmlreader;

import javautilProperties;

import orgxmlsaxAttributes;

import orgxmlsaxSAXException;

import orgxmlsaxhelpersDefaultHandler;

public class CFGHandler extends DefaultHandler

{

  private Properties props;

  private String currentSet;

  private String currentName;

  private StringBuffer currentValue = new StringBuffer();

  public CFGHandler()

  {

    thisprops = new Properties();

  }

  public Properties getProps() {

    return thisprops;

  }

  public void startElement(String uri, String localName, String qName, Attributes attributes)

    throws SAXException

  {

    thiscurrentValuedelete(0, thiscurrentValuelength());

    thiscurrentName = qName;

  }

  public void characters(char[] ch, int start, int length) throws SAXException

  {

    thiscurrentValueappend(ch, start, length);

  }

  public void endElement(String uri, String localName, String qName)

    throws SAXException

  {

    thispropsput(qNametoLowerCase(), thiscurrentValuetoString()trim());

  }

}

xml文件

<xml version="10" encoding="UTF-8">

<xml-body>

        <refresh_userlist desc="用户列表刷新间隔时间(秒)">6</refresh_userlist>

        <refresh_message desc="短消息刷新间隔时间(秒)">10</refresh_message>

        <morningbegin desc="上午上班时间">23:00</morningbegin>

        <morningend desc="上午下班时间">12:00</morningend>

        <afternoonbegin desc="下午上班时间">18:00</afternoonbegin>

</xml-body>

jsp获取各个节点的值:

<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>

<html>

    <jsp:useBean id="cfgp" scope="page" class="xmlxmlreaderCFGParser"></jsp:useBean>

    <body>

        <%

   cfgpparse("kaoqinxml");

   Properties pro = cfgpgetProps();

   String stTime = progetProperty("morningbegin");

   String edTime = progetProperty("morningend");

    String afternoonbegin = progetProperty("afternoonbegin");

   

   outprintln(stTime+"\n"+edTime+"\n"+afternoonbegin);

   Systemoutprintln(stTime+"\n"+edTime+"\n"+afternoonbegin);

    %>

    </body>

</html>

以上就是关于java web项目 web.xml中如何读取properties配置文件中的值全部的内容,包括:java web项目 web.xml中如何读取properties配置文件中的值、java读取XML文件路径问题、java如何读取xml节点元素值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9635525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存