author:cocoonhome
雖然cocoon是乙個強有力的xml發布框架,但他其實還是乙個servlet。他的職責如同其他servlet一樣,接收請求(request)、執行處理、生成響應(response)。cocoon
工作時,首先捕捉到請求(request),去匹配相應的管道(pipeline),按管道定義執行處理,最後將處理結果返回。
pipeline結構管道是一種簡單雅緻的結構,非常適合xmlsax的處理模式。
管道一般是由三種cocoon的核心元件構成。這三種元件就是:生成器(generators)、轉換器(transformers),和序列化器(serializers)。xml資料(saxevents)由乙個元件相應的處理後傳遞到另乙個元件,一直到最後被序列化成response輸出流返回給發出了相應請求(request)的使用者。
generators,transformers,andserializers生成器(generators)一般處於管道的頭部。生成器的職責就是讀取資料,然後建立要傳遞給其他元件的sax事件。在cocoon中已經內建了一部分常用的生成器,可以用來讀取xml、html、xsp等檔案,當然我們也可以建立新的生成器來處理特殊的資料。
序列化器(serializers)一般是在管道的末尾,序列化器的職責是將sax事件流轉換成適合於響應的格式。同樣,在cocoon中已經內建了一些常見的序列化器,用來生成html、純文字、pdf文件等。
作為可選擇的部分,乙個或者多個轉換器(transformers)可以放置在生成器和序列化器之間。轉換器允許開發人員在sax事件流被序列化器前做一些操作。使用最廣泛的轉換器是xslt轉換器。它將其輸入傳遞到執行xslt轉換的xslt處理器中,然後將轉換的結果作為sax事件反饋到管道。在管道中放置多個轉換器可以讓我們的xsl樣式單變得盡可能的小。
雖然在cocoon中還有其他的一些很有用的元件,但是上面介紹的三個元件是cocoon的核心,簡單優美卻又功能強大。
管道例項我們來看乙個簡單的"helloworld"管道,我們的這個管道按下面的定義來工作:
使用"filegenerator"來讀取helloworld.xml檔案
使用"xslttransformer"執行style.xsl將xml轉換成html格式
使用"htmlserializer"返回給使用者hmtl頁面
那麼sitemap中管道的定義看上去就是這個樣子:
這樣當使用者請求helloworld.html時,cocoon就會匹配到這個管道,並按照管道的定義讀取helloworld.xml,用style.xsl轉換,序列化成html,返回給使用者。
SSL是如何工作的
金鑰密碼系統介紹 這篇文章向大家闡述了netscape公司是如何使用rsa的公用金鑰密碼系統來實現網際網路安全的。netscape的安全套接層的實現就利用了這篇文章中所討論的技術。rsa的公用金鑰密碼系統廣泛地應用於計算機工業的認證和加密方面。netscape得到rsa資料安全公司的許可可以使用公用...
getchar是如何工作的
printf i am here n char a 0 a getchar printf first input n printf c n a a getchar printf second input n printf ci am here n a 我們輸入 1回車,執行結果如下 i am her...
BIOS是如何工作的
啟動bios 按下電源後,裝置加電,cpu會進入實模式執行,並強制設定cs和ip暫存器的值 cs 0xffff ip 0x0000或者cs 0xf000 ip 0xfff0,沒有進行驗證 則cs ip的實體地址即為0xffff0 這個位址即為bios的入口位址,則加電後cpu會去預設執行改位址儲存的...