JSP - 服务器端 XSL 转换的三种方法(0分)

  • 主题发起人 主题发起人 yysun
  • 开始时间 开始时间
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
XML 处理已经成为 Java (JDK1.4) 的基本组成部分(JDK1.3+Xalan)。
XSL 转换用三五行程序就解决了:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class testXML {
public static void main(String[] args) {
try {
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer(new StreamSource(args[1]));
transformer.transform(new StreamSource(args[0]), new StreamResult(System.out));
}
catch(Exception e) {
System.err.println(e.toString());
}
}
}
这个程序如何在 JSP 中使用,有三个方法:
1、JavaBean 的方法,您自己用上面程序,稍作修改就成了。
2、Filter 的方法。 http://www.servletsuite.com/servlets/xmlflt.htm
3、JSP Tag (JSTL) 的方法。 http://jcp.org/aboutJava/communityprocess/review/jsr052
以前,一谈到 XSLT 就会想到 Cocoon,我感觉现在 Cocoon 受到多方面的挤压:
- XSLT 不再依赖 Cocoon (上面三个方法都不需要 Cocoon)
- Cocoon 的 SiteMap 和 Action 与著名的 struts 相似,势必互为竞争
http://xml.apache.org/cocoon/userdocs/concepts/actions.html
- Cocoon 的 XSP 前途未卜,其实它已经被 JSP 1.2 的 JSP XML 语法覆盖掉一大部分了。
http://www.onjava.com/lpt/a//onjava/2001/02/22/jsp_servlets.html
http://www.jcp.org/aboutJava/communityprocess/final/jsr053
 
方法虽然简单,但是效率并不太高。
 
我觉得到目前为止,xml parser的速度都还是瓶颈,yysun以为如何?
 
我觉得关键看您的需求是否需要任意改变屏幕布局。
如果不需要,那么直接用 JSP 输出 HTML,不做 JSP -> XML -> XSLT -> HTML,自然就避免了
xml parser 和 xsl 转换(内存和CPU相求都比较大的)这一层。
如果需要,优化运行效率还是有些办法的,比如使用 xsltc
http://xml.apache.org/xalan-j/xsltc_usage.html
 
后退
顶部