免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Portal技術(shù)學(xué)習(xí)


“portlets是一種web組件-就像servlet開發(fā) s-是專為將合成頁面里的內(nèi)容聚集在一起而設(shè)計(jì)的。通常請(qǐng)求一個(gè)portal頁面會(huì)引發(fā)多個(gè)portlets被調(diào)用。每個(gè)portlet都會(huì)生成標(biāo)記段,并與別的portlets生成的標(biāo)記段組合在一起嵌入開發(fā) 到portal頁面的標(biāo)記內(nèi)?!保ㄕ詐ortlet規(guī)范,js r 168)

本文探討了以下內(nèi)容:
1.        portal頁面的元素
2.        portal是什么?
3.        portlets是什么?
4.        開發(fā)“hello world” portlet
5.        在pluto上部署helloworld portlet
6.        如何創(chuàng)建portal頁面
7.        結(jié)束語
8.        資源

  portlet規(guī)范將portlet定義為一種“基于java技術(shù)的web組件,由處理請(qǐng)求和生成動(dòng)態(tài)內(nèi)容的portlet容器管理”。這段話聽起來是不是有些費(fèi)解?本文將說明portlets是什么以及能用它們做什么。


圖1顯示了在訪問一個(gè)portal服務(wù)器開發(fā)時(shí)瀏覽器中頁面的樣子。


圖1 典型的portal服務(wù)器開發(fā)的頁面(點(diǎn)擊查看原圖)

  如果仔細(xì)查看瀏覽器里的頁面,就會(huì)看到頁面是由不同的“窗口”組成的。一個(gè)窗口用于刷新天氣,另一個(gè)用于新聞,還有一個(gè)用于刷新股價(jià),等等。這里的每一個(gè)窗口都代表了一個(gè)portlets。如果看得再仔細(xì)些,還會(huì)發(fā)現(xiàn)每個(gè)窗口都有一個(gè)標(biāo)題條和一些按鈕,包括最小化和最大化按鈕。

  在系統(tǒng)開發(fā)里,這些窗口是相互獨(dú)立開發(fā)、各不同的應(yīng)用開發(fā)。新聞portlet的開發(fā)者創(chuàng)建應(yīng)用開發(fā)并打包成war格式的文件,隨后portal服務(wù)器開發(fā)的管理員在服務(wù)器開發(fā)上部署該war文件并創(chuàng)建頁面,接下來每個(gè)用戶會(huì)選擇在他的頁面里有哪些應(yīng)用開發(fā)。例如,如果用戶對(duì)股價(jià)不感興趣而對(duì)體育感興趣,他可以用“體育”窗口替換“股價(jià)”窗口。

  portlet技術(shù)需要學(xué)習(xí)許多新概念,本文不可能全都涵蓋,因此本文分為兩部分。在第一部分里我們?cè)敿?xì)說明portals和portlets,并開發(fā)一個(gè)簡(jiǎn)單的“hello world”portlet;在第二部分我們將探討一些高級(jí)主題。

  我們將用apache的pluto服務(wù)器開發(fā)(portlet api 1.0規(guī)范的參考實(shí)現(xiàn))來測(cè)試我們的示例portlets,我們還會(huì)花些時(shí)間探討如何安裝和使用pluto服務(wù)器開發(fā)

portal頁面的元素

圖2顯示了portal頁面的各種元素。


圖2 portal頁面的元素

  每個(gè)portlet頁面由一個(gè)或多個(gè)portlet窗口組成,每個(gè)portlet窗口又分為兩部分:一個(gè)是外觀,它決定了portlet窗口的標(biāo)題條、控制和邊界的樣式;另一個(gè)是portlet段,它由portlet應(yīng)用開發(fā)填充。

  portal服務(wù)器開發(fā)決定了portal頁面的整體觀感,像標(biāo)識(shí)、標(biāo)題條顏色、控制圖標(biāo)等。通過修改幾個(gè)js p和css模板文件就可以改變portal的整個(gè)觀感。我們將在“如何創(chuàng)建portal頁面”部分對(duì)此做深入討論。

