仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 585|回复: 14
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Java中XML设置文件的读取处置

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先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的复杂性。
柔情似水 该用户已被删除
沙发
发表于 2015-1-20 19:53:05 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
海妖 该用户已被删除
板凳
发表于 2015-1-24 12:16:36 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
透明 该用户已被删除
地板
发表于 2015-2-1 10:35:04 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
莫相离 该用户已被删除
5#
发表于 2015-2-6 10:36:56 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-8 07:45:41 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
若相依 该用户已被删除
7#
发表于 2015-2-25 00:56:16 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小魔女 该用户已被删除
8#
发表于 2015-2-27 04:51:34 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
9#
发表于 2015-3-1 20:57:40 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
老尸 该用户已被删除
10#
发表于 2015-3-7 03:55:37 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
admin 该用户已被删除
11#
发表于 2015-3-7 05:28:24 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
简单生活 该用户已被删除
12#
发表于 2015-3-9 20:21:12 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
精灵巫婆 该用户已被删除
13#
发表于 2015-3-11 02:06:20 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
不帅 该用户已被删除
14#
发表于 2015-3-17 18:38:01 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
因胸联盟 该用户已被删除
15#
发表于 2015-3-24 18:52:58 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表