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