仓酷云

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

[学习教程] JAVA网页编程之用JDom轻松整合Java和XML

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

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

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

x
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,代码照样能够编译运行的。
再见西城 该用户已被删除
沙发
发表于 2015-1-21 11:00:54 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
不帅 该用户已被删除
板凳
发表于 2015-1-30 16:21:33 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
小妖女 该用户已被删除
地板
发表于 2015-2-4 13:41:16 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
若相依 该用户已被删除
5#
发表于 2015-2-10 00:11:03 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
6#
发表于 2015-2-20 23:42:12 | 只看该作者
是一种使用者不需花费很多时间学习的语言
admin 该用户已被删除
7#
发表于 2015-3-19 13:06:17 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
莫相离 该用户已被删除
8#
 楼主| 发表于 2015-3-23 10:16:32 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
兰色精灵 该用户已被删除
9#
发表于 2015-3-27 09:08:19 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
乐观 该用户已被删除
10#
发表于 2015-4-1 18:30:48 | 只看该作者
是一种突破用户端机器环境和CPU
分手快乐 该用户已被删除
11#
发表于 2015-4-5 20:42:03 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
灵魂腐蚀 该用户已被删除
12#
发表于 2015-4-9 08:20:15 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
飘飘悠悠 该用户已被删除
13#
发表于 2015-4-21 23:11:42 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
老尸 该用户已被删除
14#
发表于 2015-4-25 11:41:42 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
冷月葬花魂 该用户已被删除
15#
发表于 2015-4-26 03:15:30 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
若天明 该用户已被删除
16#
发表于 2015-5-9 23:47:15 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
再现理想 该用户已被删除
17#
发表于 2015-6-8 20:27:05 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
深爱那片海 该用户已被删除
18#
发表于 2015-6-13 22:09:52 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小女巫 该用户已被删除
19#
发表于 2015-6-22 00:31:02 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-14 00:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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