Javaweb10XML在JSP中的使用.ppt_第1页
Javaweb10XML在JSP中的使用.ppt_第2页
Javaweb10XML在JSP中的使用.ppt_第3页
Javaweb10XML在JSP中的使用.ppt_第4页
Javaweb10XML在JSP中的使用.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章 XML在JSP中的使 用 *1 教学内容: wXML文档的组成 wSAX wDOM wJDOM Date2 1、XML文档的组成 下面是一个格式正确的XML文档示例: The Adventures of Huckleberry Finn Mark Twain mass market paperback 298 $5.49 Leaves of Grass Walt Whitman hardcover 462 $7.75 Date3 The Legend of Sleepy Hollow Washington Irving mass market paperback 98 $2.95 The Marble Faun Nathaniel Hawthorne trade paperback 473 $10.95 Moby-Dick Herman Melville hardcover 724 $9.95 Date4 The Portrait of a Lady Henry James mass market paperback 256 $4.95 The Scarlet Letter Nathaniel Hawthorne trade paperback 253 $4.25 The Turn of the Screw Henry James trade paperback 384 $3.35 Date5 w w 文档元素文档元素 n n 文档必须只有文档必须只有1 1个顶层元素,称为文档元素或根元个顶层元素,称为文档元素或根元 素,类似于素,类似于HTMLHTML页中的页中的元素,其他所有元元素,其他所有元 素都嵌套在其中素都嵌套在其中 w创建格式正确的XML文档的一些基本规则: 文档必须有一个顶层元素(文档元素或根元素) 元素必须被正确地嵌套 每一个元素必须同时拥有起始标签和结束标签 起始标签中的元素类型名必须与相应结束标签中的 名称完全匹配 元素类型名是区分大小写的 Date6 w元素内容是起始标签和结束标签之间的 文本 w在元素内容中可以包括嵌套元素和字符 数据两种类型 Date7 2、XML在JSP开发中的应 用 w如果使用数据库就必须安装一个分离的服务器 进程,用户还必须学习SQL等 w如果使用XML文件存储数据,可以减少服务器 的负荷,用一个文本编辑器即可完成编写,并 且容易备份和共享。 w但如果更新多,XML文件会因为同时写入而受 到破坏,而数据库支持事务处理。 w大多数站点涉及到的基本都是读而不是写,没 有经常的更新可以考虑使用XMl文件。 Date8 w在JSp中处理XMl文档,首先就是接受 XML文档并进行解析,解析后就可以使用 XML文档的数据了。 w在JSP中操纵XML的API有很多种,如 SAX、DOM、JDOM Date9 3、通过SAX操作XML w准备解析器 w检查SAX的类与接口 w建立XML文档 w编写解析类 w内容事件处理器 w错误事件处理器 wSAX中较少用到但比较重要的知识 Date10 准备解析器 wSAX(Simple API for XML) 模型中, XML文档是作为一系列事件提供供给应用程 序。 w下载解析器,有很多种实现 wXerces,开源,成熟 wXerces-J-bin.2.7.0解压后将三个文件 Resolver.jar、xercesImpl.jar、xml -apis.jar放到WEB-INFlib下 Date11 检查SAX的类与接口 wSAX所需要的类通常都包含在下载的解析 器中(SAX2.0)。 w确保在将这些解析器加入CLASSPATH后 可以找得到org.xml.sax.XMLReader 类。 Date12 SAX阅读器 w获取遵循org.xml.sax.XMLReader接口的 类的实例,创建SAX 2解析器: XMLReader xr=XMLReaderFactory.createXMLReader(); ParseXML px = new ParseXML(); xr.setContentHandler( px ); Date13 解析文件 wInputSource input=new InputSource( this.getClass().getResourceAsStream( “/myenv.xml“ ) wxr.parse(input); Date14 内容处理类 w为了使应用有效地处理XML数据,须向解析 器注册处理类. w处理类由一组回调方法组成,能在文解析过 程中重要事件发生处调用。 wSAX2.0定义了处理接口 org.xml.sax.ContentHandler wContentHandler接口定义了解析生命周 期中的几个重要的方法。 Date15 ContentHandle接口中的回 调 Date16 w元素回调方法 主要有三个事件:元素开始,结束和characters 方法。 1)元素开始事件:在开始解析一个元素的时候调 用, Public void startElement(String namespaceURI,String localName,String qname,Attributes atts) 该方法提供了元素的三个名字:名域,本机的名字 ,全名(即前缀的本机名)。 Attributes是提供的属性集合。通过atts可以得 到所有的属性名和相应的值。 Date17 2)元素结束事件:在完成解析一个元素的时候调用 Public void endElement(String namespaceURI,String localName,String qname) 当遇到结束标签时调用该方法。 wSAX提供了一个帮助类 DefaultHandler,他实 现了ContentHandler接口,在实现时只需继承该 类即可。 Date18 3)字符事件:处理字符 Public void characters(char ch,int start,int length) throws SAXException; 处理元素时会将元素中的文本数据通过 characters()回调方法传递给一个封装程序. Date19 二、JDOM 具体类和类工厂 wJDOM是具体类的API, Element,Attribute,ProcessingInstruct ion,Comment都可以使用new关键实例化,不再 需要类工厂。 Element root=new Element(“root”); Document doc=new Document(root); 当然也可以使Element 的派生类来创建: Element root=new MyElement(“root”); Date20 输入与输出 wJDOM不是解析器,是XML文档的JAVA表示形 式。 w提供专门的 org.jdom.input。最常见的是 DOMBuilder,SAXBuilder ,可以从一组事 件或一棵DOM树中创建核心的JDOM 的 Document对象. w事实上,对于使用JDOM的程序员来讲,无论 采用哪一个都无须对SAX或DOM的工作流程了 解。 Date21 输入: 代码一:从SAX输入 SAXBuilder builder=new SAXBuilder(); Document doc=builder.build(new FileInputStream(“contents.xml“); 代码二 :从DOM输入 DOMBuilder builder=new DOMBuilder(); Document doc=builder.build(mydomdoc); 从org.w3c.dom.Document转为 org.jdom.Document. Date22 输出: 代码一:输出到DOM DOMOutputter out=new DOMOutputter(); org.w3c.dom.Document doc= out.output(Jdomobject) 代码二:触发SAX事件,方式也完全一样 SAXOutputter out=new SAXOutputter(); out.setContentHandler(contenthandler); out.setErrorHandler(errorhandler); out.output(myjdomobject); 代码三: org.jdom.output.XMLOutputter输出到一个XML或一个输出 流。 XMLOutputterout=new XMLOutputter(); out.output(jdomobject,new FileOutputStream(“”); Date23 创建文档并输出 w只需要使用 Document,Element,Attribute类的 构造函数就可以了。注意创建前者时须 传根元素。 w如果需要添加一个元素的内容,包括子 元素,注释等,调用addContent()方 法 w添加属性可以使用元素的 setAttribute()方法. Date24 将属性文件转为XML文件 w读出属性文件到Properties对象中 w输出到XML文件中 Date25 JDOM与工厂类 w自定义元素ORAElement ,即从 Element派生,提供默认的前缀声明。 w自定义工厂类,即从 DefaultJDOMFactory派生,产生自定 义的ORAElement w使用生成器的setFactory()方法设置 自定义工厂类,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论