首页 > 教程 > 关键词  > 网页最新资讯  > 正文

用XML+JSP实现网页内容动态显示的方案

2007-07-05 13:48 · 稿源:赛迪网技术社区

一、xml技术简介

XML(eXtensible Markup Language??可扩展标记语言)是一种 扩展的源标记语言,是可以定义其他语言的语言。

它是SGML的一个简化子集,这个子集是专为Web环境设计的,这就是说,它必须处理面向数据处理的(而不是面向发布的)、生存期短的(实际上是动态产生的)信息。

XML与HTML对比:

XML语法严格,数据与显示分离,便于其他程序交互和检索数据。

HTML语法容错性大,数据和显示都在一起,检索数据困难较大。

XML又明确的DOM对象,可以对XML文件进行读写添删数据的操作。

HTML没有这种明确的对象来完成该操作。

XML克服了HTML的种种不足,将网络上传输的文档规范化,并赋予标签一定的含义。

XML作为一种网络系统中通用的数据交换格式迅速得到了支持,使用XML的实际好处有:

结构化??建立有任何复杂层次的数扭模型。

可扩展性??根椐需要定义新的标识。

验证??检查数据在结构上的正确性。

独立与媒介??以多种方式发布内容。
 
独立于供应商和平台??使用标准的商业软件甚至文本工具处理任何符合(XML标准)的文档。

XML文档可以通过可扩展样式语言XSL(Extensible Style Language XSL)转换和格式化XML文档。从而实现数据和页面样式的分离。

二、用JSP技术实现XML

  JSP提供了一系列的特点,可以非常理想地和XML协同工作,JSP网页可以包含任何类型的文本数据,所以JSP可以直接生成含有XML的文档。而且,JSP可以利用强大的JAVA平台来解析、转换XML信息和文档。由于JSP也是JAVA软件环境的一部分,JSP也可以使用API对象来处理XML数据。JSP技术的强大功能和很好的灵活性加上XML技术规范化的数据,可以完美的实现网页的动态显示功能。

三、开发环境

1、编辑工具

现在,开发XML文档的工具越来越来多,从链接大型公司数据库的企业级XML开发环境,到简化标记开发过程的简单的小型文本编辑器。最新的工具可以从https://www.xml.com了解到。目前,常用的几种开发工具介绍如下:

UltraEdit 由IDM Computer Solution 公司开发,可到https://www.ibmcomp.com或https://www.ultraedit.com免费下载有限期使用版。它是界面类似于Windows的资源管理器式的界面,有很强的文本编缉功能。

XML Spy Icon Information-Systems 公司的XML Spy 是XML 一个集成开发环境,包括进行XML开发的各个方面,功能较强,简单易用。XML Spy是一个真正完整的XML开发环境。它将所有开发XML所需的要素都包含在一个简单易用的产品中。它包括:XML编辑器和检验、Schema/DTD编辑器和检验、XSL编辑器和转换。同时还包含最新的XML草案,是一个不可多得的好软件。

XML Writer 这个软件是由Wattle Software-Chris Howard 开发的,可从https://XMLwriter.net下载(试用)。在Window 95/98/2000 and Windows NT4下使用,也有着大家熟悉的Windows界面,提供了工程管理环境,可能刨建、查看工程,工程下包含文件,用户可自定义工具条、快捷键,并且可为命令选择显示图标。可用XSL样式表转换XML文件为HTML文件,不仅可使用XSL,而且可以使用XQL,用DTD或XML Schema 对XML进行检验,用XML格式直接的将CSS结合到XML,提供在线帮助功能,并且它对中文的支持较好。

2、XML服务器

由于XML技术有很大的发展潜力,众多厂商提供了自己的XML服务器,其中有Apache、Microsoft、Sun等。

3、浏览XML的工具

现在,大多数方案是将XML存储在数据库中,当需要时取出代码,将其与数据结合起来,使用XSL将其转换为HTML,然后发送到浏览器。所以浏览XML一般选用IE可Netscape, 而且版本越新对XML文档支持越好。

四、具体实现

1、 规范定义XML文档中元素名称

首先定义XML文档头部,包括XML遵循的规范、编码方式、注释等。例如:

< ?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>

“version=”1.0” “,表示该XML文档遵循XML1.0方案,这个喜剧声明是必须的。

