|
以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- 什么是 Cocoon? (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=99) |
|
-- 作者:dancewing -- 发布时间:11/4/2003 3:32:00 PM -- 什么是 Cocoon? Cocoon 是一种 Java 服务器框架,它允许使用 XSLT(XML 样式表语言转换 (XML Stylesheet Language-Transformation))转换动态发布 XML 内容。通过依靠 XML 描述 内容以及使用 XSLT 将内容转换成多种格式,Cocoon 提供了用于构建内容、逻辑和表示 在很大程度上彼此分离的应用程序的平台。 Cocoon 使用管道的概念来描述将内容发布到 Web 的过程。它包含各种各样的可重用组 件,这些组件可以配置成使用最低限度的 Java 开发生成复杂的行为。例如,通过单独 使用 XML 和 XSLT,Cocoon 可用于: 提供静态文件和动态生成的响应 使用任意数量的处理将用户请求透明地映射到物理资源 执行简单和多级 XSLT 转换 将参数动态传递到 XSLT 变换 生成各种各样的输出格式,包括 XML、HTML、PNG、JPEG、SVG 和 PDF 这大大增加了使用 XML 和 XSLT 中现有技巧进行工作的功能。Cocoon 让您能以最少的 麻烦生成动态网站。 Cocoon 1 和 Cocoon 2 Cocoon 是一个开放源码项目,它是作为 Apache XML 工作的一部分开发的。Cocoon 2 完全重写了原始的 Cocoon 应用程序,并且是建议使用的版本。新用户应该一开始就使 用 Cocoon 2,同时鼓励 Cocoon 1 的现有用户进行升级。 Cocoon 2 项目的目的是吸取 Cocoon 1 开发中的教训并使用它们来设计一个更有效和更 可伸缩的平台。特别是,Cocoon 1 依靠文档对象模型(Document Object Model (DOM) )API 在组件之间传递 XML 数据。DOM 是传递数据的一种低效方式,因为通常的 DOM 树会消耗几倍于原始 XML 文档的内存。这在很大程度上限制了 Cocoon 的可伸缩性。Co coon 2 是围绕 SAX API 构建的,SAX API 是操纵 XML 数据的一种轻量级方法。 两个 Cocoon 版本之间的另一个主要区别集中在应用程序管理上。在 Cocoon 1 中,个 别的 XML 文档通过包含 Cocoon 处理指令信息声明了应该如何处理它们。这将文档绑在 特定处理上,极大限制了以不同方式重用内容的灵活性。Cocoon 2 将处理的管理划分到 一个称为网站地图(sitemap)的配置文件。这将处理逻辑与内容本身分离,依次分离内 容、逻辑和显示。 |
|
-- 作者:dancewing -- 发布时间:11/4/2003 3:33:00 PM -- 什么是 XSP XML Server Pages(XSP)是一种能够创建动态 XML 数据源以便将数据传输到 Cocoon 2 管道的 Cocoon 2 技术。通过使用 XML 标记和应用逻辑的组合来描述这些数据源,然 后由 Cocoon 2 引擎自动将这种组合编译为 Java 类。 XSP 为使用 Cocoon 2 开发应用程序提供了一个灵活的平台。例如,Cocoon 2 应用程序 |
|
-- 作者:dancewing -- 发布时间:11/4/2003 3:34:00 PM -- 再谈Cocoon兼谈JSP hax(原作) 发信人: HAX(海曦), 信区: WebDevelop 标 题: 再谈Cocoon兼谈JSP 发信站: 饮水思源 (2002年06月06日01:17:17 星期四), 站内信件 著名的 IBM DW 中文网站,推出了Cocoon 2的简介教程,从而再次把我们 的目光吸引到Cocoon上。以下是我在CSDN的XML讨论区发表的个人看法, 贴过来涨点人气。 IBM的这个教程非常好,强烈推荐。BTW,IBM的DW网站比CSDN有用多了。 关于Cocoon,希望有一本《XSP/Cocoon/XML核心技术内幕》,基本上 编译了一些基本的Cocoon文档,有一定的参考价值。这也是我看到的 国内唯一的一本Cocoon的参考书。但是该书如同其它国内书籍一样, 对于基本理念的阐述不够详细和清晰。 Cocoon的原始动力是为了实现Content-Style-Logic的三层分离,这是 一个Web Engineer的很好的实践。 Cocoon也源自于以前的ServerPages技术(主要是针对JSP,当然ASP和 PHP也有同样的问题)的缺陷。尽管JSP提出了JSP Model 2,来实现 Model-View-Controller分离,即用JavaBean表示数据(内容),用 Servlet控制业务逻辑,用JSP实现显示逻辑和表现层,但还是有些实践 上的缺陷。关于这个问题的描述,在2000年10月的文章《JSP 技术 - - 是友还是敌?》(http://www-900.ibm.com/developerWorks/cn/ java/w-friend/index.shtml)中有详尽的讨论。 但是如果我们跟上技术发展的步伐,就会看到这个问题由于标签库技 术的成熟和servlet过滤器机制的诞生而得到解决。TagLib早就有了, 但是直到临近JSTL即JSP Standard Tag Library的正式发布,其威力 才真正显现。 从角色任务上看,程序员主要负责JavaBean、Servlet和编写自定义标 签库(现在可以使用JSTL从而大大减少负担);设计者编写“不包含 java代码”的JSP,实际上是若干种标记的混合,HTML+JSTL+自定义标 签。我认为这种框架比较适合于以Java程序员为主的团队,以及业务 逻辑复杂的应用。 注意,正如JSP的内嵌Java代码可以实现业务逻辑,JSP的TagLib技术, 一样可以用于实现业务逻辑。当然使用TagLib将比内嵌Java代码好 许多,因为代码被封装到了TagLib中,因此对于小的应用还是可以使 用JSP,而不用写Servlet。例如使用JSTL的sql tag,来直接处理数据 库(这实际上意味着基本没有或者只有极其简单的包含在sql语句中的 业务逻辑)。也可以用像<c:if>、<c:forEach>之类的tag来处理业务 逻辑,虽然通常应该只被用来处理显示逻辑。固然,这些功能会“引 诱”一些人过度使用TagLib的能力而破坏了设计原则,但对于原型开 发、测试以及轻量级应用,实在是太有用了!如果是企业级应用,相 信有能力做企业级应用的程序员,也会有足够的意识来按照MVC模式开 发。 Apache的Struts是一个基于JSP实现MVC的很好的框架,建议有兴趣的 同志研究研究。 而Cocoon,用XML表示数据(内容),用XSP(非常类似JSP的XML形式 )编写业务逻辑,用XSLT实现表示层(HTML、WML、某种格式的XML甚 至PDF),并用sitemap(Cocoon 2)集中管理。XSP逻辑单则与JSP的 TagLib从概念到用法非常相似,只是实现方法略有不同。JSP的TagLib 包括一个xml格式的定义文件和实现的Tag类,并被编译使用;而XSP 逻辑单则在运行时(当然可以进行Cache)应用XSLT进行从标记到代码 的转换。 (按照我对IBM教程的理解)事实上按照管道的概念,从原始数据到最 终呈现可以有任意层,至于如何分层,每个层的用途,则在于设计者。 这也是为什么Cocoon被定位于Web发布“框架”。 一个处理流程可以被描述为:(摘自IBM教程) 从用户接受请求。 确定用来解释该请求并生成响应的适当管道(使用匹配器)。 从可用的预配置的组件构造管道。 指示管道为请求服务。 将由管道生成的响应返回用户,可能对结果进行高速缓存以便以后使用。 在JSP Model 2里,Servlet扮演“调度员”的角色,我们用它来控制 任务分派,这有点类似管道所作的事情。事实上,Cocoon就是一个大 Servlet。只是Servlet在2.3之前缺乏管道机制,只能进行简单的 forward和include,如果需要多重处理机制,就不得不依靠扩展库 (比如IBM的WebSphere),或者采用Cocoon。但是现在Servlet有非 常强大的filter机制。这使得Cocoon与JSP越来越有结合的趋势。 但Cocoon的特点在于,除了核心功能(Core-Cocoon)之外,它还包括 内部组件(包括Matchers、Generators、Transformers、Serializer s、Aggregators等)、内部逻辑单(Response、Sitemap、XSP、XSP- Request、Util、XSP-Cookie、Log等)。这样它就有一个非常适合Web 发布的环境。而使用JSP,相对来说,需要自己进行配置和写部分的 |
|
-- 作者:dancewing -- 发布时间:11/4/2003 3:37:00 PM -- 有兴趣的可以去apache.org看看 |
|
-- 作者:admin -- 发布时间:11/4/2003 4:11:00 PM -- 不错不错。。加入精华区 |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
7,953.125ms |