答案:传统上, 我们利用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=><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> 上一个:求助jsp与tomcat 运行jsp+access 的论坛 出现错误 更多图片编程知识:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络, |