“encoding=”gb2312” ”,如果没有这个声明,必须使用Unicode,以UTF-8或UTF-16作为编号方式。如果文件中使用了中文,就必须进行编码声明。

“standalone=”yes” ”,XML声明还可以有standalone特性,它说明,文档是否在这一个文件里需要从处部导入文件。如果XML文档在一个文件里完成,那么standalone特性的值就设置为“yes”。

然后,根据业务的需要规范定义页面上要显示的元素,以及定义它们的元素名称,元素名称可以是中文的,这样对数据描述更加简单明了,这是HTML无法实现的。元素是文档的主要逻辑部件,由开始和结束标记界定,格式为:

< 元素名称 属性名1=“属性值1” 属性名2=“属性值2”>

元素的内容

< /元素名称>

元素的内容,可以直接写在页面上,也可以从数据库中取得。

文档中还可以包括实体声明和实体引用。简单地说,实体分为一般实体和参数实体。参数实体只能出现在DTD中,一般实体出现在一根元素开始的主XML文档中。实体声明格式为:。一般实体的引用很简单:“&实体名称;”,参数实体的引用与一般实体的引用类似:“%实体名称;”。实体是功能强大的工具,提供了管理大量内容的便捷机制。

写好后检查XML文档,确保文档的格式正确和有效。一个格式正确的XML文档满足:

每一元素必须有起始和结束标注;

必须有一个,而且只有一个称为根元素或文件元素的元素,并且它不出现在其他任何元素的内容中;

它包含一个或多个元素

正确的定义和表示空元素;

和结束标记可以使用大写或小写,但它们必须匹配;

以起始标签和结束标签为界的各个元素必须正确地嵌套,不允许出现交叉;

属性值必须使用引号括起来;

此文件中直接或间接引用的每一个己析实休都是格式正确的;

它满足XML规范中定义的所有其他的格式正确性约束。

2、 使用XSL显示XML文档

XSL(eXtensible stylesheet language)是描述XML文档样式的一种语言,是由W3C制定的。XSL处理程序读取XML文档和XSL样式单,基于处理程序在XSL样式单中找到的指令,输出新的XML文档。XSL样式表就是对XML文档中类的描述文件,描述文件说明的是如何使用格式化词汇将类实例转换为一个XML文档。同时,XSL样式表也必须是组织良好的XML。

XSL有三个组成的模块:XSL模式(XSL Patern)、”XSL”名域(”XSL” Namespace)、”fo”名域(”fo” Namespace)。使用XSL样式单可有三种主要方式将XML文档转换成其他格式:XML文档和相关的样式单都是用于客户端(Web浏览器)的,然后客户端程序按照样式单中指定格式转换文档,并将它呈现给用户;服务器将XSL样式单应用于XML文档,以便此文档能够转换成其他某种格式(通常为HTML),并把转换后的文档发送到客户端程序(Web浏览器);使用第三方程序将源XML文档转换成其他某种格式(通常为HTML),才把此文档放置在服务器上,服务器和客户程序只处理转换后的文档。由于,大多数浏览器是IE,而且IE对XSL的支持又好,第一种方法常被采用。

XSL转换语言通过将XML树形结构变换成另一个XML树形结构来操作。这种语言含有操作符,此操作符用来从树形结构中选择特定节点、对节点重新排序以及输出节点。在XML文档中引用XSL的说明如下:

< ?xsl-stylesheet type=”text/xsl” href=”mystyle.xsl”?>

表明该XML文档引用的XSL样式单为mystyle.xsl。内容与形式分离使XML文档更偏重于数据本身,而不受显示方式的细枝末节的影响。而且可以通过定义不同的样式单可以使用相同的数据呈现出不同的显示外观,实现XML数据的可重用性。

首先定义构造部分输出的模块,或对来自XML源文件中的数据应用模板。转换模板包含在元素xsl:template中,模板可定义一组将源文档转换为结果树的规则,确定要处理的节点。然后匹配模式,一个模式是一个字符串,它用于匹配XML源文件中的一个元素。用@匹配属性节点。再用XSL中的元素转换XML文档中的元素。用XSL可以非常方便地实现同HTML中同样的表单定义。只要将要在表单中的元素放入定义好的XSL模板中即可,表单的名称、提义方式等属性与HTML中的定义相同。同样的表格的范围、样式,页面的显示风格、脚本等的定义也都与HTML相似。