portal是什么?

  在了解portlet之前有必要先了解portal。在portlet規(guī)范里是這樣講的:“portal是一種web應(yīng)用開發(fā),通常用來提供個(gè)性化、單次登錄、聚集各個(gè)信息源的內(nèi)容,并作為信息系統(tǒng)開發(fā)表現(xiàn)層的宿主。聚

此文來自: 馬開東博客 轉(zhuǎn)載請(qǐng)注明出處 網(wǎng)址: http://www.makaidong.com

集是指將來自各個(gè)信息源的內(nèi)容集成到一個(gè)web頁面里的活動(dòng)”。

  portal的功能可以分為三個(gè)主要方面:
1.        portlet容器:portlet容器與servlet開發(fā) 容器非常類似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并為其提供必要的資源和環(huán)境信息。portlet容器負(fù)責(zé)初始化和銷毀portlets,向portlets傳送用戶請(qǐng)求并合成響應(yīng)。
2.        內(nèi)容聚集:portlet規(guī)范中規(guī)定portal的主要工作之一是聚集由各種portlet應(yīng)用開發(fā)生成的內(nèi)容,我們將在“如何創(chuàng)建portal頁面”部分對(duì)此做進(jìn)一步討論。
3.        公共服務(wù):portlet服務(wù)器開發(fā)的一個(gè)強(qiáng)項(xiàng)是它所提供的一套公共服務(wù)。這些服務(wù)并不是portlet規(guī)范所要求的,但portal的商業(yè)實(shí)現(xiàn)版本提供了豐富的公共服務(wù)以有別于它們的競(jìng)爭(zhēng)者。在大部分實(shí)現(xiàn)中都有望找到的幾個(gè)公共服務(wù)有:
         o 單次登錄:只需登錄portal服務(wù)器開發(fā)一次就可以訪問所有其它的應(yīng)用開發(fā),這意味著你無需再分別登錄每一個(gè)應(yīng)用開發(fā)。例如一旦我登錄了我的intranet網(wǎng)站,我就能訪問mail應(yīng)用開發(fā)、im消息應(yīng)用開發(fā)和其它的intranet應(yīng)用開發(fā),不必再分別登錄這些應(yīng)用開發(fā)。
  portal服務(wù)器開發(fā)會(huì)為你分配一個(gè)通行證庫。你只需要在mail應(yīng)用開發(fā)里設(shè)定一次用戶名和密碼,這些信息將以加密的方式存儲(chǔ)在通行證庫中。在你已登錄到intranet網(wǎng)站并要訪問mail應(yīng)用開發(fā)的時(shí)候,portal服務(wù)器開發(fā)會(huì)從通行證庫中讀取你的通行證替你登錄

此文來自: 馬開東博客 轉(zhuǎn)載請(qǐng)注明出處 網(wǎng)址: http://www.makaidong.com

到mail服務(wù)器開發(fā)上。你對(duì)其它應(yīng)用開發(fā)的訪問也將照此處理。
          o個(gè)性化:個(gè)性化服務(wù)的基本實(shí)現(xiàn)使用戶能從兩方面?zhèn)€性化她的頁面:第一,用戶可以根據(jù)她的自身喜好決定標(biāo)題條的顏色和控制圖標(biāo)。第二,用戶可以決定在她的頁面上有哪些portlets。例如,如果我是個(gè)體育迷,我可能會(huì)用一個(gè)能提供我鐘愛球隊(duì)最新信息的portlet來取代股票和新聞portlets。
        一些在個(gè)性化服務(wù)方面領(lǐng)先的商業(yè)實(shí)現(xiàn)版本允許你建立為用戶顯示什么樣的應(yīng)用開發(fā)所依據(jù)的標(biāo)準(zhǔn)(如收入和興趣)。在這種情況下,可以設(shè)定一些像“對(duì)任何收入為x的用戶顯示饋贈(zèng)商品的portlet”和“對(duì)任何收入為x的用戶顯示打折商品的portlet”這樣的商業(yè)規(guī)則。

        此外還有一些公共服務(wù),比如機(jī)器翻譯,是由portal服務(wù)器開發(fā)將portlet生成的內(nèi)容翻譯為用戶要求的語言。大部分的商業(yè)portal服務(wù)器開發(fā)都支持手持設(shè)備訪問并具有針對(duì)不同的瀏覽終端生成不同內(nèi)容的能力。

