• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
XML在B/S架构开发中的应用
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
XML在B/S架构开发中的应用
软件发布 XML在B/S架构开发中的应用
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> XML教程 >> XML在B/S架构开发中的应用

XML在B/S架构开发中的应用

添加时间: 2006-5-11 3:09:30  作者: XML教程  阅读次数:60   来源: http://d9soft.com

        传统上, 我们利用JSP+Bean来开发用户界面, 这里介绍一种利用XML+XSLT的方法来替代JSP

  动机:

  1. JSP构造页面太痛苦. 代码嵌入页面导致页面臃肿, 逻辑复杂, 不易编辑.
  2. 程序员和美工的接口必须精确定义. 复杂的嵌套输出必须构造复杂的显示类作为接口.
  3. 调试JSP必须等到前端程序结束才能看到效果.
  4. 调试JSP效率极低, 一点点小的修改都会引起jsp的重新编译.

  新的XML的解决方案:

  1. 一个servlet做统一管理. 接受url请求, 映射到对应的程序bean.
  2. 程序bean只产生XML, 由servlet统一用对应的XSL转换为html.

  好处:

  1. JDK1.4已经自带XML API和XSLT, 并且支持XSLT 1.0标准. IE6也支持同样标准.
  2. 开发前先制作接口用的demo XML, 程序员的输出必须符合此格式. 美工根据此格式制作XSL. 接口可视化, 明确定义.
  3. 只要定义好接口XML, 两边几乎不需要再联合调试. 美工利用接口XML和IE6就可以直接看到效果.
  4. 程序员只要保证输出的XML的是否符合接口, 直观的做文字性对比.
  5. 大量页面可重用的部分能方便的抽象出来, 在XSL文件中include/import进来. 高度重用, 标准化.
  6. 写XSL可大量采用template, 结构清晰, 修改方便, 写页面变成搭积木, 不再有jsp的层层嵌套.
  7. 对于不同的终端设备, 可以定制不同的XSL, 很方便的就能够支持手机, pda...
  8. 在程序中利用支持XML的工具, 比如sql2000, 可以直接生成XML结果, 无需复杂编程.

  
坏处:

  1. 因为要进行XSLT转换, 服务器工作量稍微增大.

  以下是几个关键环节的简单示例:

==============servlet中的XML转换==========
/**
* XML是String
* XSL从文件中读取
* 直接写入response
*/
//import javax.xml.transform.*;
//import javax.xml.transform.stream.*;

StreamSource xml = new StreamSource(new StringReader(xmlSource));
StreamSource xsl = new StreamSource(xslFileName);

response.setContentType("text/html; charset=UTF-8");
StreamResult result = new StreamResult(response.getWriter());

Transformer trans = TransformerFactory.newInstance().newTransformer(xsl);
trans.setOutputProperty("encoding","UTF-8");
trans.transform(xml, result);

==================接口XML文件样本=============
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="xxx.xsl"?>
<PAGE>
<OUTPUT>
<INFO>推广UNICODE, 解决多语言问题.</INFO>
</OUTPUT>
</PAGE>

==================XSL文件样本=============
<?xml version="1.0" encoding="UTF-8"?>
<?xml:namespace prefix = xsl /><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">

<P align=center>
<xsl:value-of select="page/output/info"></xsl:value-of>

</xsl:template>
</xsl:stylesheet>

  考虑:

  1. 可以把XSLT转换放在IE进行, IE6以下版本要安装MSXML3, 对客户端限制太多.
  2. 在客户端的XSLT转换必须完全读入XML+XSL, 在网速不高或者内容很多的时候反应相当迟钝.
  3. 手机, pda等设备不能进行XSLT转换, 所以XSLT转换还是放在服务器上比较合适.
  4. 因为一般提交内容都比较简单, 所以没有采用XML处理, 在程序中也尽量少用XML, 避免影响速度.
  5. 可以在servlet判断特定参数, 比如发现有xml-view参数时, 不做XSLT转换, 直接输出XML到浏览器, 供程序调试用.

  说明:

  1. 这里只是利用XSLT的功能来解决网站建设中最头痛的界面和逻辑分开问题, 不是基于XML的内容处理.
  2. 如果你想赶时髦, 用XML来全副武装, 可以参考cocoon2, http://xml.apache.org/cocoon/. 但是请记住, cocoon

  还不完善, 你将碰到乱码, 速度, 文档不足的问题, 但是它的思想的确值得学习.
  3. 在tomcat, resin中有用filter实现的xslt转换,可参考。

 

上下文章:

 

上一篇文章: 教您使用XML封装数据库操作语句的实现 下一篇文章: 保存.NET应用程序设置

相关文章:

  • 用WebEasyMail架构Web邮件服务器(一)
  • 用WebEasyMail架构Web邮件服务器(二)
  • 用WebEasyMail架构Web邮件服务器(三)
  • 用WebEasyMail架构Web邮件服务器(四)
  • 用WebEasyMail架构Web邮件服务器(五)

相关软件:

  • Grove[.NET组件开发包] V1.2.1640
  • 全国专业技术人员计算机应用能力考试模拟 2.1
  • 少儿智力开发大师 V2.0
  • C/S、B/S两用开发平台 V6.1.2
  • DVD/CD光盘刻录SDK开发包 V4.2
  • 电脑应用一软通 V1.06

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • XML轻松学习手册(6)XML实例解析...
  • XSL简明教程(1)XSL入门
  • XSL简明教程(2)XSL转换
  • XSL简明教程(3)在客户端的实现
  • XSL简明教程(4)在服务器端的实现
  • XSL简明教程(5)XSL的索引
  • XSL简明教程(5)XSL的索引
  • XSL简明教程(6)XSL过滤和查询
  • XSL简明教程(7)XSL 的控制语句
  • XSL简明教程(7)XSL 的控制语句

XML教程阅读排行

  • XML轻松学习手册(6)XML实例解析...
  • XSL简明教程(1)XSL入门
  • 大话XML(1)XML是什么
  • XML轻松学习手册(2)XML快速入门
  • XML轻松学习手册(1)目录
  • XML轻松学习手册(3)XML概念
  • XML轻松学习手册(5)XML语法
  • XSL简明教程(2)XSL转换
  • 大话XML(2)XML和HTML的比较1
  • XML轻松学习手册(6)XML实例解析

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有