另外,CSS也可以应用到XML文档,但CSS决定了页面的视觉外观,不会改变源文档的结构。CSS和XSL是互相补充,各有特色的。

经过XSL转换后XML文档表单提交到JSP页面或servlet进行处理。这部分可以完全和页面处理分开,可以实现控制逻辑的完全独立。

3、 XML文档数据的输出

XML的主要应用包括交换信息、定义文档类型、说明信息,信息以一种结构化的基于文本格式的方式表达,可以很容易地进行传输、转换和阐释。对数据的处理可以全部放在javabean或servlet中进行,与页面的显示完全分开。

在JSP中生成XML文档很简单,仍然可使用CSS或XSL来转换和显示XML。一个具有XML模板的JSP页面,其实质就是在XML文档模板中,在适当的地方加入JAVA代码和JSP标记。在页面中加入< %@page contentType=”text/xml”% >即可以将JSP页,以XML文档形式显式出来,同时把动态数据放入< % % >标记内。对生成的XML同样可以用XSL样式单进行格式转换和样式定义等。

4、 XML与JAVA结合

XML能创建不依赖于平台、语言或限制性格式化协定的开放数据,如果广泛地采用,XML能变成为内容以及下至客户端对象通迅的广泛标准。作为内容平台XML在许多方面增强了JAVA。XML将基于网络的信息置标化,使得开发者和电脑易于辨认。这是有必要的因为HTML除了隐藏的URL外,缺少有效的方法说明内容的含义,XML的目标就为网络的对象添加那些含义,而这些曾经就是JAVA的任务之一。

许多网络开发者得出结论:XML和JAVA是完美的一对,因为彼此十分相辅相成,XML有助于独立平台、易提取信息的文档和数据。JAVA有助于独立平台,易于处理的面向对象的应用软件解决方案,能驱动XML广泛接受的应用是在HTML的限制下难以实现的那些应用,可分为下列四类:

需要网络客户端协调各种不同类型数据库的应用。

力图将比例可观的处理工作从服务器端分布于客户端的应用。

要求客户端将同一数据以不同的形式展现给不同的使用者的应用。

智能网络代理应个别用户的要求搜索定制信息的应用。

JAVA平台提供了在网络上安全而方便地传播代码的基础,XML技术则为数据提供了同样的能力,这是一种清晰地、平台独立地表示内容的方法。在众多编程语言中,JAVA是使用XML的优秀平台,XML又是JAVA应用的优秀数据表示方法。XML和JAVA都与Internet关系密切,XML被设计成为一个优化的,灵活的可读格式,可直接用于Internet;而JAVA从一开始就支持socket,HTTP,HTML和服务器。它们都支持Unicode。因而很容易实现本地化应用,正如JAVA向程序员提供了表达复杂数据结构和面向对象模型的能力一样,用XML表达复杂的层次化数据模型是很理想的。

