阿帕奇»»

  茧3主页

茧3

特征

茧3由3层组成。每个层都打包为单独的模块:

  • 茧管
  • 蚕茧蛋白
  • 茧环

此外,还有更多可选模块:

  • 茧状模板
  • 茧控制器
  • 茧层

Cocoon管道

此模块没有任何第三方依赖项。目前,它提供了三种管道实现:

  • 非切削加工
  • 高速缓存
  • 异步缓存

它提供了一组基本的SAX组件:

  • 文件生成器
  • XSLT变压器
  • XML序列化程序
  • 包括变压器
  • 清洁变压器
  • 字符流
  • 字符串生成器

下面是一个示例:

管道<SAXPipelineComponent>Pipeline=new NonCachingPipeline<SAXPipelineComponent>();pipeline.addComponent(新的XMLGenerator(“<x></x>”));pipeline.addComponent(新XSLTTransformer(this.getClass().getResource(“/test1.xslt”));pipeline.addComponent(新的XMLSerializer());ByteArrayOutputStream baos=新的ByteArray输出流();管道设置(baos);pipeline.execute();

Cocoon网站地图

站点地图将请求(不一定是servlet请求!)与管道连接起来。下面是一个示例:

<?xml版本=“1.0”编码=“UTF-8”?><map:sitemap xmlns:map=“http://apache.org/coocoon/sitemapxmlns:servlet=“http://apache.org/coocoon/servlet"><map:pipelines><地图:管道><map:match pattern=“screen/video”><map:generate src=“video.xml”type=“stringtemplate”/><map:serialize type=“xml”/></map:match></map:pipeline(管道)></map:pipelines></map:sitemap>

茧Servlet

该模块提供了一个servlet,用于将HTTP请求与站点地图连接起来。它在Servlet-Service框架。Servlet-Service框架支持卫星间通信并提供多形性特征(例如,一个站点地图可以扩展另一个站点,从而实现后备解决方案)。

其他模块

附加模块茧状模板蚕茧控制者、和蚕茧休息简化RESTful Web服务的开发。下面是调用控制器的站点地图:

<?xml版本=“1.0”编码=“UTF-8”?><map:sitemap xmlns:map=“http://apache.org/coocoon/sitemapxmlns:servlet=“http://apache.org/coocoon/servletxmlns:controller=“http://apache.org/coocoon/controller"><map:pipelines><地图:管道><map:match pattern=“videos/{id}”><controller:呼叫控制器=“rest-controller”select=“VideoController”><map:parameter name=“id”value=“{map:id}”/></控制器:调用></map:match></map:pipeline(管道)></map:pipelines></map:sitemap>

这里是控制器:

@REST控制器公共类VideoController实现Get{@站点地图参数私有字符串id;@RequestParameter(请求参数)私有字符串详细信息;public RestResponse doGet()引发异常{Map<String,Object>data=新HashMap<String,对象>();data.put(“视频”,新视频(this.id));data.put(“详细信息”,this.details);return new Page(“servlet:/screen/video”,数据);}}

当执行这个带注释的控制器类时,sitemap参数身份证件和请求参数细节传递给控制器。

控制器实现获取接口,使其对GET请求作出反应。然后控制器调用管道servlet:/screen/video(请参阅上面一节中的网站地图)字符串模板渲染视频对象转换为XML。