JAVA网页编程之用JDom轻松整合Java和XML
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.dom|xml 概述:Jdom是用Java言语读、写、操纵XML的新API函数。JasonHunter和BrettMcLaughlin公然公布了它的测试版本。在直觉、复杂和高效的条件下,这些API函数被最年夜限制的优化。在接上去的篇幅里,Hunter和McLaughlin先容怎样用Jdom往读写一个已存在的XML文档。
Jdom是一个开源的api,它以间接易懂的体例向java程序员形貌XML文档和文档的内容。就象名字展现的那样,Jdom是为java优化的。为利用XML文档供应一个低损耗的办法。Jdom的利用者能够不用把握太多的XML的常识就能够完成想要的操纵。
Jdom能够和已有的XML手艺如SimpleAPIforXML(SAX)和DocumentObjectModel(DOM)互相合作.但是,它并非复杂的从这些api中提掏出一些。Jdom从这些已存在的手艺中吸取了好的方面,本人创建了一套新的类和接口,用一个Jdom用户的话来讲就是:“这些接口是我从一入手下手浏览org.w3c.dom就等候的”;Jdom能够读进SAX或是DOM的内容,也能够输入SAX或DOM能够吸收的格局。这个才能可使Jdom很好的和已有的用SAX或DOM创建的体系之间整合。
Jdom的准绳
第一条而且是最主要的一条就是Jdom的api函数被计划成对java程序员来讲是复杂易懂的。其他的XML剖析函数被计划成言语通用的(撑持不异的api函数在java,c++,乃至是javascript中)。Jdom使用了java的优异的特性,如:办法重载、接纳机制,和背景处置等。
为了可以复杂易用,这些函数不能不以程序员喜好的情势来刻画XML文档。比方:程序员想的到的一个元素的文本内容是甚么模样的呢?
<element>Thisismytextcontent</element>
在一些api中,元素的文本内容仅被看成是一个元素的孩子节点。从手艺角度来讲,这个计划必要上面的代码才干会见到元素的内容:
Stringcontent=element.getFirstChild().getValue();
Jdom用一种更复杂易用的办法来获得元素的内容:
Stringtext=element.getText();
Jdom尽量的削减程序员的事情量。根据拇指划定规矩,Jdom应当用20%或是更少的勉力来完成80%或是更多的java/xml方面的成绩。这并非说Jdom只是撑持80%的XML标准(实践上我们但愿Jdom100%的撑持XML标准)。这个拇指划定规矩是说有些工具能够加出来,可是没有需要。这些api函数应当坚持简便。
Jdom的第二条准绳是说Jdom应当是疾速的和轻量级的。调进和实行文档应当疾速,内存的损耗应当只管小。Jdom的计划分明是遵守这个准绳。比方,就算在入手下手的时分,不太和谐的操纵已比DOM快,可是比SAX显的粗拙。只管如许,Jdom仍是有很多SAX没有的长处。
你必要Jdom吗?
那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。
DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。
SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。
Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。
猎取XML文档
Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。
Documentdoc=newDocument(newElement("rootElement"));
本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。
SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);
你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。
Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。
机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。
SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。
publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);
默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。
你必要Jdom吗?
那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。
DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。
SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。
Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。
猎取XML文档
Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。
Documentdoc=newDocument(newElement("rootElement"));
本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。
SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);
你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。
Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。
机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。
SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。
publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);
默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。
你必要Jdom吗?
那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。
DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。
SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。
Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。
猎取XML文档
Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。
Documentdoc=newDocument(newElement("rootElement"));
本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。
SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);
你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。
Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。
机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。
SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。
publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);
默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 是一种使用者不需花费很多时间学习的语言 是一种语言,用以产生「小应用程序(Applet(s)) 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种突破用户端机器环境和CPU 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 是一种语言,用以产生「小应用程序(Applet(s)) 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页:
[1]