XML结合JSP技术结构明确、条理清析、简单易懂,是开发动态网站的一条快速而便捷的开发途径。

  • 相关推荐
  • 大家在看
  • Twitter网页版将允许用户 “软屏蔽”粉丝

    据外媒The Verge报道,Twitter网页版正在推出一项新功能,让用户可以在不阻止粉丝的情况下删除他们,这一行动也被称为 “软屏蔽”。要“软屏蔽”一个粉丝,用户需进入个人资料的粉丝列表页面·,点击粉丝名字旁边的三点菜单,然后点击“删除粉丝”选项。 用户删除的粉丝将不会被通知这一变化。“软屏蔽”与屏蔽不同,因为它允许粉丝仍然看到用户的推文和发送私信,但用户发布的内容不会再自动出现在粉丝的消息流中。当用户删除一个

  • 微信iOS版本更新!语音通话可显示对方朋友圈动态

    近日,微信iOS版迎来8.0.14正式版更新,除上线关怀模式、群聊折叠等功能外,还新增了一个语音彩蛋。经过测试,当向好友发起语音通话时,可以在通话界面中查看对方的朋友圈,不过只能看到对方三天内发出的朋友圈。另外,界面中间新增看他的近况”按钮,点击还可弹出对方三天内的朋友圈动态,包括朋友圈文案、图片、定位。对此,有网友表示,没用的,因为现在三天内几乎是没有朋友圈的”,也有网友称,看着好新奇,有点意思”。除此?

  • Chrome新标签即将显示Google Drive文件

    Google 今天发布预告,当你在 Chrome 浏览器中打开新标签页的时候,即将会显示 Google Drive 文件。该公司表示,浮现的内容将基于“智能建议”,而不是根据最近的情况来显示文件。Google 称,这将节省用户寻找所需文件的时间和精力,因为他们将能够直接从新的 Chrome 标签上提供的新用户界面抓取文件,如下图所示。Google表示,如果你没有定制新标签页界面,这种体验将被默认启用。如果 IT 管理员在组织层面为“新标签页”设置了自

  • 新专利显示苹果正在追求带有环绕式显示屏的iPhone

    "带有环绕式显示屏的电子设备"是一项新授予苹果的专利。该专利显示未来的iPhone可能会有一个弯曲表面,包裹着两边的屏幕。苹果公司已经多次就这种 "环绕式 "显示屏想法的申请了多项专利。新授予的这项专利最初是在2019年申请的。但之前的一个环绕式想法早在2013年就已申请专利。而2020年又出现了至少两个专利申请。今天这个版本也包括一个灵活性的元素,这意味着它可能会触及像iPhone折叠机这样的问题。苹果在专利当中表示,一种消

  • Apple TV+新节目开播在即:囧司徒希望帮助友找到“缺失的内容

    众所周知,重新出山的囧司徒即将在 Apple TV+ 流媒体平台上线《The Problem With Jon Stewart》新节目。7 月份的时候,官方已经通过一段剪辑调侃了亿万富翁近期参与的“太空之旅”。而在美国时间 9 月 30 日(周四)首播之前,《囧司徒的困扰》官方推特账号又分享了一段风格独特的 Apple TV+ 宣传视频。在时长不到一分半、题为“帮助找到缺失的内容来源”的这段视频中,囧司徒宣传了 Apple TV+ 上鲜有人知的“数千小时高品质影视内

  • 文件显示SpaceX正在测试Starlink卫星互联移动终端

    太空探索技术公司(SpaceX)的Starlink卫星互联网服务正在开发一个新的用户终端,使其用户在移动中获得互联网连接。SpaceX向联邦通信委员会(FCC)提交的一份新文件显示,该公司旨在在佛罗里达州彭萨科拉的一架飞机上测试一个 "移动用户终端"。这是今年早些时候在FCC文件中出现的同一个终端,它比目前Starlink测试者使用的终端有关键规格变化。本月早些时候提交的文件对Starlink移动用户终端计划作了进一步说明。SpaceX?

  • 新专利显示HomePod可能获得触摸敏感面料和更方便的控制方式

    苹果公司正在研究可以包含触摸敏感材料和显示控制的织物,以便未来HomePod mini周围的保护壳可以具有额外功能。苹果现在已经获得了一项专利,未来的扬声器将至少使用一部分可以检测触摸的织物。因此,也许HomePod mini的整个声学包裹外壳将被替换,或者只是关键区域将被替换。苹果获得的新专利名称是"带触摸传感器织物包裹的电子设备"。新授予的专利甚至可能适用于其他苹果设备。例如,Smart Folio键盘就是一种织物。然而该专利集?

  • iPhone 13 Pro曝新BUG:拔掉充电器还显示正在充电

    更短刘海、高刷屏幕、更长续航、电影模式、更低价格尽管这代iPhone 13系列有一千个值得买的理由,但并不代表它是一款完美的手机。今天,数码博主@王奔宏 爆料称,自己的iPhone 13 Pro在拔掉充电器很久后,右上角居然还显示正在充电状态,他调侃我这台永不断电的iPhone 13 Pro值多少钱?”有网友质疑使用了无线充电或者是截屏,他也通过视频方式进行了自证,确实是iPhone 13 Pro的BUG。网上搜索发现,这种BUG并未大规模出现,但也并

  • 跌落测试显示:iPhone 13/13 Pro耐用性和前代几乎相同

    据国外媒体报道,保险服务机构Allstate Protection Plans对iPhone 13和iPhone13 Pro进行了年度跌落测试,发现由于设计相似,iPhone 13系列机型在耐用性方面可与iPhone 12系列机型相媲美。

  • 调查显示:超94%受访者觉得购“好评注水”现象普遍

    很多消费者在网购的时候,通常会查看一下之前买家的评论情况,不过这并不意味着大家信任评论内容真实性。根据最新调查数据显示,超九成受访者觉得网购“好评注水”现象普遍。

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天