锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
// 鍒濆鍖?/font>
// 鍒濆鍖杙ortlets.
// 鍒濆鍖杁isplay.
// 鍒濆鍖杔ayout妯℃澘.
// 鍒濆鍖朤heme.
// 媯鏌ompany
// 鍏跺畠鍐呭...
// 鍝嶅簲鏈嶅姟
// Portlet Request Processor - 鍦╯truts.config涓畾涔?
// 鐧誨綍澶勭悊.
// 澶勭悊service鍓嶇疆浜嬩歡.
// 璋冪敤Struts鐨剆ervice鏂規硶.
// 澶勭悊Sruts鍚庣疆浜嬩歡.
// portal鐨凴equestProcessor.
string path = processPath(req, res) // PortalRequestProcessor閲嶈澆
ActionMapping mapping = processMapping(req, res, path);
processRoles(req, res, mapping) // PortalRequestProcessor閲嶈澆
ActionForm from = processActionForm(req, res, mapping);
processForward(req, res, mapping);
processInclude(req, res, mapping);
Action action = processActionCreate(req, res, mapping);
ActionForward forward = processActionPerform(req, res, action, form, mapping);
processForwardConfig(req, res, forward); // TilesRequestProcessor閲嶈澆
processTilesDefinition(forward.getPath(), forward.getContextRelative(), req, res);
Controller.execute(); // 杈撳嚭/portal/layout.jsp
/html/portal/layout/view/portlet.jsp - portlet甯冨眬瑙嗗浘欏甸潰.
// 璇誨彇妯℃澘鍐呭錛屾ā鏉跨敱liferay-layout-templates.xml鏂囦歡瀹氫箟.
// 娉ㄥ叆妯℃澘澶勭悊紼嬪簭
portal.servlet.MainServlet.init()
// process startup events
StartupAction.run()
String[] xmls = new String[] {
Http.URLtoString(ctx.getResource("/WEB-INF/portlet.xml")),
Http.URLtoString(ctx.getResource("/WEB-INF/portlet-ext.xml")),
Http.URLtoString(ctx.getResource("/WEB-INF/liferay-portlet.xml")),
Http.URLtoString(ctx.getResource("/WEB-INF/liferay-portlet-ext.xml")),
Http.URLtoString(ctx.getResource("/WEB-INF/web.xml"))
};
PortletLocalServiceUtil.initEAR(xmls)
String xml = Http.URLtoString(ctx.getResource(
"/WEB-INF/liferay-display.xml"));
PortletCategory newPortletCategory =
PortletLocalServiceUtil.getEARDisplay(xml);
portletCategory.merge(newPortletCategory);
String[] xmls = new String[] {
Http.URLtoString(ctx.getResource(
"/WEB-INF/liferay-layout-templates.xml")),
Http.URLtoString(ctx.getResource(
"/WEB-INF/liferay-layout-templates-ext.xml"))
};
LayoutTemplateLocalUtil.init(ctx, xmls)
String[] xmls = new String[] {
Http.URLtoString(ctx.getResource(
"/WEB-INF/liferay-look-and-feel.xml")),
Http.URLtoString(ctx.getResource(
"/WEB-INF/liferay-look-and-feel-ext.xml"))
};
ThemeLocalUtil.init(ctx, xmls)
CompanyLocalServiceUtil.checkCompany(_companyId);
portal.servlet.MainServlet.service()
// get portalContext
ServletContext ctx = getServletContext();
ServletContext portalCtx = ctx.getContext(
PrefsPropsUtil.getString(_companyId, PropsUtil.PORTAL_CTX));
// Struts module config
ModuleConfig moduleConfig = getModuleConfig(req);
portletReqProcessor = PortletRequestProcessor.getInstance(this, moduleConfig);
EventsProcessor.process(PropsUtil.getArray(PropsUtil.SERVLET_SERVICE_EVENT_PRE), req, res);
callParentService(req, res);
EventsProcessor.process(PropsUtil.getArray(PropsUtil.SERVLET_SERVICE_EVENTS_POST), req, res);
// struts鐨凙ctionServlet.
ActionServlet.process(HttpServletRequest req, HttpServletResponse res)
processor.process(req, res);
portal.struts.PortalRequestProcessor.process(HttpServletRequest req, HttpServletResponse res)
// struts鐨凴equestProcessor
RequestProcessor.process(HttpServletRequest req, HttpServletResponse res)
// tiles鐨凴equestProcessor
TilesRequestProcessor.processForwardConfig(req, res, forward)
/html/portal/layout.jsp - portal甯冨眬欏甸潰.
String content = LayoutTemplateLocalUtil.getContent(
layoutTypePortlet.getLayoutTemplateId(), false, theme.getThemeId());
涓嬮潰鏄竴涓竴鍒楃殑妯℃澘:
錛渄iv id="layout-content-outer-decoration"錛?br /> 錛渄iv id="layout-content-inner-decoration"錛?br /> 錛渄iv id="layout-content-container"錛?br /> $processor.processColumn("column-1")
錛?div錛?br /> 錛?div錛?br /> 錛?div錛?br />
// 澶勭悊妯℃澘
portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(
application, pageContext, request, response, content);
TemplateProcessor processor = new TemplateProcessor(ctx, req, res, portletId);
VelocityContext context = new VelocityContext();
context.put("processor", processor);
// 澶勭悊妯℃澘
Velocity.evaluate(context, pageContext.getOut(),
RuntimePortletUtil.class.getName(), content);
]]>
2錛?span style="FONT: 7pt 'Times New Roman'">
Portlet
銆備負
Portlet
鎺ュ彛閮ㄥ垎錛屽湪鏂扮紪鍐?/span>
Portlet
鏃跺潎闇瑕佺洿鎺ュ疄鐜版鎺ュ彛鎴栫戶鎵垮凡瀹炵幇姝ゆ帴鍙g殑
Portlet
綾?/span>
(
濡?/span>
GenericPortlet)
錛屾鎺ュ彛鎺у埗浜?/span>
Portlet
鐨勬暣涓?/span>
Lifecycle
錛屾牴鎹?/span>
JSR168
瑙勮寖錛屽皢
Portlet
鐨?/span>
Lifecycle
鍒掑垎涓轟簡涓変釜闃舵錛?/span>
(1) init
銆傚垵濮嬪寲姝?/span>
Portlet
錛屽湪涓涓?/span>
Lifecycle
涓?/span>
Portlet
鍙彲鍒濆鍖栦竴嬈°傞氳繃浼犲叆鐨?/span>
PortletConfig
鍙幏寰?/span>
PortletContext
銆?/span>
(2) handlerRequest
銆傚湪姝ら樁孌佃鑼冨皢鍏跺垎涓轟簡
processAction
浠ュ強
render
涓ょ姒傚康錛?/span>
processAction
琛ㄧず姝?/span>
Portlet
涓庣敤鎴風殑浜や簰榪囩▼鐨勫鐞嗭紱
render
鍒欎富瑕佹帶鍒朵簡
Portlet
鐨勫唴瀹圭殑鏄劇ず錛岀敤浜庣粍瑁?/span>
Portlet
鐨?/span>
fragment
錛堜笉濂界炕璇戯紝
^_^
錛夈?/span>
(3)destroy
銆傜粨鏉熸
Portlet
鐨?/span>
Lifecycle
錛屽彲鍦ㄦ閮ㄥ垎榪涜
Portlet
鐨勪竴浜涜祫婧愮殑鍥炴敹絳夊伐浣溿?/span>
Portlet
瀹瑰櫒閫氳繃
Portlet
鐨勪竴涓爣璇嗙璋冪敤
Portlet
鐨勬帴鍙h繘琛屼笌
Portlet
鐨勪氦浜掋?/span>
Portlet
鎺ュ彛渚濊禆
PortletConfig
銆?/span>
ActionRequest
銆?/span>
ActionResponse
銆?/span>
RenderRequest
銆?/span>
RenderResponse
錛岃繖鍜?/span>
Servlet
闈炲父鐨勭浉浼箋?/span>
3錛?span style="FONT: 7pt 'Times New Roman'">
PortletRequest
銆傛鎺ュ彛綾諱技
HttpServletRequest
錛岄氳繃姝ゆ帴鍙h幏鍙栨墍鏈変笌褰撳墠
Portlet
鐩稿叧鐨勫弬鏁般?/span>
Portlet
鐨?/span>
Mode
銆?/span>
Portlet
鐨?/span>
WindowState
銆?/span>
Portal
鐨勪笂涓嬫枃鐜銆?/span>
Portlet
鐨?/span>
Preference
銆?/span>
PortletSession
銆?/span>
4錛?span style="FONT: 7pt 'Times New Roman'">
ActionRequest
銆傛鎺ュ彛緇ф壙鑷?/span>
PortletRequest
錛岄氳繃姝ゆ帴鍙e湪
Portlet
鐨?/span>
processAction
涓氳繃
ActionRequest
鍙幏寰楃浉鍏崇殑
Portlet
鐨勪氦浜掑紡璇鋒眰鐨勫弬鏁般?/span>
5錛?span style="FONT: 7pt 'Times New Roman'">
RenderRequest
銆傛鎺ュ彛緇ф壙鑷?/span>
PortletRequest
錛岀洰鍓嶈鑼冧腑姝ゆ帴鍙d腑鏈畾涔変換浣曟柟娉曘?/span>
6錛?span style="FONT: 7pt 'Times New Roman'">
PortletResponse
銆傛鎺ュ彛綾諱技涓?/span>
HttpServletResponse
錛屾彁渚涢〉闈㈡樉紺?/span>
Portlet
鏃剁殑涓浜涘唴瀹圭殑鍐欏叆銆?/span>
7錛?span style="FONT: 7pt 'Times New Roman'">
ActionResponse
銆傛鎺ュ彛緇ф壙鑷?/span>
PortletResponse
錛屾彁渚涗簡浜や簰鐩稿叧鐨勮緗?/span>
PortletMode
浠ュ強鍏?/span>
WindowState
鐨勬柟娉曘?/span>
8錛?span style="FONT: 7pt 'Times New Roman'">
RenderResponse
銆傛鎺ュ彛緇ф壙鑷?/span>
PortletResponse
錛屾彁渚涗簡瀹屽叏綾諱技浜?/span>
HttpServletResponse
鐨勬柟娉曪紝鐢變簬
Portlet
鍙彁渚涚墖鏂紡鐨勫唴瀹癸紝鍜?/span>
Servlet
鎻愪緵涓涓畬鏁寸殑欏甸潰鍐呭涓嶅悓錛屽湪
response
鏃舵棤娉曡緗〉闈㈢殑
contentType
絳夌浉鍏崇殑欏甸潰澶寸駭鐨勪笢瑗褲?/span>
9錛?span style="FONT: 7pt 'Times New Roman'">
PortletConfig
銆傛鎺ュ彛闈炲父綾諱技浜?/span>
ServletConfig
錛岀敤浜庤幏鍙?/span>
Portlet
閰嶇疆鏂囦歡
(portlet.xml)
涓殑鍒濆鍙傛暟錛岀被浼間簬
ServletConfig
鑾峰彇
web.xml
涓殑鍒濆鍙傛暟錛岄氳繃
PortletConfig
鍙幏鍙?/span>
Portlet
鐨勭浉鍏充笂涓嬫枃瀵硅薄
PortletContext
銆?/span>
10錛?span style="FONT: 7pt 'Times New Roman'">
WindowState
銆傛鍏蜂綋綾葷敤浜庡畾涔?/span>
Portlet
鎵鏀寔鐨?/span>
WindowState
銆?/span>
11錛?span style="FONT: 7pt 'Times New Roman'">
PortletMode
銆傛鍏蜂綋綾葷敤浜庡畾涔?/span>
Portlet
鎵鏀寔鐨?/span>
Mode
錛堥粯璁ゆ彁渚涚殑涓?/span>
View
銆?/span>
Edit
銆?/span>
Help
錛夈?/span>
Portlet
瀹瑰櫒鍘傚晢鍙牴鎹渶瑕佹彁渚涚壒孌婄殑
Mode
銆?/span>
12錛?span style="FONT: 7pt 'Times New Roman'">
PortalContext
銆傛鎺ュ彛綾諱技浜?/span>
ServletContext
錛岀敤浜庤幏鍙?/span>
Portal
鐩稿叧鐨勪笂涓嬫枃淇℃伅錛屽
Portal
鐨勬彁渚涘晢淇℃伅絳夌瓑銆?/span>
13錛?span style="FONT: 7pt 'Times New Roman'">
PortletPreference
銆傛鎺ュ彛涓昏鐢ㄤ簬鑰冭檻
Portlet
鐨勪釜鎬у寲瀹氬埗鐨勬暟鎹殑淇濆瓨錛屾鎺ュ彛騫朵笉浠h〃瑕佹浛浠g敤浜庝繚瀛樹釜鎬у寲瀹氬埗淇℃伅鐨勬暟鎹簱錛屽彲鐢ㄤ簬淇濆瓨涓浜涙暟鎹噺涓嶅ぇ鎯呭喌涓嬬殑鐗規畩鍋忓ソ銆?/span>
14錛?span style="FONT: 7pt 'Times New Roman'">
PreferenceValidator
銆傛鎺ュ彛鐢ㄤ簬媯嫻?/span>
portlet.xml
涓殑
Preference
鍙傛暟鐨勫悎娉曟с?/span>
15錛?span style="FONT: 7pt 'Times New Roman'">
PortletSession
銆傛鎺ュ彛闈炲父綾諱技浜?/span>
HttpSession
錛岀敤浜庝覆鎺?/span>
Portlet
涓殑
Session
鏁版嵁銆?/span>
16錛?span style="FONT: 7pt 'Times New Roman'">
PortletContext
銆傛鎺ュ彛鐢ㄤ簬鑾峰彇涓?/span>
Portlet
瀹瑰櫒鐩稿叧鐨勪笂涓嬫枃淇℃伅銆?/span>
import Java.io.IOException;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
public class HelloWorldPortlet extends GenericPortlet {
@Override
protected void doEdit(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
// TODO Auto-generated method stub
arg1.setContentType("text/html");
arg1.getWriter().println("Hello World,This is a Portlet!---doEdit");
}
@Override
protected void doView(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
// TODO Auto-generated method stub
arg1.setContentType("text/html");
arg1.getWriter().println("Hello World,This is a Portlet!---doView");
}
}
package com.rain.portal;
import Java.io.IOException;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
public class HelloJSPPortlet extends GenericPortlet {
@Override
protected void doEdit(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
// TODO Auto-generated method stub
arg1.setContentType("text/html");
String jspName=getPortletConfig().getInitParameter("edit-jsp");
PortletRequestDispatcher rd=getPortletContext().getRequestDispatcher(jspName);
rd.include(arg0, arg1);
}
@Override
protected void doView(RenderRequest arg0, RenderResponse arg1) throws PortletException, IOException {
// TODO Auto-generated method stub
arg1.setContentType("text/html");
String jspName=getPortletConfig().getInitParameter("view-jsp");
PortletRequestDispatcher rd=getPortletContext().getRequestDispatcher(jspName);
rd.include(arg0, arg1);
}
}
GenericPortlet 緇熶竴瀹氫箟浜嗗彲渚?/span> Portal 瀹瑰櫒璇嗗埆鍜岃皟鐢ㄧ殑鏂規硶錛屽寘鎷細
public Init() 錛氬垵濮嬪寲錛?/span>
public Init(PortletConfig) 錛氬垵濮嬪寲錛?/span>
public getInitParameter(String) 錛氬彇寰楀湪 Portlet.xml 涓畾涔夌殑鍒濆鍖栧弬鏁幫紱
public getInitParameterNames() 錛氬彇寰楀湪 Portlet.xml 涓畾涔夌殑鍏ㄩ儴鍒濆鍖栧弬鏁幫紱
public getPortletConfig() 錛氬彇寰楀寘鍚垵濮嬪寲鍙傛暟鐨勯厤緗璞?/span> PortletConfig 瀹炰緥錛?/span>
public getPortletContext() 錛氬彇寰?/span> Portlet 涓婁笅鏂囷紱
public getPortletName() 錛氬彇寰楀湪 Portlet.xml 涓畾涔夌殑 Portlet 鍚嶇О銆?/span>
public getResourceBundle(Locale) 錛氬彇寰?/span> Portlet 鍥介檯鍖栫殑 Resource Bundle 錛?/span>
protected getTitle(RenderRequest) 錛氬彇寰?/span> Portlet 鐨勬爣棰橈紱
protected doView(RenderRequest 錛?/span> RenderResponse) 錛?/span> Portlet 嫻忚妯″紡鐨勫鐞嗘柟娉曪紱
protected doEdit(RenderRequest 錛?/span> RenderResponse) 錛?/span> Portlet 緙栬緫妯″紡鐨勫鐞嗘柟娉曪紱
protected doHelp(RenderRequest 錛?/span> RenderResponse) 錛?/span> Portlet 甯姪妯″紡鐨勫鐞嗘柟娉曪紱
protected doDispatch(RenderRequest 錛?/span> RenderResponse) 錛?/span> Portlet 琛屼負鍒嗗彂錛?/span>
protected processAction(ActionRequest 錛?/span> ActionResponse) 錛?/span> Portlet 澶勭悊 Action Request 鐨勬柟娉曪紱
protected render(RenderRequest 錛?/span> RenderResponse) 錛?/span> Portal 澶勭悊 Render Request 鐨勬柟娉曪紱
public destroy() 錛?/span> Portlet 閿姣侊紝緇堟鍏剁敓鍛藉懆鏈熴?/span>
鍦?/span> Portlet Portal 榪愯鐨勬椂鍊欙紝 doView 銆?/span> doEdit 銆?/span> doHelp 涓変釜鏂規硶鍒嗗埆琚皟鐢紝鐢ㄤ互鐢熸垚 Portlet 鏍囪銆傚悓鏍蜂篃鍙互璋冪敤 Servlet 鐢熸垚 Portlet 鏍囪錛屾垨鑰呬笉璋冪敤 JSP 鎴栬?/span> Servlet 錛岀洿鎺ュ湪鏂規硶涓緱鍒?/span> PrintWriter 鐒跺悗鐢ㄦ渶綆鍗曠殑 pw.println() 鎵撳嵃鍑哄唴瀹廣傝繖涓繃紼嬬被浼?/span> Servlet 錛屽涓嬶細
PrintWriter pw = renderResponse.getWriter();
pw.println(“Hello 錛?/span> world!”);
涓?/span> Servlet 綾諱技錛屽彲浠ヤ嬌鐢?/span> getInitParamter(String s) 寰楀埌閰嶇疆鏂囦歡涓?/span> Portlet 鐨勫垵濮嬪鹼紝鍙笉榪?/span> Servlet 鍦?/span> web.xml 涓紝鑰?/span> Portlet 鍦?/span> portlet.xml 涓?br />portlet.xml錛?/span>
<init-param>
<value>
</init-param>
閽堝濡備笂portlet.xml涓殑鍒濆鍖栦俊鎭紝鍙互閲囩敤濡備笅鐨勮皟鐢ㄦ柟寮忥細
SimplePortlet.java 錛?/span>
String jspName = getPortletConfig().getInitParameter("jspView");
璁稿澶у瀷浼佷笟鐨勭綉绔? 娓愭笎閲囩敤浜?portal server 浣滀負寮鍙戠殑鍩虹. 鑷充簬浠涔堟槸 portal 鍛? 涓枃緲昏瘧涓?"闂ㄦ埛緗戠珯"銆?鏈変漢鍙兘鎯?. 澶╂潃鐨?. 闂ㄦ埛緗戠珯涓嶆槸灝卞儚 yahoo, pchome, yam 絳夌瓑銆備笉榪? 鎴戜滑鐜板湪璁ㄨ鐨?portal server, 涓嶆槸閭d箞鍦扮畝鍗? 鍩烘湰涓?yahoo, pchome, yam 閭d簺鍙兘縐頒負鎼滅儲寮曟搸鐨勯棬鎴風綉绔欍?
濡傛灉浣犱粠鏉ユ矑鏈夌敤榪?portal server 鎴栨槸浼兼噦闈炴噦.. 澶у鍙互榪炵粨鍒?MyNetscape 鎴?MyYahoo 鍘?娉ㄥ唽涓涓笎鍙楓傚洜涓?MyNetscape 鐨勬牱寮忔瘮杈冨ソ鐪? 鎵浠ユ垜鎺ヤ笅鏉ュ氨浠?MyNetscape 涓轟粙緇嶇殑鑼冧緥銆?
濡傛灉浣犵涓嬈℃帴瑙﹀埌 portal錛屼綘浼氭儕璁剁殑鍙戠幇... 鍝?. 涓轟綍涓涓綉绔欓噷闈㈠厖婊′簡榪欎箞澶氬皬紿楀彛. 鎴戜滑縐拌繖浜涘皬紿楀彛鍙仛 "portlet"錛岃屼笖姣忎釜灝忕獥鍙i兘瀛樺湪鐫鐙珛鐨勪俊鎭笌鍐呭錛屽彲浠ユ斁鍒版渶澶у寲錛岀緝灝忥紝榪樺師錛屽叧闂瓑絳夈傚綋浣犵櫥闄嗕箣鍚庯紝鍙互閫夋嫨鍙婅皟鏁磋嚜宸?portlet 鐨勯厤緗紝涔熷彲浠ヨ緗嚜宸卞枩鐖辯殑椋庢牸涓庢牱寮忥紝鏇村彲浠ヨ緗瘡涓?portlet 鐨勮祫鏂欓厤緗傝繖縐嶄互瀹㈡埛涓轟笂甯濈殑緋葷粺錛屽氨鏄垜浠皢瑕佷粙緇嶇殑 portal銆?
Portal 鐨勭粍鎴愬彲浠ュ垎涓轟笁閮ㄤ喚 (1) Portal Server (2) Portlet Container (3) Portlet
... +--javax.servlet.http.HttpServlet | +--org.apache.jetspeed.portlet.Portlet | +--org.apache.jetspeed.portlet.PortletAdapter | +--com.myCompany.myApplication.myPortlet
鍥犳錛孭ortlet鏄竴綾葷壒孌婄殑Servlet錛岃兘鏂逛究鐨勬彃鍏ortal Server錛屽茍鍦ㄥ叾涓婅繍琛屻備笌 servlet 涓嶅悓錛宲ortlet 鏃犳硶鐩存帴鍙戦侀噸瀹氬悜鎴栭敊璇俊鎭埌嫻忚鍣紝浠ュ強杞彂璇鋒眰鎴栬呭啓涓撶敤鏍囪鍒拌緭鍑烘祦銆?/p>
涓?servlet 鐩告瘮錛孭ortlet鏈夋洿寮虹殑鍔ㄦ佹э紝鍙湪涓嶉噸鏂板惎鍔?Portal Server 鐨勬儏鍐典笅榪涜鏇存柊錛?/p>
Portlet瀹瑰櫒渚濊禆浜嶫2EE浣撶郴緇撴瀯銆侾ortlet 琚墦鍖呮垚綾諱技浜嶫2EE Web搴旂敤鐨刉AR鏂囦歡錛屽茍鎸夌被浼間簬 servlet 鐨勬柟寮忛儴緗層備笌鍏跺畠 servlet 鐩鎬技錛屼嬌鐢?servlet 閮ㄧ講鎻忚堪絎︼紙web.xml錛夋妸 portlet 瀹氫箟鍒板簲鐢ㄧ▼搴忔湇鍔″櫒錛岃繖涓枃浠跺畾涔?portlet 鐨勭被鏂囦歡鍜屽彧璇誨垵濮嬪寲鍙傛暟銆傞櫎姝や箣澶栵紝portlet榪樺繀欏繪彁渚涗竴涓猵ortlet鐨勯儴緗叉弿榪扮錛坧ortlet.xml錛夋潵鎶妏ortlet瀹氫箟鍒皃ortal server
JSR 鏄敱 JCP ( www.jcp.org ) 榪欎釜 Java 緇勭粐鎵瀹氫箟鍑烘潵鐨勮鑼冦傚嚑涔庢瘡涓?JSR 閮戒細浜у嚭 TCK* 鍙?RI**
*TCK ( Technology Compatibility Kit ) 鍏煎鎬ф祴璇曠粍浠?br />*RI ( Reference Implementation ) 瀹炵幇鍙傝?
2003/10/27 JSR#168 Portlet Spec 1.0 宸茬粡姝e紡鍏竷銆備互鍚? 澶у灝卞彲浠ュ紑濮嬫牴鎹繖涓鑼冨紑鍙戝吋瀹規х殑浜у搧銆傝岃繖涓爣鍑嗚鑼冧功鐨?RI 灝辨槸閲囩敤 Apache Jakarta Pluto 鍐ョ帇鏄熻鍒掋傝嚦浜庝負浣曞彨鍋氬啣鐜嬫槦,鎴戠寽鏄?Sun 鎯寵鎶婂厜鑺掑皠鍒板啣鐜嬫槦閮戒細鍙戝厜鍚?:P
鐩墠 pluto 灝氭湭鏈夋寮忕殑鐗堟湰閲婃斁, 灝嗘潵鏈夊叴瓚g殑浜哄彲浠ヤ粠 jakarta 緗戠珯涓嬭澆銆備笉榪囩洰鍓嶆垜鐢?CVS 鍙栧緱鐗堟湰宸茬粡鍙互姝e父榪愯浜嗐傚畨瑁呯殑鏂規硶鍗佸垎綆鍗?. 鍙渶瑕佹墽琛?%pluto%/bin/install 灝卞彲浠ュ畨瑁呬簡錛屽畨瑁呰繃紼嬩細璇㈤棶浣?tomcat 鐨勭洰褰曪紝鍋囪浣?tomcat 鏍圭洰褰曟槸 c:\tomcat4.1.27 錛屼綘杈撳叆 c:\tomcat4.1.27 灝卞彲浠ヤ簡銆?
鎺ョ潃 http://localhost:8080/pluto/portal 灝卞彲浠ョ湅鍒板緢婕備寒鐨?portal 鐣岄潰錛岃嚦浜庢搷浣滄ā寮忎笌鏂規硶闈炲父綆鍗曪紝璇峰鍔犳搷鎺у氨鍙互鎱㈡參浜嗚В portlet 鐨勬帶鍒舵柟娉曚簡銆?
鍦?portlet spec 涓畾涔夌殑鎺у埗鏈夊垎涓?
1) 鍩烘湰鐨?Portlet Modes
VIEW - 浣犳病鏈夊仛浠諱綍鍔ㄤ綔浠呬粎鍋氬唴瀹規樉紺?br />EDIT - 緙栬緫鐩稿叧鐨勮緗?br />HELP - 瀵繪眰甯姪
2) 鍩烘湰鐨?Window States
NORMAL - 榪樺師 portlet 紿楀彛
MAXIMIZED - 鏈澶у寲 portlet 紿楀彛
MINMIZED - 鏈灝忓寲 portlet 紿楀彛
鍏跺疄, 榪欎簺鍔ㄤ綔閮藉凡緇忕敱 portal 鎵瀹炵幇錛宲ortlet container 灝嗘帴鏀朵笌鍥炲簲鐩稿叧鐨勫姩浣溿傜湡姝e湪紼嬪簭寮鍙戜笂騫朵笉浼氳冭檻鍒拌繖浜涚粏鑺傦紝闄ら潪浣犺鍋氫竴鍊?portlet container銆傝屽紑鍙戜笂瑕佽冭檻鐨勬槸浠涔堜漢鑳藉鍋氫粈涔堜簨鎯呫備緥濡傝灝氭湭鐧婚檰鐨勪漢搴旇鍙兘澶?doView / doHelp錛岃屼笉鑳藉 doEdit 榪欑鏉冮檺綆℃帶鏈哄埗鐨勫紑鍙戙?
鍥犳 css 鐨勫畾涔夊浜庡叿鏈夊畾鍒跺姛鑳界殑 portal 鏄浉褰撻噸瑕佺殑銆?
涓昏鍖呮嫭錛歅luto錛孡iferay錛宔Xo,Jetspeed鍥涚寮婧怭ortal鐨勪粙緇嶅拰鍒嗘瀽錛屾湁鍔╀簬瀵瑰叿浣撻」鐩夋嫨鍚堥傜殑寮鍙戝鉤鍙般?
錛?錛?font color="#421ae6">Pluto
2003騫?0鏈圝SR168瑙勮寖1.0姝e紡鍏竷鍚庯紝Jakarta Apache灝卞紑濮嬪疄鏂絇luto璁″垝錛堝啣鐜嬫槦璁″垝錛夛紝鏈緇堝紑鍙戝嚭璇ヨ鑼冪殑涓涓弬鑰冨疄鐜幫紙Reference Implementation錛夛紝鍗砅luto銆侾luto鐨?.0.1-rc2鐗堜笌2004騫?2鏈堝彂甯冦?br />Pluto瀹炵幇鍩轟簬 JSR168鐨勪竴涓?Portlet Container錛岀浉褰撲簬涓哄紑鍙戣呮彁渚涗簡涓涓繍琛宲ortlets鐨勫伐浣滃鉤鍙般侾luto鏈韓涔熸彁渚涗簡涓涓畝鍗曠殑Portal妯″潡錛岃妯″潡浠呬粎鏄負浜嗘弧瓚砅ortlet瀹瑰櫒鍜孞SR 168鐨勯渶瑕佽屽啓鐨勶紝鍥犺屾樉寰楅潪甯哥畝鍗曪紝鎻愪緵鐨勫疄鐢ㄧ殑Portlet涔熼潪甯稿皯銆備粠鏌愮鎰忎箟涓婅Pluto鏇村儚鏄竴涓狿ortlet Container錛屼綔涓轟竴涓疄鐢ㄧ殑Portal寮鍙戞鏋跺皻闇瑕佹洿寮哄ぇ鐨勬敮鎸併備絾鏂扮増鏈殑Pluto浠嶆病鏈夋帹鍑恒傚浜嶱luto鐨勫簲鐢ㄥ紑鍙戯紝Apache鏇存帹鑽愪嬌鐢↗etspeed欏圭洰妗嗘灦銆?br />灝界Pluto浣滀負涓涓畬鏁寸殑Portal搴旂敤榪橀潪甯告瑺緙恒備絾涓嶅皯鏈夊獎鍝嶅姏鐨凱ortal欏圭洰浣跨敤Pluto浣滀負Portlet Container銆傝繖浜涢」鐩寘鎷細Jetspeed 銆丆ocoon uPortal 銆丣ahia絳夈傜敱姝ゅ彲瑙丳luto鐨勯噸瑕佹с備粠寮鍙戣呭拰瀛︿範鑰呯殑瑙掑害鐪嬶紝Pluto鐨勬剰涔夎繕鍦ㄤ簬涓哄紑鍙戣呭拰瀛︿範鑰呮彁渚涗簡涓涓繁鍏ヤ簡瑙ortlet Container鐨勭畝媧佺殑鍙傝冨疄渚嬨?
錛?錛?font color="#421ae6">Liferay
Liferay錛堟敮鎸丣SR168錛変唬琛ㄤ簡瀹屾暣鐨凧2EE搴旂敤 錛屾渶楂樼増鏈槸2005騫?鏈堟帹鍑虹殑Professional 3.2.0銆傚畠鐨勪富瑕佷紭鐐規湁錛?br /> 錛?錛変嬌鐢ㄧ涓夋斁鐨勫紑婧愰」鐩紝濡侶ibernate絳夈傜壒鍒槸鍓嶅彴鐣岄潰閮ㄥ垎浣跨敤浜哠truts鎶鏈紱
錛?錛夋敮鎸佸寘鎷腑鏂囧湪鍐呯殑澶氱璇█錛?br /> 錛?錛夋敮鎸佽緝澶氱殑鍏堣繘鎶鏈紝濡俉eb Services銆丒JB, JMS, SOAP, XML絳夛紱
Liferay鐨勭己鐐規槸瀹冪己涔忎竴涓畝鍗曟竻鏅板彲鎷撳睍鐨勬灦鏋勮璁★紝鏁翠釜鏋舵瀯姣旇緝澶嶆潅涓斿簽澶э紱Struts1.1鏈韓騫朵笉鏀寔JSR168錛屾墍浠iferay鍦ㄥ疄鐜拌濡備笂涓嬫枃鍏變韓絳夐棶棰樹笂鏄懼緱鍗佸垎絎ㄩ噸涓旀病鏈変粠鏍規湰涓婅В鍐寵繖浜涢棶棰橈紱portlet璁捐涔熸樉寰楁瘮杈冨噷涔便傛澶栵紝濡傛灉浣犵殑闂ㄦ埛緋葷粺鍑嗗搴旂敤浜庡晢涓氱敤閫旓紝浣犻渶瑕佽喘涔癓icense銆傚熀浜庡畠榪涜浜屾寮鍙戞瘮杈冨洶闅俱?br />
錛?錛?font color="#421ae6">eXo
eXo(鏀寔JSR168)鍩轟簬JSF鐨凱ortal瀹炵幇銆傛渶鏂扮増鏈槸2004騫?0鏈堝彂甯冪殑1.0RC1鐗堛?br />涓昏浼樼偣鍖呮嫭錛?br />錛?錛?#160;鐢盇OP錛圓spectJ錛夊疄鐜扮殑鍐呭綆$悊緋葷粺錛屾瀬澶ф彁楂樹簡鍐呭綆$悊鎬ц兘錛?br />錛?錛?#160;鍩轟簬Pico Container鐨凱ortlet Container錛孭ico鏄竴涓憲鍚嶇殑IoC3杞婚噺綰у鍣ㄣ傚悓鏃朵篃瀹炵幇浜嗕笂涓嬫枃鍏變韓錛屼簩嬈″紑鍙戠殑嫻佺▼姣旇緝娓呮櫚錛?br />錛?錛?#160;浣跨敤Struts妗嗘灦鎶鏈紱
錛?錛?#160;鎻愪緵宸ヤ綔嫻佹妧鏈湇鍔★紙Workflow service錛夈?br />錛?錛?#160;鎻愪緵浜嗗緢澶氫氦嫻佸伐鍏鳳紝閫氳繃XML鍙互涓虹粨鏋勫寲鐨勪俊鎭交鏄撳湴鍒涘緩瑙嗗浘錛?br /> 鐢變笂鍙eXo閲囩敤浜嗚澶氬厛榪涙妧鏈紝浣嗗瓨鍦ㄤ笉灝戠己鐐廣備富瑕佺己鐐癸細鐢變簬Portal Server鏈韓鐨勬暟鎹槸浣跨敤xmldb鏉ヨ繘琛屽鐞嗭紝淇濆瓨鍒版暟鎹簱鐨勬暟鎹兘鏄貢鐮佽屼笖瀹冩墍鏈夐粯璁ょ殑騫沖彴瀛楃闆嗛兘鏄疘SO-8859_1銆傜己涔忎腑鏂囩殑鍏呭垎鏀寔錛屽浜庝腑鏂囬棬鎴風殑寮鍙戝茍娌℃湁浼樺娍錛涚敱浜嶫SF鏄噸閲忕駭鐨勮〃鐜板眰妗嗘灦錛屼嬌寰梕xo鐨勪簩嬈″紑鍙戝伐浣滈噺姣旇緝澶э紱瀵逛簬鍟嗕笟Portal搴旂敤寮鍙戦渶瑕佽喘涔癓icense銆傛諱綋寮鍙戦毦搴﹁緝澶с?
(4) JetSpeed
JetSpeed鏄疉pache緇勭粐鐨勫紑婧怭ortal欏圭洰銆侸etspeed 鐩墠鏈変袱涓増鏈彲渚涢夋嫨1.X鍜?.0鐗堟湰銆侸etspeed1.X鍑虹幇寰楁瘮杈冩棭錛屼絾絎竴涓緝涓烘垚鐔熺殑鐗堟湰鍙戝竷鏄?.4銆傛鍚?.X涓嶆柇鎺ㄥ嚭鏂扮増鏈備絾Jetspeed1.X閮戒笉鏀寔JSR168銆傚綋JSR168鍦?003騫村彂甯冨悗錛孉pche寮濮嬪紑鍙慗etspeed2錛屾彁渚涘JSR168 鐨勫叏闈㈡敮鎸併?
涓嬭〃鏄疛etspeed閲嶈鐗堟湰鐨勫彂甯冩棩鏈燂細
Jetspeed鐨勯噸瑕佺増鏈?#160; 鍙戝竷鏃ユ湡
Jetspeed-1.4b2 2002騫?2鏈?br />Jetspeed-1.5 2004騫?鏈?br />Jetspeed-2.0-M1 2004騫?2鏈?br />Jetspeed-2.0-M2 2005騫?鏈?br />Jetspeed1.X鍩轟簬Turbine妗嗘灦寮鍙戯紝瀹冩彁渚涗簡涓板瘜鐨凱ortal鎶鏈姛鑳姐備富瑕佷紭鐐規湁錛歑ML鏂囦歡娉ㄥ唽Portlet錛屼究浜庣鐞嗭紱鍥懼艦鍖栫殑閮ㄧ講鍜屽嵏杞斤紱瀵逛腑鏂囩殑鑹ソ鏀寔絳夈傚煎緱娉ㄦ剰鐨勬槸IBM鏃╂湡鐨刉ebSphere Portal Server灝辨槸鍦↗etSpeed1.X涓婅繘琛屼簩嬈″紑鍙戠殑銆侸etspeed2.0鍦?.X鍩虹涓婅繘琛屼簡杈冨ぇ鐨勬敼鍔紝鍔熻兘鏇村姞涓板瘜錛屽畬鍏ㄩ伒寰狫SR鏍囧噯銆?
閰嶇疆鏂規硶錛屼笉鍚岀殑鐗堟湰鐨勯厤緗彲鑳芥湁鍙樺寲錛屽涓嶆垚鍔燂紝鍙互鑷瀵熺湅鏂囨。銆?
Pulto鍦═omcat涓嬬殑瀹夎閰嶇疆鏂規硶錛?br />錛?錛?#160;浠?
涓嬭澆鏈鏂扮殑浜岃繘鍒剁増鏈畨瑁呮枃浠?/font>
錛?錛?#160;鎵ц%pluto%/bin/install錛屽皢瀹冨畨瑁呭埌Tomcat鐩綍涓嬪嵆鍙?br />錛?錛?#160;鍦ㄦ祻瑙堝櫒涓緭鍏ワ細
錛岃繍琛孭luto
http://localhost:8080/pluto/portal
http://portals.apache.org/pluto/mirrors.cgi
Liferay Professional鍦═omcat涓嬬殑瀹夎閰嶇疆鏂規硶錛?br />錛?錛?#160;浠? 涓嬭澆Liferay Professional瀹夎鏂囦歡 錛?br />錛?錛?#160;瑙e帇ZIP鍖呭埌鏌愪釜鐩綍涓?br />錛?錛?#160;鑻ヤ笅杞絋omcat鐗堟湰鐨凩iferay瀹夎鏂囦歡錛屽垯涓嶉渶鍐嶈Tomcat錛岀洿鎺ュ惎鍔╞in鐩綍涓嬬殑startup.bat鏂囦歡銆?br />錛?錛?#160;鍦ㄦ祻瑙堝櫒涓緭鍏?/font> 榪愯Liferay Professional銆?/font> http://localhost/ http://www.liferay.com/downloads/index.jsp
eXo Platform鍦═omcat涓嬬殑瀹夎閰嶇疆鏂規硶錛?br />錛?錛?#160;浠? 涓嬭澆eXo Platform鐨勫畨瑁呭寘 銆?br />錛?錛?#160;瑙e帇ZIP鍖呭埌鏌愪釜鐩綍涓?br />錛?錛?#160;鑻ヤ笅杞絋omcat鐗堟湰鐨別Xo瀹夎鏂囦歡錛屽垯涓嶉渶鍐嶈Tomcat錛岀洿鎺ュ惎鍔╞in鐩綍涓嬬殑startup.bat鏂囦歡銆?br />錛?錛?#160; 鍦ㄦ祻瑙堝櫒涓緭鍏?/font> 榪愯eXo Platform. http://localhost/ http://www.exoplatform.com/portal/faces/public/exo
Jetspeed2鍦═omcat涓嬬殑瀹夎閰嶇疆鏂規硶錛?br />錛?錛?#160;浠? 涓嬭澆Jetspeed2 M1鎴朚2鐗堟湰瀹夎鍖?/font> 銆?br />錛?錛?#160;鑻ユ槸瀹夎鍖呬腑宸茬粡鎹嗙粦Tomcat錛岃В鍘嬪嵆鍙傝嫢瀹夎鍖呬笉鍚玊omcat錛屽厛瀹夎Tomcat錛岀劧鍚庡皢瀹夎鍖呰В鍘嬪埌Tomcat鐩綍錛屽茍瑕嗙洊鐩稿叧鏂囦歡鍗沖彲銆?br />錛?錛?#160;瀹夎瑕佹敞鎰忕殑闂鏈夛細Jetspeed2M1鐗堟湰鐢變簬Bug鏃犳硶瀹夎Tomcat5.5涓婏紙姝UG瑙?/font> 錛夛紱Jetspeed2蹇呴』瀹夎鍦═omcat5.0.28浠ヤ笂鐗堟湰涓婏紝鍚﹀垯浣庣増鏈敱浜嶫AAS闂鏃犳硶鐧婚檰 錛?br />錛?錛?#160;鍚姩jetspeed-database鐩綍涓嬬殑start-database.bat錛屽惎鍔ㄦ暟鎹簱錛?br />錛?錛?#160;鍚姩Tomcat錛?br />錛?錛?#160;鍦ㄦ祻瑙堝櫒涓緭鍏?/font> 榪愯Jetspeed錛?/font> http://localhost:8080/jetspeed/portal http://issues.apache.org/jira/browse/JS2-187 http://www.apache.org/dist/portals/jetspeed-2/
鐩墠姣旇緝涓繪祦鐨凱ortal浜у搧錛?br />Apache Jetspeed錛坔ttp://jakarta.apache.org/jetspeed/錛?br />Liferay錛坔ttp://www.liferay.com錛?br />EXOportal錛坔ttp://cvs.sf.net/viewcvs.py/exo/ExoPortal/錛?br />Pluto錛坔ttp://jakarta.apache.org/pluto錛?br />BEA WebLogic Portal 錛坔ttp://edocs.bea.com/wlp/docs81/javadoc/com/bea/portal/model/Portlet.html 錛?br />IBM Websphere Portal 錛坔ttp://www.software.ibm.com/wsdd/zones/portal/ 錛?br />Oracle Portal Developer Kit 錛坔ttp://portalstudio.oracle.com/錛?
jfoxportal錛坔ttp://www.huihoo.org/jfox/jfoxportal/index.html 鍒氭彁鍑鴻崏妗堬紝涓嶈繃鏄浗鍐呯殑銆傦級
璇碢ortal錛屽氨涓嶈兘涓嶆彁JSR#168 Portlet銆?br />
JSR 鏄敱 JCP (
http://www.jcp.org/
) 榪欎釜
Java
緇勭粐鎵瀹氫箟鍑烘潵鐨勮鑼冦侸SR#168瑙勮寖灝辨槸涓涓叧浜嶱ortlet鐨勮鑼?鈥斺擯ortlet Spec 1.0 銆傛棦鐒舵湁浜嗚鑼冿紝鐞嗘墍褰撶劧鐨勪箣鍚庣殑浜у搧灝卞簲璇ユ寜鐓ц繖涓鑼冩潵鍒朵綔銆?br />
JSR168鐨勭洰鏍囨槸錛?span lang="EN-US">
瀹氫箟portlet鐨勮繍琛屾椂鐜錛屽嵆portlet瀹瑰櫒
瀹氫箟portlet鍜?span lang="EN-US">portlet瀹瑰櫒涔嬮棿鐨?span lang="EN-US">api闆?span lang="EN-US">
鎻愪緵portlet瀛樺偍鏄撳け鏁版嵁鍜屾寔涔呮暟鎹殑鏈哄埗
鎻愪緵portlet鍖呭惈servlet鍜?span lang="EN-US">jsp鐨勬満鍒?span lang="EN-US">
瀹氫箟鏂逛究閮ㄧ講鐨?span lang="EN-US">portlet鎵撳寘鏂規硶
鎻愪緵jsr168瑙勮寖涓嬬殑portal鐨勪簩榪涘埗portlet渚挎惡鎬?span lang="EN-US">
閫氳繃WSRP錛?span lang="EN-US">web service for remote portlet錛夊崗璁繍琛岀鍚?span lang="EN-US">jsr168瑙勮寖鐨勮繙紼?span lang="EN-US">portlet
IT
鐣屽凡緇忓箍娉涚殑鎺ュ彈浜?span lang="EN-US">jsr168瑙勮寖銆傛墍鏈夌殑portal棰嗗煙涓昏鍏徃閮芥槸jsr168涓撳緇勭殑鎴愬憳錛?span lang="EN-US">Apache,AGT,BEA,Boeing,Borland,Broadvision,Citrix,EDS, Fujitsu, Hitachi, IBM, Novell, Oracle, SAP, SAS Institute, Sun Microsystems, Sybase, TIBCO, and Vignette銆傚畼鏂規敮鎸佸垪琛ㄧ敋鑷蟲洿闀褲?br />
瀹㈡埛绔姹傜敱
Portal Web
搴旂敤紼嬪簭榪涜澶勭悊錛屽畠涓哄綋鍓嶇敤鎴鋒绱㈠綋鍓嶉〉涓婄殑
Portlet
銆傜劧鍚庯紝
Portal Web
搴旂敤紼嬪簭涓烘瘡涓?/span>
Portlet
璋冪敤
Portlet
瀹瑰櫒鏉ラ氳繃
Container Invoker API
媯绱㈠畠鐨勫唴瀹廣?/span>
Portlet
瀹瑰櫒閫氳繃
Portlet API
璋冪敤
Portlet
銆?/span>
Container Provider Service Provider Interface
錛?/span>
SPI
錛夊厑璁?/span>
portlet
瀹瑰櫒閫氳繃
Portal
媯绱俊鎭?/span>
Portlet
紿楀彛鍖呮嫭錛?/span>
l 鏍囬鏍忥紝甯︽湁 Portlet 鐨勬爣棰?/span>
l 淇グ錛屽寘鎷敤浜庢洿鏀?/span> Portlet 鐨勭獥鍙g姸鎬佺殑鎸夐挳錛堟瘮濡傛渶澶у寲鎴栨渶灝忓寲 Portlet 錛夊拰鐢ㄤ簬鏇存敼 Portlet 鐨勬ā寮忕殑鎸夐挳錛堟瘮濡傛樉紺哄府鍔╂垨緙栬緫棰勫畾涔夌殑 Portlet 璁劇疆錛?/span>
l
鐢?/span>
Portlet
浜х敓鐨勫唴瀹癸紙涔熺О涓轟竴涓爣璁版錛夈?/span>
涓嬮潰鏄吀鍨嬬殑浜嬩歡嫻佺▼錛屽綋鐢ㄦ埛璁塊棶 portal 欏甸潰鐨勬椂鍊欙細
<!--[if !supportLists]-->² <!--[endif]-->瀹㈡埛绔湪楠岃瘉鍚庡悜portal鍙?/span>http璇鋒眰銆?/span>
<!--[if !supportLists]-->² <!--[endif]-->portal鎺ユ敹璇鋒眰銆?/span>
<!--[if !supportLists]-->² <!--[endif]-->portal鍒ゆ柇鏄惁鏈夊寘鍚姹傦紝騫惰姹傚寘鍚殑鍔ㄤ綔鎸囧悜鐨?/span>portlet鏄拰榪欎釜portal欏甸潰鐩稿叧鑱旂殑銆?/span>
<!--[if !supportLists]-->² <!--[endif]-->濡傛灉鍚湁鍔ㄤ綔鐨勭洰鏍?/span>portlet錛?/span>portal鍙戣姹傜粰portlet瀹瑰櫒鍘繪墽琛岀浉搴旂殑portlet鐨勫姩浣溿?/span>
<!--[if !supportLists]-->² <!--[endif]-->portal閫氳繃portlet瀹瑰櫒璋冪敤portlets錛屽幓鑾峰緱鍐呭鐗囨柇錛岃繖涓墖鏂彲浠ュ寘鍚湪portal欏甸潰涓?/span>
<!--[if !supportLists]-->² <!--[endif]-->portal闆嗗悎portlets鐨勮緭鍑哄唴瀹瑰埌1涓?/span>portal欏甸潰涓紝騫舵妸欏甸潰榪斿洖瀹㈡埛绔?/span>
Portlet 浜х敓鏍囪鐗囨柇銆?/span> Portal 閫氬父緇?/span> portlet 浜х敓鐨勬爣璁扮墖鏂姞浜嗘爣棰橈紝鎺у埗鎸夐挳鍜屽叾浠栫殑瑁呴グ錛岃繖涓柊鐨勭墖鏂彨 portlet 紿楀彛銆傜劧鍚?/span> portal 鏁村悎 portlet 紿楀彛鍒板畬鏁寸殑鏂囦歡錛?/span> portal 欏甸潰銆?/span>
<!--[endif]-->
Portlets 榪愯鍦?/span> portlet 瀹瑰櫒鍐呫?/span> Portlet 瀹瑰櫒鎺ユ敹 portlets 浜х敓鐨勫唴瀹廣傚吀鍨嬬殑錛?/span> portlet 瀹瑰櫒鎶?/span> portlet 鍐呭浼犲埌 portal 銆?/span> Portal server 鏍規嵁 portlet 浜х敓鐨勫唴瀹瑰垱寤?/span> portal 欏甸潰錛屽茍浼犻佺粰瀹㈡埛绔紝鐢卞鎴風鏄劇ず銆?/span>
<!--[endif]-->
瀹㈡埛浣跨敤瀹㈡埛緇堢璁塊棶 portal 銆傚湪鏀跺埌璇鋒眰鍚庯紝 portal 鍒ゆ柇婊¤凍璇鋒眰鐨?/span> portlets 鍒楄〃銆?/span> Portal 閫氳繃 portlet 瀹瑰櫒錛岃皟鐢?/span> portlets 銆?/span> Portal 鐢?/span> portlet 浜х敓鐨勭墖鏂垱寤?/span> portal 欏甸潰錛屽悓鏃舵妸欏甸潰榪斿洖緇欑敤鎴楓?/span>
<!--[endif]-->
鐢ㄦ埛鍙互鏍規嵁闇瑕侀氳繃澧炲垹 Portlet 鐨勬柟寮忛厤緗粬浠殑欏甸潰銆傚湪 Windows 鎴栬?/span> XWindows 紿楀彛紼嬪簭涓紝紿楀彛鏈夋渶澶у寲鍜屾渶灝忓寲鐨勭獥鍙g姸鎬侊紝 portlet 涔熸湁紿楀彛鐘舵併?/span> 紿楀彛鐘舵佹槸 portal 欏甸潰絀洪棿鏁伴噺鐨勬寚紺哄櫒錛屽畠琚祴鍊肩粰 portlet 浜х敓鐨勫唴瀹逛腑銆傚綋璋冪敤 portlet 錛屽鍣ㄦ彁渚涘綋鍓嶇獥鍙g姸鎬佺粰 portlet 銆?/span> Portlet 浣跨敤紿楀彛鐘舵佸喅瀹氬灝戜俊鎭渶瑕?/span> render 銆?/span> Portlets 鑳藉湪澶勭悊 action 璇鋒眰鏃訛紝緙栫▼鐨勬敼鍙樹粬浠殑紿楀彛鐘舵併?/span> Portlet 瑙勮寖瀹氫箟浜?/span> 3 縐嶇獥鍙g姸鎬侊紝 normal 錛?/span> maximized 鍜?/span> minimized 銆?/span>
Normal
紿楀彛鐘舵?/span>
Normal 紿楀彛鐘舵佽〃紺?/span> portlet 瑕佸拰鍏朵粬鐨?/span> portlet 鍏變韓欏甸潰銆傚畠涔熻〃紺虹洰鏍囪澶囬檺鍒朵簡鏄劇ず鑳藉姏銆傚洜姝わ紝 portlet 闄愬埗杈撳嚭鐨勫昂瀵搞?/span>
MAXIMIZED
紿楀彛鐘舵?/span>
Maximized 紿楀彛鐘舵佽〃紺?/span> portlet 鏄?/span> portal 欏甸潰鍞竴鐨?/span> portlet 錛屾垨 portlet 鐩告瘮涓庡叾浠栫殑 portlet 鏈夋洿澶氱殑絀洪棿銆傚綋紿楀彛鐘舵佹槸 Maximized 鏃訛紝 portlet 浜х敓鏇村鐨勫唴瀹廣?/span>
Minimized
紿楀彛鐘舵?/span>
褰?/span> portlet 鏄?/span> minimized 鐘舵侊紝瀹冨皢鏄渶灝忛檺搴︾殑杈撳嚭錛屾垨涓嶈緭鍑恒?/span>
Portlet 妯″紡鎸囧嚭 porlet 鐨勫姛鑳姐備竴鑸潵璇達紝 portlet 鎵ц涓嶅悓浠誨姟錛屼緷闈犲綋鍓嶆墽琛岀殑浠誨姟鐨勫垱寤轟笉鍚屽唴瀹廣?/span> Portlet 妯″紡鍛婅瘔 portlet 浠栦滑鎵ц浠涔堜換鍔★紝鐢熶駭浠涔堝唴瀹廣傚綋璋冪敤 portlet 錛屽鍣ㄦ彁渚涘綋鍓?/span> portlet 妯″紡緇?/span> portlet 銆?/span> Portlets 鍦ㄥ鐞?/span> action 璇鋒眰鏃惰兘緙栫▼鐨勬敼鍙樹粬浠殑 portlet 妯″紡銆?/span>
Portlet 鏈夊洓縐嶆ā寮忥細 view 錛?/span> edit, help 鍜?/span> config 銆?/span>
鍙敤鐨勬ā寮忔牴鎹敤鎴風殑瑙掕壊鍙楀埌闄愬埗銆備緥濡傦紝鍖垮悕鐢ㄦ埛鍙兘浣跨敤 view 鍜?/span> help 妯″紡錛岃岄獙璇佺敤鎴峰彲浠ヤ嬌鐢?/span> edit 妯″紡銆?/span>
涓句緥鏉ヨ錛屼竴涓敤鎴峰彲浠ュ畾鍒剁殑鑲$エ淇℃伅Portlet錛?span lang="EN-US">View妯″紡鍏佽鐢ㄦ埛鏌ョ湅鑲$エ鍒楄〃錛?span lang="EN-US">Help妯″紡鎻愪緵緇欑敤鎴峰府鍔╂墜鍐岋紝Edit妯″紡鍏佽鐢ㄦ埛瀹氬埗鑷繁鍏蟲敞鐨勮偂紲ㄥ垪琛紝鑰?span lang="EN-US">Config妯″紡鍏佽綆$悊鍛樻敼鍙樿偂紲ㄦ湇鍔$殑涓浜涢厤緗?span lang="EN-US">
VIEW
妯″紡
View
妯″紡鏈熷緟鐨勫姛鑳芥槸浜х敓鏍囪鍙嶆槧褰撳墠鐨勭姸鎬佺粰portlet銆備緥濡傦紝view妯″紡鐨?span lang="EN-US">portlet鍖呭惈1涓垨澶氫釜妗嗭紝鐢ㄦ埛鍙互鎿嶄綔鎴栦氦浜掞紝鎴栫粍鎴愪笉闇瑕佷換浣曠敤鎴蜂氦浜掔殑鐨勯潤鎬佸唴瀹廣?span lang="EN-US">
Portlet
寮鍙戣呴渶瑕侀氳繃瑕嗙洊doView鏂規硶瀹炵幇view portlet妯″紡鐨勫姛鑳姐?span lang="EN-US">
EDIT
妯″紡
閫氳繃edit妯″紡錛?span lang="EN-US">portlet鎻愪緵鍐呭鍜?span lang="EN-US">logic璁╃敤鎴風敤鎴峰寲portlet鐨勮涓恒?span lang="EN-US">Edit妯″紡鍖呭惈涓涓垨澶氫釜妗嗭紝鐢ㄦ埛鍙互瀹氫綅騫惰緭鍏ヤ粬浠殑鐢ㄦ埛鍖栨暟鎹?/span>
鍏稿瀷鐨勶紝edit妯″紡錛屽皢璁劇疆鎴栦慨鏀?span lang="EN-US">portlet鐨勫弬鏁般?span lang="EN-US">Portlet寮鍙戣呴渶瑕侀氳繃瑕嗙洊doEdit鏂規硶瀹炵幇edit portlet妯″紡鐨勫姛鑳姐?span lang="EN-US">
HELP
妯″紡
褰撳湪help妯″紡錛?span lang="EN-US">portlet鎻愪緵portlet鐨?span lang="EN-US">help淇℃伅銆傝繖涓?span lang="EN-US">help淇℃伅灝嗕細鏄畝鍗曠殑妗嗭紝鐢ㄨ繛璐殑姝f枃鎴栦笂涓嬫枃鏁忔劅鐨勫府鍔╅槓鏄庝簡鏁翠釜portlet銆?span lang="EN-US">Portlet寮鍙戣呴渶瑕侀氳繃瑕嗙洊doHelp鏂規硶瀹炵幇help portlet妯″紡鐨勫姛鑳?span lang="EN-US">
CONFIG
妯″紡
褰撳湪config妯″紡錛岀鐞嗗憳鍙互榪涜鐩稿簲鐨勬搷浣溿?/span>
Portlet寮鍙戣呴渶瑕侀氳繃瑕嗙洊doConfig鏂規硶瀹炵幇view portlet妯″紡鐨勫姛鑳姐?/p>
鍥犱負Portlet緇ф壙浜?span lang="EN-US">Servlet,鎵浠?span lang="EN-US">portlet
Portal
涓璇嶆渶鏃╂槸鎸囬棬鎴風綉绔欍傜畝鍗曡
Portal
鏄竴涓噸瑕佺殑
Web
绔欑偣錛屾槸涓涓仈鍚堢殑紺懼尯錛?/span>
瀹?/span>
浣滀負
Web
搴旂敤紼嬪簭鐨?/span>
綆鍗?/span>
緇熶竴鐨勮闂偣鍜屼俊鎭郴緇熺殑灞曠幇灞傦紝閫氳繃涓у寲“鎴戠殑涓婚〉錛?/span>
My Home Pages
錛?#8221;涓轟笉鍚岀敤鎴鋒彁渚涗釜鎬у寲銆佺粺涓鐧誨綍鍜屽唴瀹規暣鍚堢殑鏈嶅姟銆傛澶?/span>
Portal
榪樻彁渚涗簡璁稿鏈変環鍊肩殑闄勫姞鍔熻兘錛屽瀹夊叏鎬с佹悳绱€佸崗浣滃拰宸ヤ綔嫻佺瓑銆傚鏈緇堢敤鎴瘋岃█錛?/span>
Portal
灝辨槸涓涓埌鎵鏈夎綆楄祫婧愮殑鍗曠嫭璁塊棶鐐廣備笟鐣岃涓?/span>
Portal
灝嗕細鎴愪負涓嬩竴浠g殑妗岄潰錛屽湪
Web
涓婁負鍚勭瀹㈡埛鏈鴻澶囨彁渚涘ぇ閲忕殑鐢靛瓙鍟嗗姟搴旂敤銆?/span>
2.
鍙戝睍鍘嗙▼
鏈鍒濈殑
Portal
鎸囩殑鏄儚
Yahoo
銆?/span>
Sina
榪欐牱鐨?/span>
Internet
闂ㄦ埛緗戠珯銆傝繖浜涢棬鎴風綉绔欎負鐢ㄦ埛鎻愪緵浜嗘绱€佸垎綾誨拰綾諱技
“
My Yahoo!
”
鐨勪釜鎬у寲瀹氬埗鏈嶅姟錛岀洰鐨勬槸甯姪鐢ㄦ埛鏇村揩鍦版壘鍒拌嚜宸辨墍闇瑕佺殑淇℃伅銆傝繖鏍風殑
Portal
琚О涓?/span>
Public Portal
錛屽嵆闈㈠悜鍏紬鐨勪俊鎭棬鎴楓?/span>
闅忕潃
Web
搴旂敤鐨勫彂灞曪紝鍙堝嚭鐜頒簡
Vertical Portal
鍜?/span>
Enterprise Information Portal
銆?/span>
Vertical Portal
鍗寵涓氶棬鎴鳳紝鐩殑鏄府鍔╂煇涓琛屼笟鐨勫晢涓氫漢鍛樺拰鎶鏈漢鍛樻壘鍒拌嚜宸查渶瑕佺殑鐗瑰畾琛屼笟鐨勫晢涓氫俊鎭拰鎶鏈俊鎭?/span>
Enterprise Information Portal
錛?/span>
EIP
錛?/span>
鍗充紒涓氫俊鎭棬鎴楓傜洰鐨勬槸甯姪浼佷笟鐢ㄦ埛鍙婂憳宸ラ氳繃緇熶竴鍏ュ彛鎵懼埌鍒嗗竷浜庝紒涓氱殑鍚勭淇℃伅銆備笌
Public Portal
鐩鎬技錛?/span>
Vertical Portal
鍜?/span>
EIP
涔熷悓鏍鋒彁渚涗簡媯绱€佸垎綾誨拰涓у寲瀹氬埗鏈嶅姟銆?/span>
鍦ㄤ互涓婁笁縐?/span> Portal 涓紝 EIP 鍖呭惈鐨勫唴瀹規渶澶氾紝鍥犳錛?/span> Portal 鐨勫彂灞曡繃紼嬩篃鍦?/span> EIP 涓緱鍒頒簡鏈鍏呭垎鐨勪綋鐜般傚湪 EIP 鍙戝睍鐨勬渶鍒濋樁孌碉紝 Portal 瀹為檯涓婂氨鏄竴浜涢潤鎬佺綉欏碉紝鐢ㄦ埛閫氳繃瀹冭幏寰椾紒涓氭彁渚涚殑淇℃伅鍙婃湇鍔°傞殢鐫淇℃伅閲忕殑澧炲姞錛岄愭笎澧炲姞浜嗘悳绱㈠姛鑳藉拰鍐呭鍙戝竷鍔熻兘錛屽茍涓瀹氱▼搴︿笂瀹炵幇浜嗗唴瀹圭鐞嗭紙 Content Management 錛夛紱铻嶅叆浜嗗伐浣滄祦錛屾笭閬擄紙鍖呮嫭 Email 錛夌殑鍔熻兘錛涢泦鎴愪簡鏇村搴旂敤錛屽 ERP 錛?/span> CRM 錛?/span> SCM 絳夛紱澧炲姞浜?/span> Web Services 寮曟搸銆備笅闈負 Portal 鍦ㄤ紒涓氬簲鐢ㄩ噷鐨勭粨鏋勫浘 ( 鎽樿嚜浜?/span> WebLogic Portal 8.1 鐩稿叧璧勬枡 ) 錛?/span>
鍥撅細 Portal 鍦ㄤ紒涓氫俊鎭寲涓壆婕旂殑瑙掕壊
3.
鐜扮姸
Portal
鎶鏈笌搴旂敤鏈嶅姟鍣ㄧ揣瀵嗙粨鍚堬紝鍔犲己浜嗛珮綰х殑涓у寲鍔熻兘錛屽彂灞曟垚涓哄簲鐢ㄦ湇鍔″櫒涔嬩笂鐨勭鐞嗗鎴楓佸憳宸ュ拰鍚堜綔浼欎即搴旂敤鐨勪竴涓鏋躲?/span>
Portal
浣滀負搴旂敤鏈嶅姟鍣ㄤ箣涓婄殑闈㈠悜浼佷笟搴旂敤闆嗘垚鐨勪駭鍝侀噷鐨勫繀涓嶅彲灝戠殑緇勬垚閮ㄥ垎錛屽湪浼佷笟淇℃伅鍖栨柟闈㈡壆婕旂潃閲嶈鐨勮鑹層傚悇澶у簲鐢ㄦ湇鍔″櫒鍘傚晢涔熺悍綰鋒帹鍑轟簡鑷繁鐨?/span>
Portal
浜у搧錛屾瘮杈冭憲鍚嶇殑鏈?/span>
IBM WebSphere Portal Server
錛?/span>
BEA WebLogic Portal
錛?/span>
Sun Portal Server
錛屽悓鏃朵篃鏈夊悓綾誨紑婧愪駭鍝侊紝濡?/span>
Apache JetSpeed
錛?/span>
Liferay
絳夈?/span>
4.
瓚嬪娍
钁楀悕鍜ㄨ鍏徃 Gartner 涓嶄箙鍓?/span> 鎻愬嚭浜嗗簲鐢ㄥ鉤鍙板浠?/span> (Application Platform Suites 錛岀畝縐?/span> APS) 鐨勬蹇點傛牴鎹?/span> Gartner 鐨勫畾涔夛紝 APS 鐢變竴鎵瑰熀紜杞歡緇勮鑰屾垚錛岃繖浜涘熀紜杞歡鎻愪緵浜嗗垱寤轟紒涓氬簲鐢ㄦ墍闇鐨勬灦鏋勶紝鑷沖皯蹇呴』鍖呮嫭搴旂敤鏈嶅姟鍣ㄣ?/span> Portal 浜у搧鍜屼紒涓氬簲鐢ㄩ泦鎴愬寘絳夈?/span> IDC 閫氳繃瀵逛紬澶氫紒涓氫俊鎭富綆$殑璋冩煡鍙戠幇錛屼粬浠渶鍏沖績鐨勯棶棰樻槸濡備綍瀹炵幇浼佷笟搴旂敤鐨勬暣鍚堬紝浠ュ強濡備綍鏋勫緩緇熶竴鐨勪紒涓氫俊鎭棬鎴峰鉤鍙扮瓑銆傚巶鍟嗗浼佷笟鐢ㄦ埛鐨勮繖浜涢渶姹傦紝浠呬粎鎻愪緵涓涓簲鐢ㄦ湇鍔″櫒鏄繙榪滀笉澶熺殑錛岃岄渶瑕佹彁渚涗竴鏁村鑳藉浣夸紒涓氭湁鏁堝拰鐏墊椿鍦板緩绔嬩俊鎭郴緇熺殑宸ュ叿鍜岃蔣浠跺鉤鍙幫紝鎶婂簲鐢ㄥ紑鍙戝鉤鍙板拰搴旂敤闆嗘垚騫沖彴鏈夋満鍦扮粨鍚堣搗鏉ャ?/span>
鎬葷殑鏉ョ湅錛?/span> Portal 浣滀負鏈潵浼佷笟淇℃伅鐢ㄦ埛騫沖彴鐨勪竴涓噸瑕佺粍浠訛紝闅忕潃搴旂敤鏈嶅姟鍣ㄧ殑鍙戝睍錛屼篃灝嗗緱鍒伴暱瓚崇殑鍙戝睍鍜岃繘姝ャ?/span>