了解下JAVA的Java中XML设置文件的读取处置
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。Java和XML是黄金组合,网上已有良多文章先容,XML作为电子商务中数据互换,已有其不成替换的感化,可是在平常体系开辟中,我们纷歧建都用到数据互换,是否是没法利用XML了?
固然不是,如今已有一个新趋向,Java程序的设置文件都入手下手利用XML格局,之前是利用相似Windows的INI格局(Java中也有Propertiesy如许的类专门处置如许的属性设置文件)。利用XML作为Java的设置文件有良多优点,从Tomcat的安拆卸置文件和J2EE的设置文件中,我们已看到XML的广泛使用,让我们也跟从盛行趋向用XML武装起来。
如今关头是怎样读取XML设置文件?有好几种XML剖析器:次要有DOM和SAX,在Apache的XML项目组中,今朝有XercesXalanCocoon几个开辟XML相干手艺的project.Tomcat自己利用的是Sun的JAXP,而其XSLTaglibproject中利用Xerces剖析器。
好了,下面都是对照烦人的实际成绩,仍是从速切进XML的设置文件的读取吧。
在我们的程序中,一般要有一些依据主机情况断定的变量。好比数据库会见用户名和暗码,分歧的主机大概设置纷歧样。只需变动XML设置文件,就能够一般运转。
myenv
datasource
dbhostlocalhost/dbhost
dbnamesqlname/dbname
dbuserusername/dbuser
dbpasswordpassword/dbpassword
/datasource
/myenv
下面这个myenv.xml设置文件通常为放在tomcat的WEB-INF/classes目次下。
我们体例一个Java程序间接读取,将dbhostdbuserdbpassword提掏出来供其他程序会见数据库用。
今朝利用SAX对照的多,与DOM次要区分是SAX是一行一行读取XML文件举行剖析,合适对照年夜文件,DOM是一次性读进内存,明显不克不及凑合年夜文件。这里我们利用SAX剖析,因为SAX剖析器不休在开展,网上有很多文章是针对老版本的。假如你利用JDK1.4,能够参考利用SAX处置XML文档一文。这里的程序是依据其改善而且经由理论调试得来的。
对下面myenv.xml读取的Java程序:
importorg.xml.sax.Attributes;
importorg.xml.sax.helpers.DefaultHandler;
importorg.xml.sax.SAXException;
importjava.util.Properties;
//利用DefaultHandler的优点
是不用摆设出一切办法,
publicclassConfigParser
extendsDefaultHandler
{
////界说一个Properties用来寄存
dbhostdbuserdbpassword的值
privatePropertiesprops;
privateStringcurrentSet;
privateStringcurrentName;
privateStringBuffer
currentValue=newStringBuffer();
//构建器初始化props
publicConfigParser()
{
this.props=newProperties();
}
publicPropertiesgetProps()
{
returnthis.props;
}
//界说入手下手剖析元素的办法。
这里是将xxx中的称号xxx提掏出来。
publicvoidstartElement
(Stringuri,StringlocalName,
StringqName,Attributesattributes)
throwsSAXException
{
currentValue.delete(0,currentValue.length());
this.currentName=qName;
}
//这里是将xxx/xxx之间
的值到场到currentValue
publicvoidcharacters(char[]ch,
intstart,intlength)throwsSAXException
{
currentValue.append
(ch,start,length);
}
//在碰到/xxx停止后,
将之前的称号和值逐一对应保留在props中
publicvoidendElement(Stringuri,
StringlocalName,StringqName)
throwsSAXException
{
props.put(qName.toLowerCase(),
currentValue.toString().trim());
}
}
<p>
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Java是一种计算机编程语言,拥有跨平台、面向对java
页:
[1]