portlets是什么?

  與servlet開發(fā) s類似,portlets是部署在容器內(nèi)用來生成動(dòng)態(tài)內(nèi)容的web組件。從技術(shù)角度講portlet是一個(gè)實(shí)現(xiàn)了javax.portlet.portlet接口的類,它被打包成war文件格式部署到portlet容器里。

  portlets在以下方面與servlet開發(fā) s相似:
1.        portlets由特定的容器管理。
2.        portlets生成動(dòng)態(tài)內(nèi)容。
3.        portlet的生命周期由容器管理。
4.        portlets通過請(qǐng)求/響應(yīng)模式與web客戶端交互。

  portlets在以下方面與servlet開發(fā) s相異:
1.        portlets只能生成標(biāo)記段,而不是整個(gè)文檔。
2.        portlets沒有可供直接訪問的url地址。不過你還是能夠讓別人通過url訪問到portlet,你可以把包含該portlet的頁面的url發(fā)給他。
3.        portlets不能隨意地生成內(nèi)容,這是因?yàn)閜ortlet生成的內(nèi)容最終要成為portal頁面的一部分。如果portal服務(wù)器開發(fā)要求的是html/text類型,那么所有的portlets都應(yīng)生成html/text類型的內(nèi)容。再比方說,如果portal服務(wù)器開發(fā)要求的是wml類型,那么所有的portlets都應(yīng)生成wml類型的內(nèi)容。

  portlets還提供了一些附加的功能:
1.        設(shè)置參數(shù)的持久化存儲(chǔ):portlets提供了一個(gè)portletpreferences對(duì)象用來保存用戶的設(shè)置參數(shù)。這些參數(shù)被存入一個(gè)持久化其他數(shù)據(jù)庫 ,這樣服務(wù)器開發(fā)重啟后數(shù)據(jù)依然有效。開發(fā)者不必關(guān)心這些數(shù)據(jù)存儲(chǔ)的具體實(shí)現(xiàn)機(jī)制。
2.        請(qǐng)求處理:portlets提供了更為細(xì)粒度的請(qǐng)求處理。對(duì)于用戶在portlet上動(dòng)作時(shí)向該portlet發(fā)出的請(qǐng)求(一種稱為活躍期的狀態(tài)),或者因用戶在其它portlet上動(dòng)作而引發(fā)的刷新頁面請(qǐng)求,portal服務(wù)器開發(fā)提供了兩種不同的回調(diào)開發(fā)方法 來處理。
3.        portlet模式:portlets用模式的概念來表示用戶在做什么。在使用mail應(yīng)用開發(fā)的時(shí)候,你可能會(huì)用它來讀信、寫信或檢查信件――這些都是mail應(yīng)用開發(fā)的預(yù)定功能,portlets通常以view模式提供這些功能。但還有一些活動(dòng),像指定刷新時(shí)間或(重新)設(shè)置用戶名和密碼,這些活動(dòng)允許用戶定制應(yīng)用開發(fā)的行為,因此它們用的是edit模式。mail應(yīng)用開發(fā)的幫助功能用的是help模式。

  如果仔細(xì)想想其實(shí)這里面并沒有什么新東西,它們反而大部分都是普通的業(yè)務(wù)需求。portlet規(guī)范的作用在于它提供了一個(gè)抽象層,這才是它對(duì)所有與之相關(guān)的人-最終用戶、開發(fā)者和管理員-的價(jià)值所在。

  作為一個(gè)開發(fā)者,我會(huì)將所有與view模式有關(guān)的業(yè)務(wù)邏輯放入doview()開發(fā)方法 ,將與應(yīng)用開發(fā)配置有關(guān)的業(yè)務(wù)邏輯放入doedit()開發(fā)方法 ,將與幫助有關(guān)的邏輯放入dohelp()開發(fā)方法

  這就簡(jiǎn)化了管理員對(duì)portlet應(yīng)用開發(fā)的訪問控制管理,因?yàn)樗恍韪淖僷ortlet的訪問權(quán)限就能決定用戶能做什么。例如,如果mail應(yīng)用開發(fā)的一個(gè)用戶能夠在edit模式下設(shè)定用戶名和密碼,那么就可以斷定他具有edit模式訪問權(quán)限。

  不妨考慮這樣一種情形:我是一個(gè)intranet網(wǎng)站的管理員,我的公司買了一個(gè)能顯示新聞信息的第三方portlet應(yīng)用開發(fā),該應(yīng)用開發(fā)允許用戶指定跟蹤新聞更新的url地

