[Onejava Studio Web][JAVA]JSP与XSP大比拼
1999年以前,网站开发人员说的最多用的最多的是ASP;2000年,JSP进入了人们的视野;到了2001年,XSP将成为新的话题?


在服务器页面(Server Page)的词汇中,XSP正在获得越来越多的认可。它将迎来服务器页面的新时代。

XSP的全称是可扩展服务器页面(eXtensible Server Pages),它是Coconn的核心技术之一。Cocoon的原意是蚕茧,不过这里是指用来编织新一代服务器的“蚕茧”。Cocoon是著名的Apache XML 项目的七大技术之一。考虑到文档内容、样式和逻辑常常是由不同的角色来提供,Cocoon的目标就是将以上的三个层次完全分离。Cocoon将是的内容、逻辑和样式被分离成不同的XML文件,然后采用XSL的转化能力来进行合并。

尽管在概念上与JSP有类似,但是XSP仍然有一些不同的特点。JSP和XSP孰优孰劣呢?我们不妨先具体了解一下它们。


XSP技术
在网站后台采用XML的主要思想是将内容、逻辑和表现进行分离。XSP则提供了一个XML框架的前端部分。提供由框架(framework)解析和转换的动态XML页面将使得应用具有交互性,尽管这些页面是在一个文件系统中以静态文件的方式构造和存储。

正如Java的目标在于明确地将内容从应用和商业逻辑中进行分离,XSP将努力提供基于XML应用的相同作用。虽然目前许多已有的XML框架可以在已编译的代码内分层,但是XML文档内部实际数据的改变仍然需要借助于Java的程序以及随后的再编译。

如果没有预定的语义,XML浏览器将没有任何意义。这正是XSL(可扩展样式语言)提供和设计的原因之一。XSL被分为两个部分 XSL转换(XSLT)和格式化对象(常常被称为FO、XSL:FO或者简称XSL)。以上两个部分都是定义了特定XML语法的XML DTD,因此本身也可以说是XML的具体应用:每个XSL或者XSLT文档就是一个格式良好的XML文档。

Cocoon的发布模型很大程度上建立在XSLT的转换功能之上。 XSLT使得内容和样式可以完全的分离,而这正是所有编写Web应用人员一直寻求而不得其解的。这种分离在HTML中是很难实现的,即使使用了CSS2或者是其他的样式的技术。但是Cocoon技高一筹,它定义了从编程逻辑中将内容和样式进行分离的方法,而正是这些编程逻辑驱动了服务器端的行为。XSP语言定义了新的XML DTD来将内容和逻辑进行分离,然后交给服务器进行编译。

在动态内容生成技术中,内容和逻辑是结合在一起的。典型的情况是将静态内容和动态内容相互结合共同来得到最后的结果,而且常常使用运行时或者依赖于时间的输入。XSP也不例外,它定义了将静态内容和编程逻辑混合的语法。而且这种方式与使用的编程语言和最终产生的二进制结果无关。

XSP在该框架中只是一小部分而已。和FO将样式和内容混合相类同,XSP的对象混合了逻辑和内容。另一个方面,由于两者都是XML DTD,XSLT可以将样式和逻辑放入转换层次,保证它们100%的分离以及维护的便捷,这样可以从纯粹的内容得到最终的DTD。