帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程 >
XML在B/S架构开发中的应用
作者:未知 发布时间:2005-03-12 来源:JSP天空网
author: steeven

传统上, 我们利用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到浏览器, 供程序调试用.

出自 csdn.net
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·放眼未来 帝国近期将有重大举措!
·PHPWind6.3.2版通行证发布
·帝国备份王2008版正式发布
·帝国备份王2008版发布
·phpcms2007转帝国CMS5.0程序发布
·dedecms5.1转帝国CMS5.0程序发布
·帝国网站管理系统V5.0商业购买说明
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统