此文來自: 馬開東博客 轉(zhuǎn)載請(qǐng)注明出處 網(wǎng)址: http://www.makaidong.com

址,我想借助它為用戶顯示公司的內(nèi)部新聞。另一個(gè)需求是我不想讓用戶通過該應(yīng)用開發(fā)來跟蹤任何其它的新聞信息來源。作為管理員,我可以為所有的用戶指定一個(gè)用于內(nèi)部新聞更新的url地址,同時(shí)通過改變portlet應(yīng)用開發(fā)的部署描述符來取消其它人修改該地址的權(quán)限。

  由于所有的portlet應(yīng)用開發(fā)都具有相似的ui界面,因此采用portlets可使網(wǎng)站對(duì)最終用戶更具吸引力。如果她想閱讀任何一個(gè)應(yīng)用開發(fā)的幫助信息,她可以點(diǎn)擊幫助按鈕;她也知道點(diǎn)擊編輯按鈕能讓她進(jìn)入應(yīng)用開發(fā)的配置屏。標(biāo)準(zhǔn)化的用戶界面使你的portlet應(yīng)用開發(fā)更引人。

4.        窗口狀態(tài):窗口狀態(tài)決定了portal頁面上留給portlet生成內(nèi)容的空間。如果點(diǎn)擊最大化按鈕,portlet將占據(jù)整個(gè)屏幕,成為用戶唯一可用的portlet;而在最小化狀態(tài),portlet只顯示為標(biāo)題條。作為開發(fā)者應(yīng)當(dāng)根據(jù)可用空間的大小來定做內(nèi)容。

5.        用戶信息:通常portlets向發(fā)出請(qǐng)求的用戶提供個(gè)性化的內(nèi)容,為了能更加行之有效,portlets需要訪問用戶的屬性信息,如姓名、email、電話等。portlet api為此提供了用戶屬性的概念,開發(fā)者能夠用標(biāo)準(zhǔn)的方式訪問這些屬性,并由管理員負(fù)責(zé)在這些屬性與真實(shí)的用戶信息其他數(shù)據(jù)庫 (通常是ldap服務(wù)器開發(fā))之間建立映射關(guān)系。

  我們將在本文的第二部分深入討論這些特點(diǎn)-請(qǐng)求處理、用戶信息和portlet模式。

開發(fā)"hello world" portlet

  現(xiàn)在我們就來開發(fā)一個(gè)簡(jiǎn)單的helloworld portlet。
1.        創(chuàng)建一個(gè)名為helloworld的web項(xiàng)目,它與通常的servlet開發(fā) 項(xiàng)目類似,有一個(gè)/web-inf/web.xml文件作為項(xiàng)目的部署描述符。

2.        在build path里加入portlet-api-1.0.jar文件,該jar文件是pluto發(fā)行包的一部分。

3.        在source文件夾中按如下內(nèi)容創(chuàng)建helloworld.java文件:

public class helloworld extends genericportlet{  protected void doview(renderrequest request,  renderresponse response) throws  portletexception, ioexception {        response.setcontenttype("text/html");        response.getwriter().println("hello portlet");        }}

  每個(gè)portlet都要實(shí)現(xiàn)portlet接口,該接口為portlet定義了生命周期開發(fā)方法 。由于不想覆蓋所有這些開發(fā)方法 ,我們只對(duì)genericportlet類進(jìn)行擴(kuò)展,它是一個(gè)實(shí)現(xiàn)了portlet接口的適配器類。genericportlet類提供了所有生命周期開發(fā)方法 的默認(rèn)實(shí)現(xiàn),所以我們只需實(shí)現(xiàn)我們所需要的開發(fā)方法 。

  我們?cè)?helloworld portlet里要做的只是顯示“hello portlet”,所以我們將覆蓋genericportlet類的doview()開發(fā)方法 ,該開發(fā)方法 以portletrequest 和 portletresponse作為參數(shù)。在doview()開發(fā)方法 中首先調(diào)用response.setcontenttype()以通知portlet容器該portlet將要生成何種類型的內(nèi)容-如果不這樣做就會(huì)導(dǎo)致illegalstateexception異常。一旦設(shè)置了內(nèi)容的類型,就可以從response對(duì)象中獲得printwriter并開始寫入。

4.        每個(gè)portlet應(yīng)用開發(fā)在/web-inf文件夾中都有一個(gè)portlet.xml文件,它是portlet應(yīng)用開發(fā)的部署描述符。按以下內(nèi)容創(chuàng)建portlet.xml文件:

<portlet>  <description>helloworlddescription        </description>    <portlet-name>helloworld        </portlet-name>    <display-name>hello world        </display-name>    <portlet-class>com.test.helloworld        </portlet-class>    <expiration-cache>-1        </expiration-cache>        <supports>          <mime-type>text/html</mime-type>      <portlet-mode>view          </portlet-mode>        </supports>    <supported-locale>en        </supported-locale>        <portlet-info>          <title>hello world</title>          <short-title>hello world          </short-title>          <keyword s>hello,pluto</keyword s>      </portlet-info></portlet>

  <portlet-name>元素聲明了portlet的名字,<portlet-class>元素指定了portlet的全限定類名,<expiration-cache>元素以秒為單位指定了內(nèi)容超期的時(shí)間。這里面有一點(diǎn)需要注意:你在portlet上的某些動(dòng)作可能會(huì)導(dǎo)致內(nèi)容刷新,這與緩存時(shí)間無關(guān)。
  <supports>元素指定對(duì)于給定的<mime-type>有哪些模式可供支持。在示例中我們假定helloworld只能生成text/html類型的內(nèi)容,且只有view模式可支持該內(nèi)容類型。如果要增加對(duì)其它內(nèi)容類型的支持,需要添加新的<support>元素并指定支持該mime類型的模式有哪些。通常portlet對(duì)于text/html類型有view、edit和help模式可供支持,而對(duì)于wml mime類型則只有view模式。
  還可以用<supported-locale>元素來指定portlet支持哪些本地化。<title>元素用來指定portlet的標(biāo)題。如果要對(duì)標(biāo)題做國際化處理,可以用元素<resource-bundle>指定資源(比例properties文件)的文件名。在這種情況下,容器將根據(jù)用戶所在的地區(qū)從適當(dāng)?shù)膒roperties文件中選擇標(biāo)題。

5.        每個(gè)portlet應(yīng)用開發(fā)都是一個(gè)web應(yīng)用開發(fā),因此除了portlet.xml文件之外還需要有web.xml文件。

<web-app>  <display-name>hello world portlet  </display-name>  <welcome-file-list    <welcome-file>index.js p        </welcome-file>  </welcome-file-list></web-app>

6.        接下來將這些文件進(jìn)行編譯并打包為war文件。你可以自己完成這些工作,或者下載帶有build.xml 的示例代碼(參見“資源”部分)來創(chuàng)建war文件。
在pluto上部署helloworld portlet

  pluto尚處于開發(fā)階段的早期,因此還沒有一套易于使用的管理開發(fā)工具。為了能使用pluto服務(wù)器開發(fā),需要將編譯和源代碼兩個(gè)版本都下載。需要注意的是以下說明是針對(duì)windows平臺(tái)的,unix用戶通過修改斜杠符號(hào)和執(zhí)行sh shell腳本(不是bat批命令文件)會(huì)得到類似的結(jié)果。

