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

转载 2007年09月27日 16:13:00
XML在B/S架构开发中的XML应用
传统上, 我们利用JSP+Bean来开发用户界面, 这里介绍一种利用XML+XSLT的方法来替代JSP
动机:
1. JSP构造页面太痛苦. 代码嵌入页面导致页面臃肿, 逻辑复杂, 不易编辑.
2. 程序员和美工的接口必须精确定义. 复杂的嵌套输出必须构造复杂的显示类作为接口.
3. 调试JSP必须等到前端程序结束才能看到效果.
3. 调试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"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p align="center">
<xsl:value-of select="page/output/info"/>
</p>
</body>
</html>
</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转换,可参考。
 

掌握B/S结构程序开发

据统计数据,截至2008年10月底,我国中小企业总数已达到4200多万家,它们未来注定会成为中国经济主力。时代的变迁必然导致需求的变化,中小企业发展要上新台阶,那么过去很多中小企业使用的单机版软件都面...
  • ocean181
  • ocean181
  • 2009年03月19日 16:20
  • 4069

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

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";...
  • java169
  • java169
  • 2008年05月23日 19:10
  • 147

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

  • zgqtxwd
  • zgqtxwd
  • 2008年04月25日 17:33
  • 136

应用架构B/S与C/S优劣比较(二)

三、发展态势分析 1.   C/S最新发展 桌面应用主要以Windows系统和移动设备为主。我们主要讨论windows下的桌面应用发展技术。 l  C/S架构 1)     二层结构 早期的...
  • njpjsoftdev
  • njpjsoftdev
  • 2016年08月29日 19:44
  • 2606

B/S网络架构概述

B/S架构基于Http协议来进行数据的交互,而Http协议是无信任的短链接,建立连接,传输数据,断开连接,这种做法极大的提高了网络的服务效率,通常情况下,一次请求就完成了一次数据交互,对应一个业务逻辑...
  • u013446312
  • u013446312
  • 2015年03月15日 13:32
  • 722

B/S架构简介

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑...
  • bv1315008634
  • bv1315008634
  • 2016年12月16日 22:15
  • 2685

浅析B/S架构数据库连接方式

前言 在许许多多的B/S架构系统中都涉及到了数据库的链接,那么对于数据库连接的方式有哪些?可能出现的问题是什么? 目录 1.普通连接方式 2.单例模式 3.连接池 分析 普通...
  • cic10235
  • cic10235
  • 2016年07月27日 20:03
  • 553

毫无废话: 从0开始一点一滴用java开发自己的B/S构架

严重警告:只要知道一点两点就不要看了 开场白: 曾经看过一本电子版的书,太多的细节没有记住,只记得书名叫:无废话XML。这个名字叫得颇叫我感动,为什么?只因为现在的计算机图书得废话太多了。 今天写下这...
  • arielxp
  • arielxp
  • 2004年06月24日 06:58
  • 2661

B/S架构的实时通信

对于web的实时通信,例如基于Browser(下简称B)的网络聊天程序,目前主要还是靠B端向Server(下简称S)端发起轮询获得最新信息。webserver在设计的时候考虑到B端可能数量太大,所以没...
  • cblou
  • cblou
  • 2015年01月21日 16:34
  • 1285

B/S模型基本架构

B/S是一种常见的客户端与服务器的交互模型,具有很多优点,这些优点使得它越来越流行。B/S模型具有以下优点:   客户端:客户端使用主要是浏览器,浏览器为用户提供了统一的操作平台,即对于不同的服务器...
  • xiaofangzi11
  • xiaofangzi11
  • 2016年11月22日 13:41
  • 1342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML在B/S架构开发中的XML应用
举报原因:
原因补充:

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