HTML、Swing还是XML,Java客户端工具选择?(四)

原创 2001年08月02日 11:25:00
  基于XML/XSLT的客户端应用程序

       在这里,我们假定你已经对XML有了基本的理解,我将重点讨论其前端应用程序的开发。与XML相关的用户界面开发的一个主要特征是内容和表达方法之间互不干涉。简单地说,就是数据被保存为XML文档,而不再负责数据的使用和显示,根据决定数据格式和在网页上输出方式的样式表(XSLT)在HTML、WML、XHTML和其他表达形式中选择一种数据表达形式。通过使各层之间保持相对的独立,让每个层处理各自的任务,这种方法的优点是非常明显的。

  尽管XML提供了很好的数据发布模式,可以生成不同的表达模式,它仍然不能解决所有的问题。XML值得称道的是让开发人员专注于数据的处理,而让设计人员和艺术家来处理数据的表达形式。应用程序则把生成的XML文件保存在内存或存储在磁盘上,为得到指定的表达类型,例如HTML,可以通过适当的XSLT类型表对内容进行转换,该类型表可以将XML文档转换为HTML文档。类型表与判断文档中的内容应当如何分布在网页上的模板类似。它还可以转换数据,执行传统的命令和循环来处理数据,进行决策,因此它也可能变得非常复杂。

  类型表的优点之一是,如果要从一部移动电话上访问同一个应用程序,所需要作的全部工作就是再创建一个新的WML类型表。从理论上说,这个应用程序的所有其他部分都无需作任何改变,这使得服务器端的编程工作变得非常高效。采用XML实现一个前端应用程序将使一些任务变得简单,因为显示的数据和处理这些数据的代码都无需改变。开发应用程序各部分的开发小组可以独立工作,从而加快开发进程。

  然而,我曾经在基于XML的前端应用程序开发中吃过苦头,它的二个最主要的缺点是缺乏帮助生成XML以及类型表开发方面的工具和处理速度,第一个因素对那些使用DreamWeaver和FrontPage等可视化HTML开发工具创建HTML网页的开发人员的影响更大。就我本人而言,我还是喜欢使用DreamWeaver,但我实在不能从在文本编辑器中编写HTML代码中得到什么乐趣。毕竟,现在已经是21世纪了,我们来看一个将XML文档转换为HTML的非常简单的XSLT类型表:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="page">
<html>

<head>
<title><xsl:value-of select="title"/></title>
</head>

<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="title">
<h1><xsl:apply-templates/></h1>
</xsl:template>

</xsl:stylesheet>



  如果所选的XSL类型表适当的话,上面的代码会生成如下所示的HTML代码:

<html>
<head>
<title>My first page</title>
</head>

<body>
<h1>Hello, world</h1>
</body>
</html>

  我们会发现,上面的代码与我们用HTML开发工具得到的代码不大相同。不幸地是,我们必须用手工的方式对它进行编辑,在一个可以生成HTML文档的工具中对它进行处理后,然后在浏览器中打开生成的文档。如果仅仅是为了美观而改变字体的大小,那么就无需这么作了。

  第二个问题是在运行时完成所有的任务需要许多时间。如果数据格式不是XML,还需要生成XML文档,在类型表对XML进行转换处理后,才能生成HTML代码。与在Servlet或JSP应用程序中向内存缓存中写文件相比,速度和简洁性实在不是基于XML的前端应用程序的优点。

  总而言之,如果需要动态地生成不同版面和窗体的表达形式时,就需要使用XML。如果表达形式需要经常变化或需要非常灵活,就应该让设计人员重新设计新的类型表。需要记信的是,设计人员只要掌握XML和XSLT就万事大吉了。

  另一个需要使用基于XML的UI的场合是你需要处理的资料是XML文档,而不是Java对象或关系数据库。XML是一种在未来颇有前途的新技术,然而,目前使用JSP开发前端应用不是比较方便的,尤其是HTML是唯一一种前端开发工具时更是如此。使用JavaBeans和JSP标识库等一些著名的设计模式则能够使数据的内容和表达形式很好的分离。随着自动对XML/XSLT进行编辑的工具的出现,这些技术在使用方面将更加简单方便。

  结论

  具体到你自己的Java应用程序,这三种前端技术各有利弊,任何一种技术都不能在所有方面超过其他二种。针对具体的应用程序,我们必须对需求、用户的期望进行详细分析,对这三种技术进行评估。下面是一些基本的准则:

  使用HTML/JSP:

   ━━适合于由大量图形和美术作品组成的静态内容。

   ━━前端应用程序的界面面向使用所有平台的用户。

   ━━用户所使用的互联网连接较慢。

   ━━希望快速地构建功能比较单一的应用程序。

  使用Java Swing:

   ━━适合创建具有内置、与界面相关的逻辑的GUI。

   ━━可以减轻网络流量,提供尽可能的即时响应。

   ━━如果用户对界面的质量和功能有较高的期望。

   ━━如果UI的功能比其美感更重要时。

  使用XML/XSLT

   ━━需要支持许多不同的而且经常变化的窗体。

   ━━数据是XML格式。

   ━━需要个性化。

   ━━计划提供无线访问等不同的访问方式。

