<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-767  文章-3  trackbacks-3

    第三節 ?什么是Portlet

    PortletPortal中最重要的組件,負責在Portal中呈現信息內容,有相應的生命周期。通過自定義Portlet,用戶很容易定義個性化的Portal頁面。PortletPortlet容器負責管理、處理請求并返回動態頁面,可以作為Portal的可即插即用的界面組件。

    1.3.1? Portlet

    一個Portlet是以Java技術為技術的Web組件,由Portlet容器所管理,專門處理客戶的信息請求以及產生各種動態的信息內容。Portlet 為可插式的客戶界面組件,提供呈現層成為一個信息系統。

    這些由Portlet產生的內容也被稱為片段,而片段是具有一些規則的標記( HTML、XHTMLWML ),而且可以和其他的片段組合而成一個復雜的文件。一個或多個 Portlet 的內容聚合而成為一個 Portal 網頁。而 Portlet 的生命周期是被 Portlet 容器所管理控制的。

    客戶端和Portlet的互動是由Portal通過典型的請求/響應方式實現,正常來說,客戶會和Portlet所產生的內容互動,舉例來說,根據下一步的連接或者是確認送出的表單,結果 Portal將會接收到Portlet的動作,將這個處理狀況轉向到目標Portlet。這些Portlet 內容的產生可能會因為不同的使用者而有不同的變化,完全是根據客戶對于這個Portlet的設置。

    1.3.2? PortletServlet的關系

    Portlet被定義成為一個新的組件,具有新的明確的界面與行為。為了盡可能與現有的 Servlet 結合達到重復使用的目的,Portlet 的規范利用了 Servlet 的規范,許多觀念都很相似的,結合 Portlet、Servlet Jsp 在同一個網站系統中,我們稱為Portlet 應用 。在同一個 Portlet 應用 中,他們將分享同一個類加載器(ClassLoader),上下文(Context) Session

    、Portlet Servlet 的相似之處

    @ Portlet 也是 Java 技術的 web 組件
    @ Portlet
    也是有特定的 container 在管理
    @ Portlet
    可以動態產生各種內容
    @ Portlet
    的生命周期由 container 所管理
    @ Portlet
    和客戶端的互動是通過 request/response 的機制

    Portlet Servlet 也有一些不同

    @ Portlet 只產生 markup 信息片段,不是完整的網頁文件。而 Portal 會將所有的 Portlet markup 信息片段放到一個完整的 Portal 網頁。
    @ Portlet
    不會和 URL 有直接的關系
    @
    客戶端必須通過 portal 系統才能和 Portlet 互動
    @ Portlet
    有一些定義好的 request 處理,action request 以及 render request。
    @ Portlet
    默認定義 Portlet modes 及窗口狀態可以指出在網頁中該 Portlet 的哪個功能正在執行及現在的 狀態。
    @ Portlet
    可以在同一個 portal 網頁之中存在多個。

    Portlet 有一些附加的功能是 Servlet 所沒有的

    @ Portlet 能夠存取及儲存永久配置文件及定制資料。
    @ Portlet
    可以存取使用者數據
    @ Portlet
    具有 URL 的重寫功能在文件中去動態建立連結,允許 portal server 不用去知道如何在網頁的片 段之中建立連結及動作。
    @ Portlet
    可以儲存臨時性的數據在 Portlet session 之中,擁有兩個不同的范圍:
    application-wide scope
    Portlet private scope

    、Portlet 不具有一些功能, 但是 Servlet 卻有提供

    @ Servlet 具有設置輸出的文字編碼( character set encoding)方式
    @ Servlet
    可以設置 HTTP 輸出的 header
    @ Servlet
    才能夠接收客戶對于 portal 發出的 URL 請求

    1.3.3? Portlet的生命周期

    一個Portlet有著良好的生命周期管理定義了怎樣裝載,實例化和初始化,怎樣響應來自客戶端的請求及怎樣送出服務。這個Portlet生命周期由Portlet接口的init,processActionrenderdestroy方法來表達。

    載入和實例化:Portlet容器負責載入和實例化Portlet。當Portlet容器運行Portlet應用或者延遲到Portlet需要服務使用者的請求時,Portlet就會被載入并實例化。載入Portlet類后,Portlet類隨即被實例化。

    初始化:Portlet類實例化后,Portlet容器還需要初始化Portlet。以調用Portlet去響應客戶端的請求。Portlet容器呼叫Portlet接口中的init方法初始化Portlet。擴展自PortletConfig的類可以取出定義在部署描述文件中的初始化參數,以及Resource Bundle

    初始化異常: Portlet初始化期間,Portlet可能會丟出 UnavailableException PortletException 異常。此時,Portlet容器不能把 Portlet置入已啟動的服務,并且 Portlet容器必需釋放這個 Portlet。 destory方法不能被呼叫,因為初始化被認為執行失敗。發生 失敗后,Portlet容器會嘗試著重新實例化及初始化 Portlet。這個異常處理的規則是:由一個UnavailableException 指定一個不能執行的最小時間,當此異常發生時,Portlet容器必需等到指定時間過去后才產生并且初始化一個新的 Portlet。

    在初始化過程中所丟出的 Runtime Exception異常,被當作 PortletException 來處理。

    第四節? Liferay Portal工作原理

    Portal系統根據需要由一個或者多個Portal頁面組成,每個Portal頁面包含零個或者多個的Portlet。每個Portlet呈現自己的信息內容,以此實現內容聚合。通過定義每個Portlet的可用權限,實現個性化的桌面信息定制。

    1.4.1? Portlet 樣式以及窗口狀態

    圖1.4.1-1.jpg圖1.4.1-2.jpg

    JCP組織提出的JSR168規范定義了Portlet的實現標準。每個Portlet對外表現為一個小窗口,有自己的默認樣式和窗口狀態。如上圖,Portlet有自己的標題,瀏覽狀態下支持編輯、關閉、上移、下移、最大化、最小化功能,編輯狀態下支持返回和關閉功能。從各種數據來源提取的信息以Portlet內容的形式呈現在Portal中。

    Portlet樣式指出 Portlet正處于什么模式,Portlet通常會根據所處的模式而執行不同的工作并產生不同的內容。

    Portlet模式讓 Portlet決定它該顯示什么內容和執行什么動作。調用一個 Portlet的時候,Portlet 容器會提供一個 Portlet模式給那個 Portlet。當在處理一個請求動作時,Portlet 的模式是可以用程序來改變的。

    JSR168規范定義了三個Portlet模式: 瀏覽、編輯和幫助,Liferay Portal支持其中的全部三個模式。同時Portal是可以根據使用者的角色,來決定是要提供(顯示)哪幾個 Portlet 模式給使用者操作。

    例如,匿名使用者可以操作瀏覽和幫助等 Portlet 模式的內容, 而只有授權過的使用者可以操作編輯這個 Portlet 模式所提供的內容或動作。

    在瀏覽這個Portlet模式里,所被期望要提供的功能是產生標記語言來表現此時 Portlet的狀態。 舉例來說, Portlet的 瀏覽 模式可以包含一個或多個畫面讓使用者可以瀏覽與互動, 或是一些不需要與使用者互動的靜態內容。

    ?? 在編輯這個Portlet模式里, Portlet 需要提供內容和邏輯來讓使用者定制 Portlet 的行為。典型的說,編輯模式的 Portlet 會設定或更新 Portlet 的參數設定值。

    在幫助這個模式里,Portlet應該提供有關這個 Portlet的幫助信息。這個幫助信息可以是有關這個 Portlet的簡單且條理清楚的視窗說明或是詳細的說明整個來龍去脈。所有的Portlet并不需要都提供幫助這個模式。

    一個 Portlet可以根據窗口狀態來決定在一個頁面里該占多少空間。當調用一個 Portlet時, Portlet容器 需要告訴該 Portlet目前的窗口狀態。 此時 Portlet可以根據窗口狀態來決定它該對多少信息作處理。在處理請求的過程中, Portlet可以通過程序的方式來改變窗口狀態。

    posted on 2005-10-20 15:13 eamoi 閱讀(5458) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 日本亚洲欧美色视频在线播放 | 日韩视频在线观看免费| 亚洲精品成人网站在线观看| 色噜噜的亚洲男人的天堂| 国产成人99久久亚洲综合精品| 亚洲色大成WWW亚洲女子| 亚洲高清无码在线观看| 亚洲av色香蕉一区二区三区蜜桃| 毛片a级毛片免费播放下载| 亚洲婷婷在线视频| 亚洲AV网站在线观看| 毛片无码免费无码播放 | 久久久亚洲欧洲日产国码二区| 国产在线国偷精品免费看| 亚洲人成7777影视在线观看| 亚洲第一视频在线观看免费| 免费视频成人片在线观看| 国产亚洲美女精品久久| 精品亚洲aⅴ在线观看| 国产成人高清亚洲| 女人被男人桶得好爽免费视频 | 日产久久强奸免费的看| 亚洲国产一区二区视频网站| 最近中文字幕2019高清免费| 亚洲va在线va天堂va手机| 久久久久国产成人精品亚洲午夜 | 国产日本亚洲一区二区三区| 亚洲精品自产拍在线观看| 蜜桃视频在线观看免费视频网站WWW| 亚洲特级aaaaaa毛片| 国产亚洲av片在线观看18女人| 最近免费中文字幕MV在线视频3| 亚洲人成影院在线| 午夜国产精品免费观看| 亚洲人成色4444在线观看| 亚洲一区二区三区电影| 夜夜春亚洲嫩草影院| 日韩精品成人亚洲专区| 精品国产免费人成网站| 亚洲美女视频一区二区三区| 亚洲色偷偷综合亚洲AVYP|