1.        創(chuàng)建一個(gè)文件夾,比如c:\plutoinstallation。
2.        從pluto的網(wǎng)站下載pluto-1.0.1-rc1.zip和pluto-src-1.0.1-rc1.zip。
3.        將pluto-1.0.1-rc1.zip解壓到c:\plutoinstallation.文件夾,它應(yīng)被解壓到c:\plutoinstallation\pluto-1.0.1-rc1文件夾下。
4.        執(zhí)行c:\plutoinstallation\pluto-1.0.1-rc1\bin\startup.bat啟動(dòng)pluto,現(xiàn)在可以通過地址http://localhost:8080/pluto/portal訪問pluto服務(wù)器開發(fā)。
5.        將pluto-src-1.0.1-rc1.zip解壓到c:\plutoinstallation\plutosrc文件夾。
6.        進(jìn)入c:\plutoinstallation\plutosrc文件夾,執(zhí)行maven distribute:all.,編譯并下載運(yùn)行常規(guī)管理任務(wù)所必需的相關(guān)資源文件。現(xiàn)在可以將helloworldportlet.war作為portlet進(jìn)行安裝了。
7.        首先將helloworldportlet.war文件拷貝到c:\plutoinstallation\portlets目錄,如果沒這個(gè)目錄就創(chuàng)建它。
8.        將c:\plutoinstallation\plutosrc\build.properties.sample更名為build.properties。
9.        編輯build.properties,將maven.tomcat.home指向pluto編譯版的安裝位置,在本例中應(yīng)改為maven.tomcat.home=c:/plutoinstallation/pluto-1.0.1-rc1。
10.        為了安裝portlet,進(jìn)入c:\plutoinstallation\plutosrc\deploy文件夾,執(zhí)行maven deploy -ddeploy=c:\plutoinstallation\portlets\helloworldportlet.war,應(yīng)能看到“build successful”信息。
11.        在c:\plutoinstallation\pluto-1.0.1-rc1\webapps文件夾下,應(yīng)該有一個(gè)helloworldportlet文件夾。
12.        現(xiàn)在進(jìn)入c:\plutoinstallation\pluto-1.0.1-rc1\webapps\helloworld\web-inf\ folder文件夾,打開portlet的web.xml文件,你會(huì)發(fā)現(xiàn)里面自動(dòng)多了幾行,如下所示:

<servlet開發(fā) >  <servlet開發(fā) -name>helloworld</servlet開發(fā) -name>     <display-name>helloworld wrapper</display-name>      <description>automated generated      portlet wrapper</description>      <servlet開發(fā) -class>org.apache.pluto.core.portletservlet開發(fā)       </servlet開發(fā) -class>      <init-param>         <param-name>portlet-class</param-name>         <param-value>com.test.helloworld         </param-value>      </init-param>      <init-param>         <param-name>portlet-guid</param-name>         <param-value>hellopluto.helloworld         </param-value>      </init-param></servlet開發(fā) >
13.        接下來我們將該portlet加到頁面里。進(jìn)入c:\plutoinstallation\pluto-1.0.1-rc1\webapps\pluto\web-inf\data文件夾,可以看到有兩個(gè)xml文件:pageregis地理信息系統(tǒng) try.xml和portletentityregis地理信息系統(tǒng) try.xml。
14.        portletentityregis地理信息系統(tǒng) try.xml包含了portlet的定義,在該文件中加入以下幾行:

 <application id="5">   <definition-id>helloworld</definition-id>     <portlet id="1">       <definition-id>helloworld.helloworld</definition-id>     </portlet></application>
  應(yīng)用開發(fā)的<definition-id>應(yīng)為web應(yīng)用開發(fā)所在文件夾的名字,portlet的<definition-id>應(yīng)與web.xml中生成的portlet-guid相一致。
15.        pageregis地理信息系統(tǒng) try.xml定義了頁面中包含了哪些portlets,對(duì)該文件做如下改動(dòng):

  <fragment name="p2" type="portlet">    <property name="portlet" value="5.1"/></fragment>
