新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 什么是 Cocoon? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6087 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 什么是 Cocoon? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     dancewing 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:43
      积分:149
      注册:2003/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dancewing发送一个短消息 把dancewing加入好友 查看dancewing的个人资料 搜索dancewing在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dancewing的博客楼主
    发贴心情 什么是 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)的配置文件。这将处理逻辑与内容本身分离,依次分离内
    容、逻辑和显示。

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2003/11/4 15:32:00
     
     dancewing 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:43
      积分:149
      注册:2003/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dancewing发送一个短消息 把dancewing加入好友 查看dancewing的个人资料 搜索dancewing在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dancewing的博客2
    发贴心情 什么是 XSP
    XML Server Pages(XSP)是一种能够创建动态 XML 数据源以便将数据传输到 Cocoon
    2 管道的 Cocoon 2 技术。通过使用 XML 标记和应用逻辑的组合来描述这些数据源,然
    后由 Cocoon 2 引擎自动将这种组合编译为 Java 类。

    XSP 为使用 Cocoon 2 开发应用程序提供了一个灵活的平台。例如,Cocoon 2 应用程序
    可以显示现有应用程序数据库中的信息,而且启用了更为多样的数据发送选项。通过提
    供一种通过 XML 界面显示数据源的方法,XSP 允许在诸如中间件和文档发布那样的应用
    程序集成环境中使用 Cocoon 2。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2003/11/4 15:33:00
     
     dancewing 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:43
      积分:149
      注册:2003/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dancewing发送一个短消息 把dancewing加入好友 查看dancewing的个人资料 搜索dancewing在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dancewing的博客3
    发贴心情 再谈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,相对来说,需要自己进行配置和写部分的
    基础代码。
      
    从角色任务上看,站点管理员负责定义Sitemap,程序员主要负责XSP
    逻辑单,设计者编写XSLT样式表(包括XSLT和目标代码如HTML),因
    为程序员和设计者都使用XSLT,其实就是在写格式转换,只是编写者
    需要熟悉如何处理输入和输出(如设计者要面对HTML,程序员要考虑
    数据库)。此外,在此之前需要有额外的角色来定义所用到的XML或其
    他中间格式。我认为这种框架比较适合于非Java程序员为主的团队,
    管理员只要熟悉XML,程序员和设计者需要掌握XSLT;以及适合于业务
    逻辑相对简单,而着重于xml数据和灵活的格式转换需求的应用。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2003/11/4 15:34:00
     
     dancewing 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:43
      积分:149
      注册:2003/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dancewing发送一个短消息 把dancewing加入好友 查看dancewing的个人资料 搜索dancewing在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dancewing的博客4
    发贴心情 
    有兴趣的可以去apache.org看看
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2003/11/4 15:37:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18407
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 XML基础 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客5
    发贴心情 
    不错不错。。加入精华区

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2003/11/4 16:11:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/8/14 3:40:20

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms