JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--技术新闻--缓存区  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
cocoon 2是如何工作的?
作者:     文章来源:
访问次数:1次     加入时间:2005年01月01日
author:cocoonhome

虽然cocoon是一个强有力的XML发布框架,但他其实还是一个Servlet。他的职责如同其他Servlet一样,接收请求(Request)、执行处理、生成响应(Response)。Cocoon 工作时,首先捕捉到请求(Request),去匹配相应的管道(Pipeline),按管道定义执行处理,最后将处理结果返回。 

Pipeline结构

管道是一种简单雅致的结构,非常适合XML SAX的处理模式。 

管道一般是由三种Cocoon的核心组件构成。这三种组件就是:生成器(generators)、转换器(transformers), 和序列化器(serializers)。XML数据(SAX events )由一个组件相应的处理后传递到另一个组件,一直到最后被序列化成Response输出流返回给发出了相应请求(Request)的用户。

Generators, Transformers, and Serializers  

生成器(Generators)一般处于管道的头部。生成器的职责就是读取数据,然后创建要传递给其他组件的SAX 事件。在Cocoon中已经内置了一部分常用的生成器,可以用来读取XML、HTML、XSP等文件,当然我们也可以创建新的生成器来处理特殊的数据。 

序列化器(Serializers)一般是在管道的末尾,序列化器的职责是将SAX 事件流转换成适合于响应的格式。同样,在Cocoon中已经内置了一些常见的序列化器,用来生成HTML、纯文本、PDF 文档等。 

作为可选择的部分,一个或者多个转换器(Transformers)可以放置在生成器和序列化器之间。转换器允许开发人员在SAX 事件流被序列化器前做一些操作。使用最广泛的转换器是 XSLT 转换器。它将其输入传递到执行 XSLT 转换的 XSLT 处理器中,然后将转换的结果作为 SAX 事件反馈到管道。在管道中放置多个转换器可以让我们的XSL样式单变得尽可能的小。 

虽然在Cocoon中还有其他的一些很有用的组件,但是上面介绍的三个组件是Cocoon的核心,简单优美却又功能强大。

管道实例

 我们来看一个简单的"Hello World"管道,我们的这个管道按下面的定义来工作: 



使用"file generator" 来读取HelloWorld.xml文件  

使用"XSLT transformer"运行Style.xsl将XML转换成HTML格式  

使用"HTML serializer"返回给用户HMTL页面 



那么Sitemap中管道的定义看上去就是这个样子: 

...... 
<map:pipelines> 
  ...... 
  <map:pipeline> 
    <map:match pattern="HelloWorld.html"> 
      <map:generate src="HelloWorld.xml"/> 
      <map:transform src="Style.xsl"/> 
      <map:serialize/> 
    </map:match> 
  </map:pipeline> 
  ...... 
</map:pipelines>  
...... 

这样当用户请求HelloWorld.html时,Cocoon就会匹配到这个管道,并按照管道的定义读取HelloWorld.xml,用Style.xsl转换,序列化成HTML,返回给用户。 
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号