JAVA编程:XML设置文件的读取(sax)
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,xml在比来的一个MIS项目中,为了不硬编码,我必要把一些设置信息写在一个设置文件中.思索到是J2EE项目,J2EE的设置文件仿佛都是xml文件了,再用传统ini文件是否是有点后进了?
ok,就用xml做设置文件吧.
我的设置文件reportenv.xml以下,对照复杂:
<?xmlversion="1.0"encoding="utf-8"?>
<reportenv>
<datasource>
<username>sqlname</username>
<password>password</password>
</datasource>
</reportenv>
如今的成绩是我用甚么来读取设置信息?
如今盛行的是dom4j和sax,我之前一向用dom4j.但是weblogicworkshop自带的是sax,我又不想再引进包了,因而就是sax吧.
第一步:ConfigParser.java
/*
*CreateDate:2005-6-13
*CreateBy:板桥里人
*purpose:xml设置文件属性读取器
*/
packagecom.infoearth.report;
importorg.xml.sax.Attributes;
importorg.xml.sax.helpers.DefaultHandler;
importorg.xml.sax.SAXException;
importjava.util.Properties;
publicclassConfigParserextendsDefaultHandler{
////界说一个Properties用来寄存属性值
privatePropertiesprops;
privateStringcurrentSet;
privateStringcurrentName;
privateStringBuffercurrentValue=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());
}
}
第二步:ParseXML.java
/*
*CreateDate:2005-6-13
*CreateBy:板桥里人李春雷修正
*purpose:xml设置文件属性读取器(通用),
*/
packagecom.infoearth.report;
importjava.util.Properties;
importjavax.xml.parsers.SAXParser;
importjavax.xml.parsers.SAXParserFactory;
importjava.net.URL;
publicclassParseXML{
//界说一个Properties用来寄存属性值
privatePropertiesprops;
publicPropertiesgetProps(){
returnthis.props;
}
publicvoidparse(Stringfilename)throwsException{
//将我们的剖析器对象化
ConfigParserhandler=newConfigParser();
//猎取SAX工场对象
SAXParserFactoryfactory=SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
//猎取SAX剖析
SAXParserparser=factory.newSAXParser();
try{
//将剖析器息争析对象xml接洽起来,入手下手剖析
parser.parse(filename,handler);
//猎取剖析乐成后的属性
props=handler.getProps();
}finally{
factory=null;
parser=null;
handler=null;
}
}
}
第三步:ReadConfigXml.java
/*
*CreateDate:2005-6-13
*CreateBy:李春雷
*purpose:xml设置文件属性读取器
*/
packagecom.infoearth.report;
importjava.util.Properties;
publicclassReadConfigXml
{
privatePropertiesprops;
publicReadConfigXml(Stringurl){
ParseXMLmyRead=newParseXML();
try{
myRead.parse(url);
props=newProperties();
props=myRead.getProps();
}catch(Exceptione){
e.printStackTrace();
}
}
publicStringgetUserName(){
returnprops.getProperty("username");
}
publicStringgetPassWord(){
returnprops.getProperty("password");
}
}
ok,弄定了,读取的时分以下:
ReadConfigXmlxmlread=newReadConfigXml("reportenv.xml");
Stringusername=xmlread.getUserName();
Stringpassword=xmlread.getPassWord();
前两个类完成了xml文档属性设置的恣意读取.只需是xml的属性值,都读到了property中,你只需在property中提取就能够了.
第三个类是我针对我的xml文件写的,仿佛有点过剩.呵呵.实在有难言之隐.由于不想过量的修改之前的程序架构,就画蛇添
足了一下.
别的,感激j道,感激板桥里人.
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 是一种突破用户端机器环境和CPU 是一种突破用户端机器环境和CPU 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种使网页(Web Page)产生生动活泼画面的语言 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种为 Internet发展的计算机语言 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 是一种突破用户端机器环境和CPU 是一种使用者不需花费很多时间学习的语言 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
页:
[1]
2