HTML、Swing还是XML,Java客户端工具选择?(三)

 Swing存在的问题在于布署时的速度和兼容性问题。现在,它的一个重大改进解决了这些问题并使Java客户端应用程序重新成为一个可行的选择,CPU的速度在过去2年中翻了一番。在JDK 1.3中,基于Sw...
  • cbacba
  • cbacba
  • 2001年08月02日 11:25
  • 1010

java程序打包方法最强集合

前几天一个朋友拜托我写一个分析很多散点的程序。由于处理的点数量很大(上万),而且每个点的显示都涉及图片的旋转,所以我准备用java的swing来处理。好久没写过java客户端程序了,总结一下java客...
  • jinzheng069
  • jinzheng069
  • 2014年03月21日 22:18
  • 2960

JAVA组件大全复选框,选项按钮,复选方框,下拉式列表的使用介绍

7-1:使用JCheckBox组件: 类层次结构图:    java.lang.Object      --java.awt.Component       --java.awt.Contai...
  • qq_30175203
  • qq_30175203
  • 2015年10月08日 21:03
  • 3352

Java客户端工具选择:HTML?Swing?XML?

[前言:] Java软件设计师和管理人员经常会面临这样的难题:在开发应用软件的客户端时,应该在Swing、HTML、XML三种技术中选择谁。在这篇文章中,我将把自己在这三种技术方面的经验与广大读者共享...
  • u011794238
  • u011794238
  • 2014年11月08日 22:25
  • 842

利用java、js、html进行客户端工具开发的两个方法

 概要 本文基于客户端检测工具的现实需求,提出了两个利用java/web开发人员普遍熟悉的js、html、java技术,进行客户端工具开发的可行性方案,比较了优缺点,并有demo演示效...
  • zhangerwei
  • zhangerwei
  • 2014年07月02日 17:53
  • 552

rain12306-java swing实现12306客户端 无任何服务端依赖.zip

  • 2017年05月02日 20:31
  • 124KB
  • 下载

Java四人网络斗地主游戏《客户端》swing界面

这是本人把一个三人斗地主改成四人的 河南南阳地区的玩法 下载本游戏代码http://www.crazyit.org/viewthread.php?tid=9375&page=1&extra=#pid1...
  • zwyjg
  • zwyjg
  • 2013年05月18日 18:17
  • 2730

java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小

代码如下: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import javax.swing....
  • swift2010
  • swift2010
  • 2018年01月01日 00:42
  • 43

java swing 通过hibernate连接数据库的客户端登录

//客户端程序 package Hibernate; import java.awt.BorderLayout; public class LogIn extends JFram...
  • RoySaliencyDetection
  • RoySaliencyDetection
  • 2015年12月19日 16:22
  • 809

Java Swing <--> Tomcat SSL 服务端-客户端双向认证

环境: jdk1.6.0_26  + tomCat6.0_18  |   tomCat 5.5.23 测试成功 ------------------------ 1 服务器端 生成密码库 --...
  • wkwanglei
  • wkwanglei
  • 2012年11月13日 18:59
  • 705
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTML、Swing还是XML,Java客户端工具选择?(四)
举报原因:
原因补充:

(最多只允许输入30个字)