作者:nouse 來源:downsky
cocoon是一個基于xml的Web發布框架,提供了一套機制真正實現了內容,邏輯,和表現形式的分離
cocoon具有高效的可配置性和復雜的緩存機制.
1.cocoon的安裝
cocoon本身是一個web application,需要在有servlet engine的服務器中運行。
解開cocoon的安裝包(現在穩定的版本是2.0.3),會有一個名為cocoon.war的WAR包,
這是安裝唯一用到的文件。將它Copy到TOMCAT_HOME/webapps目錄下,然后啟動Tomcat,
Tomcat會自動解開cocoon.war到TOMCAT_HOME/webapps/cocoon目錄,這時鍵入URL:
http://localhost:8080/cocoon ,假如看到cocoon的Welcome頁面,就表明Cocoon已經
成功的安裝了,非常簡單。需要注重的是,這時應該關了tomcat,將cocoon.war刪除,
原因是我們將要在以后的時間里不斷的修改和配置TOMCAT_HOME/webapps/cocoon中的文件,
而cocoon.war已經無用了。
2.cocoon是一個高度的可配置性的環境,有幾個文件是和配置有直接關系的。
TOMCAT_HOME/webapps/cocoon/WEB-INF/web.xml
TOMCAT_HOME/webapps/cocoon/WEB-INF/cocoon.xconf
TOMCAT_HOME/webapps/cocoon/WEB-INF/logkit.xconf
TOMCAT_HOME/webapps/cocoon/sitemap.xmap
cocoon本身是web application,自然有web.xml
cocoon.xconf是cocoon的配置文件,相當于jsp中的web.xml文件在JSP中的作用
logkit.xconf是cocoon的日志配置文件,靈活性很大
sitemap是cocoon的一個核心的概念,sitemap.xmap中有許多復雜的配置項,要
會配置他們,首先要對cocoon有一個整體的熟悉,隨著你對cocoon熟悉的更多,
你對sitemap.xmap的配置也就越了解
3.cocoon的基本概念
Pipeline是Cocoon2(cocoon2和cocoon1是有很大的不同的,所以無需知道任何關于
cocoon1的東西)的基本概念.Pipeline由多個cocoon 組件構成,輸入流經過Pipeline
到輸出流,每個組件會對輸入流進行處理,然后送到下一個組件處理,直到最后的
輸出。處理的組件和輸入流都是在前面提到的sitemap中配置的。
在一個應用中可以有多個Pipleline,每個Pipeline中可以有多個不同的處理,每個
處理和輸入的URL有關
4.cocoon的基本組件
Matcher :是捕捉URL地址,將其和Pipeline的一個處理流向關聯
Generator :將輸入流轉換成java 的SAX程序,為后續的處理提供SAX程序
Transformer :對Generators產生的SAX程序進行格式轉換
Serializers :對經過Generators和Transformer轉換的結果產生最后的輸出流,
輸出流可以是Html,xml,wml,jpeg,png,pdf等不同格式的文件.
XSP:全稱是eXtension Server Page,也有人叫XML Server Page,是Cocoon提供的一種
服務器腳本語言,類似于JSP或asp,但是完全基于XML的,它可以作為Generator的輸入流
5.一個簡單的URL請求處理的過程是:
cocoon在sitemap中尋找和URL匹配的Matcher項,然后對應Generator中配置的輸入流(通常是
XML文件或XSP文件A,用相關的Generator處理組件處理輸入流,接著讀取Transformer
的中的輸入流B(通常是XSL文件),Transformer組件用B對A進行格式轉換(如將XML文件
轉換為HTML格式),一個管道中可以有0個或連續多個Transformer處理,最后Serializer
組件根據Serialize的類型(html,wml,pdf,jpeg等)產生最后的輸出。
相關的Sitemap片斷
<map:pipelines>
<map:pipeline>
<map:match pattern="hello">
<map:generate src="hello.xsp" type="serverpages"/>
<map:transform src="dynamic-page2html.xsl"/>
<map:serialize/>
</map:match>
</map:pipeline>
</map:pipelines>
新聞熱點
疑難解答