什么是Portal?
Portal是一個基于web的應用程序,它主要提供個性化、單點登錄、不同來源的內(nèi)容整合以及存放信息系統(tǒng)的表示層。
什么是Portlet?
Portlet是基于java技術的web組件,它由portlet容器管理、并處理請求,并動態(tài)生成輸出內(nèi)容。
Portlet的輸出是一個片段,即不是一個完整的頁面。
Portal標準
為規(guī)范Portal,SUN于2003年底制定了JSR168,它定義了portlet標準,并給出了一個實現(xiàn)接口。
Portlets與Servlet的異同?
相同點
基于web應用的java技術
由特定的容器管理
動態(tài)生成內(nèi)容
生命周期由容器進行管理
通過request/reponse進行交互
不同點
portlet只生成片段
portlet并不直接綁定到某一個URL上
portlet通過portal進行交互
portlet可以多次在同一個portal頁面上同時出現(xiàn)
portlet優(yōu)點
能訪問到用戶配置信息
能在不同的域中存儲會話:應用程序級到私有級。
portlet與servlet的關系
前者能調(diào)用后者,并且能共享信息,包括:Attributes
portlet容器是servlet容器的擴展
portlet無法做到的事情
設置response的字符集編碼
設置http header
獲取客戶端的request
Portlets實例
如果是在普通的場合下使用,即不是在分布式場合,則每個portal應用就會生成一個portlet實例。而如果是在分布式場合下使用的話,則每個jvm只有一個實例。
Portlet生命周期
Portlet接口的四個方法構成一個完整的生命周期:init, processAction,render,destroy
public void init(PortletConfig config) throws PortletException;
由portlet容器調(diào)用,在將portlet放入服務區(qū)前調(diào)用。portlet容器在初始化portlet后,直接調(diào)用這個方法。
public void processAction (ActionRequest request, ActionResponse response)
throws PortletException, java.io.IOException;
由portlet容器調(diào)用,用來處理action request。
public void render (RenderRequest request, RenderResponse response)
throws PortletException, java.io.IOException;
由portlet容器調(diào)用,用來生成輸出。
public void destroy();
將portlet從服務區(qū)中刪除。
Portlet URLs
如何生成Portlet URL
RenderResponse.createActionURL
RenderResponse.createRenderURL
調(diào)用setParameter、setParameters可以用來設置參數(shù).
如何使用Portlet URL
開發(fā)者不可以對參數(shù)進行任何編碼,它(編碼)是由portlet容器進行的。見下面例子:
PortletURL url = response.createRenderURL();
url.setParameter(“customer”,”foo.com”);
url.setParameter(“show”,”summary”);
writer.print(“Summary”);
portlet URL可以包含portlet的模式及窗口的狀態(tài),見下面例子:
PortletURL url = response.createActionURL();
url.setParameter(“paymentMethod”,”creditCardInProfile”);
url.setWindowState(WindowState.MAXIMIZED);
writer.print(“ ”);
setSecure方法用來設置是否是https。
Portal是一個基于web的應用程序,它主要提供個性化、單點登錄、不同來源的內(nèi)容整合以及存放信息系統(tǒng)的表示層。
什么是Portlet?
Portlet是基于java技術的web組件,它由portlet容器管理、并處理請求,并動態(tài)生成輸出內(nèi)容。
Portlet的輸出是一個片段,即不是一個完整的頁面。
Portal標準
為規(guī)范Portal,SUN于2003年底制定了JSR168,它定義了portlet標準,并給出了一個實現(xiàn)接口。
Portlets與Servlet的異同?
相同點
基于web應用的java技術
由特定的容器管理
動態(tài)生成內(nèi)容
生命周期由容器進行管理
通過request/reponse進行交互
不同點
portlet只生成片段
portlet并不直接綁定到某一個URL上
portlet通過portal進行交互
portlet可以多次在同一個portal頁面上同時出現(xiàn)
portlet優(yōu)點
能訪問到用戶配置信息
能在不同的域中存儲會話:應用程序級到私有級。
portlet與servlet的關系
前者能調(diào)用后者,并且能共享信息,包括:Attributes
portlet容器是servlet容器的擴展
portlet無法做到的事情
設置response的字符集編碼
設置http header
獲取客戶端的request
Portlets實例
如果是在普通的場合下使用,即不是在分布式場合,則每個portal應用就會生成一個portlet實例。而如果是在分布式場合下使用的話,則每個jvm只有一個實例。
Portlet生命周期
Portlet接口的四個方法構成一個完整的生命周期:init, processAction,render,destroy
public void init(PortletConfig config) throws PortletException;
由portlet容器調(diào)用,在將portlet放入服務區(qū)前調(diào)用。portlet容器在初始化portlet后,直接調(diào)用這個方法。
public void processAction (ActionRequest request, ActionResponse response)
throws PortletException, java.io.IOException;
由portlet容器調(diào)用,用來處理action request。
public void render (RenderRequest request, RenderResponse response)
throws PortletException, java.io.IOException;
由portlet容器調(diào)用,用來生成輸出。
public void destroy();
將portlet從服務區(qū)中刪除。
Portlet URLs
如何生成Portlet URL
RenderResponse.createActionURL
RenderResponse.createRenderURL
調(diào)用setParameter、setParameters可以用來設置參數(shù).
如何使用Portlet URL
開發(fā)者不可以對參數(shù)進行任何編碼,它(編碼)是由portlet容器進行的。見下面例子:
PortletURL url = response.createRenderURL();
url.setParameter(“customer”,”foo.com”);
url.setParameter(“show”,”summary”);
writer.print(“Summary”);
portlet URL可以包含portlet的模式及窗口的狀態(tài),見下面例子:
PortletURL url = response.createActionURL();
url.setParameter(“paymentMethod”,”creditCardInProfile”);
url.setWindowState(WindowState.MAXIMIZED);
writer.print(“ ”);
setSecure方法用來設置是否是https。