16.        執(zhí)行shutdown命令和startup命令重啟pluto服務(wù)器開發(fā),返回到地址http://localhost:8080/pluto/portal并點(diǎn)擊“test link”-此時(shí)頁面中將出現(xiàn)我們的

helloworld portlet。

圖3的右側(cè)顯示了helloworld portlet看上去的樣子。


圖3 portlet的屏幕截圖

如何創(chuàng)建portal頁面

圖4顯示了portal容器如何將分離的portlets組裝為頁面。


圖4 創(chuàng)建portal頁面

  大部分的portal服務(wù)器開發(fā)基本上都是部署于應(yīng)用開發(fā)服務(wù)器開發(fā)上的web應(yīng)用開發(fā),通過servlet開發(fā) 來處理訪問portal服務(wù)器開發(fā)的請(qǐng)求。查看一下pluto的安裝目錄就會(huì)發(fā)現(xiàn)pluto不過是一個(gè)部署于tomcat服務(wù)器開發(fā)上的一個(gè)普通web應(yīng)用開發(fā),再看看c:\plutoinstallation\pluto-1.0.1-rc1\webapps\pluto\web-inf\web.xml會(huì)發(fā)現(xiàn)所有發(fā)往pluto服務(wù)器開發(fā)的請(qǐng)求都被映射到org.apache.pluto.portalimpl.servlet開發(fā) 上。

  在本文開始部分“portal頁面的元素”中,我們提到portal頁面由兩部分組成。一部分是由頁面中的portlets生成的內(nèi)容,另一部分是由portal服務(wù)器開發(fā)生成的內(nèi)容。

  在pluto里,只要用戶發(fā)出請(qǐng)求,就會(huì)由servlet開發(fā) 進(jìn)行控制,根據(jù)用戶所請(qǐng)求的頁面來確定需要顯示的portlets的列表。一旦生成了列表,servlet開發(fā) 就將控制轉(zhuǎn)給這些portlets線程并收集由它們生成的內(nèi)容。

  對(duì)于由portal服務(wù)器開發(fā)生成的內(nèi)容(像portal網(wǎng)站的觀感及每個(gè)portlet的外觀和控制之類)則取決于c:\plutoinstallation\pluto-1.0.1-rc1\webapps\pluto\web-inf\aggregation文件夾下的js p文件。rootfragment.js p是主js p文件,它決定了整體的觀感和對(duì)齊方式;它還包含了heads以定義在生成的頁面中的<head>標(biāo)簽里的內(nèi)容。tabnavigation.js p用來選擇在banner中該顯示什么(默認(rèn)情況下在banner顯示列表中也包擴(kuò)了pluto.png圖片)。tabnavigation.js p用來確定portal網(wǎng)站的導(dǎo)航方案。這意味著只需改動(dòng)該文件夾下少量的幾個(gè)js p文件,就能改變整個(gè)portal網(wǎng)站的觀感。

  pluto根據(jù)pageregis地理信息系統(tǒng) try.xml中的設(shè)置確定頁面中有多少行,并用rowfragment.js p去填充。columnfragment.js p用來填充每個(gè)欄目。portletfragmentheader.js p用來填充每個(gè)portlet的頁頭,像標(biāo)題條及最大化和最小化控制。footer.js p用來填充js p

搜索此文相關(guān)文章:Portal技術(shù)學(xué)習(xí)此文鏈接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%89%9B/17154.shtml轉(zhuǎn)載請(qǐng)注明出處:Portal技術(shù)學(xué)習(xí) - 博客園


感謝你的支持,我會(huì)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
什么是Portlet ?
hello world: websphere portal v5 最簡(jiǎn)單的 portlet:第 1 部分,創(chuàng)建和部署
基于 Struts 2 構(gòu)建 WebSphere Portal 上的 Portlet 應(yīng)用
有話好好說: 幾種開源Portal的簡(jiǎn)單介紹分析
Pluto Portlet容器的體系結(jié)構(gòu)
Java開源Portal門戶類別列表
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服