JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--J2EE  
文章搜索:
关键字 标题
  
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是如何工作的?
作者:未知     文章来源:www.jspcn.net
访问次数:181次     加入时间:2005年01月19日
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号