锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦‵aces API涓湁涓や釜綾繪槸瑕佺粡甯鎬嬌鐢ㄧ殑. 涓涓槸FacesContext 涓涓槸ExternalContext.棣栧厛璁茶В濡備綍浣跨敤FacesContext .
瀵規瘡涓?span class="hilite1">JSF璇鋒眰錛孎acesServlet瀵硅薄閮戒細涓哄叾鑾峰彇涓涓猨avax.faces. context.
FacesContext綾葷殑瀹炰緥銆侳acesServlet瀵硅薄灝嗕笅鍒?涓彇鑷猈eb瀹瑰櫒鐨勫璞′紶緇檍avax.faces.context.FacesContextFactory瀵硅薄鐨刧etFacesContext鏂規硶錛屼互姝ゆ潵鍋氬埌榪欎竴鐐癸細
鈼?nbsp; javax.servlet.ServletContext
鈼?nbsp; javax.servlet.ServletRequest
鈼?nbsp; javax.servlet.ServletResponse
榪欐剰鍛崇潃FacesContext鐨勫疄渚嬮噷鍖呭惈浜嗘墍鏈夊鐞?span class="hilite1">JSF璇鋒眰鎵闇鐨勬瘡涓姹傜殑鐘舵佷俊鎭傚浘3-1灞曠ず浜咶acesContext瀹炰緥閲屽皝瑁呯殑鍏朵粬涓浜涘璞°?
3.2.1 鑾峰彇褰撳墠瀹炰緥
涓涓粡甯哥敤鍒扮殑鏂規硶鏄潤鎬佺殑getCurrentInstance鏂規硶錛屽畠榪斿洖褰撳墠鐨凢acesContext瀹炰緥銆傛鏂規硶鐨勭鍚嶅涓嬶細
public static FacesContext getCurrentInstance()
涓嬮潰鐨勪唬鐮佹槸涓涓敤姝ゆ柟娉曡幏鍙朏acesContext褰撳墠瀹炰緥鐨勪緥瀛愶細
FacesContext facesContext = FacesContext.getCurrentInstance();
3.2.2 鑾峰彇鍜屼慨鏀圭粍浠舵爲
FacesContext瀹炰緥閲屾渶閲嶈鐨勫唴瀹規槸璇鋒眰欏甸潰鐨勭粍浠舵爲銆傜粍浠舵爲鏄敱javax.faces.tree.Tree綾繪潵琛ㄧず鐨?鏈珷鍚庨潰鐨?#8220;浣跨敤Tree綾?#8221;涓鑺備細璁ㄨ)銆侳acesContext瀹炰緥鐨則ree灞炴у氨鏄疶ree瀵硅薄銆?
瑕佽幏鍙栨垨淇敼Tree瀵硅薄錛屽彲浣跨敤tree灞炴х殑璇誨彇鏂規硶鍜岃祴鍊兼柟娉曪細
public abstract Tree getTree()
public abstract void setTree(Tree tree)
3.2.3 娣誨姞鍜岃幏鍙栨秷鎭?
鍦?
璇鋒眰澶勭悊鐢熷懡鍛ㄦ湡閲岋紝鍙兘浼氶亣鍒伴敊璇傛瘮濡傦紝褰撻獙璇佸櫒鎵ц杈撳叆楠岃瘉鏃訛紝鍥犱負鐢ㄦ埛杈撳叆浜嗕笉姝g‘鐨勫鹼紝楠岃瘉鍙兘澶辮觸錛涘綋緇勪歡璇曞浘鎶婅緭鍏ュ艱漿鎹負緇戝畾鍒扮粍浠剁殑妯?
鍨嬪璞℃墍闇鐨勭被鍨嬫椂錛屼篃鍙兘浼氬け璐ャ傛墍鏈夋秷鎭兘蹇呴』瀛樻斁鍒癋acesContext瀹炰緥閲屼互澶囧悗闈㈣繘琛屽鐞嗐傛瘮濡傦紝鎮ㄥ彲鑳藉笇鏈涘湪欏甸潰閲屾樉紺洪敊璇秷鎭紝浠庤?
涓虹敤鎴鋒洿姝i敊璇彁渚涘府鍔┿?
閿欒娑堟伅鏄敱javax.faces.application.Message鎺ュ彛(絎?1绔犲啀璇︾粏璁ㄨ)鏉ヨ〃紺虹殑錛屾偍鍙互閫氳繃浣跨敤FacesContext綾葷殑addMessage鏂規硶鍚慒acesContext瀹炰緥閲屾坊鍔燤essage瀵硅薄銆傝繖涓柟娉曠殑絳懼悕濡備笅錛?
public abstract void addMessage(UIComponent component, Message message)
濡傛灉component涓嶄負絀猴紝鏂板姞鍏ョ殑message灝卞叧鑱斿埌component涓娿傚惁鍒欙紝瀹冨氨涓嶄笌浠諱綍鐗瑰畾緇勪歡鐨勫疄渚嬬浉鍏熾?
涓句緥鏉ヨ錛岄獙璇佸櫒鍦ㄩ獙璇佺粍浠跺煎け璐ユ椂鍙皟鐢‵acesContext鐨刟ddMessage鏂規硶錛屼紶鍏ュ兼棤鏁堢殑緇勪歡鍙婁竴涓寘鍚壒瀹氶敊璇秷鎭殑Message瀵硅薄銆?
鎵鏈夋坊鍔犲埌FacesContext瀹炰緥鐨凪essage瀵硅薄閮借鍔犲叆鍒頒竴涓泦鍚堥噷銆傚彲閫氳繃璋冪敤getMessages鏂規硶鐨勪袱涓噸杞芥柟娉曚箣涓鏉ヨ幏鍙栧姞鍏ョ殑Message瀵硅薄錛?
public abstract Iterator getMessages()
public abstract Iterator getMessages(UIComponent component)
絎竴縐嶅艦寮忕殑璋冪敤鍦ㄤ竴涓狪terator閲岃繑鍥炴墍鏈塎essage瀵硅薄錛岃岀浜岀褰㈠紡鐨勮皟鐢ㄥ垯浠呰繑鍥炰笌緇欏畾UIComponent鐩稿叧鑱旂殑Message瀵硅薄銆?
3.2.4 娣誨姞鍜岃幏鍙栬姹傚鐞嗕簨浠?
UIComponent 鍙互鐢熸垚FacesEvent瀵硅薄銆傛瘮濡傦紝褰撳崟鍑諱竴涓?span class="hilite3">UICommand緇勪歡鏃訛紝瀹冧細鐢熸垚涓涓狝ctionEvent瀵硅薄(ActionEvent綾繪槸 FacesEvent綾葷殑瀛愮被)銆傝繖涓狥acesEvent瀵硅薄闇瑕佸湪FacesContext瀹炰緥閲屼繚瀛樿搗鏉ワ紝浠ュ璇鋒眰澶勭悊鐢熷懡鍛ㄦ湡閲岀殑涓嬩竴姝ュ鐞嗕簨浠?鏃舵墍鐢ㄣ?
鍙氳繃浣跨敤FacesContext綾葷殑addFacesEvent鏂規硶鍚慒acesContext瀹炰緥娣誨姞FacesEvent瀵硅薄銆傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract void addFacesEvent(FacesEvent event)
瑕佹彁鍙栧厛鍓嶆坊鍔犵殑FacesEvent瀵硅薄錛屽彲璋冪敤getFacesEvents鏂規硶錛屽叾絳懼悕濡備笅錛?
public abstract Iterator getFacesEvents()
姝ゆ柟娉曡繑鍥濬acesEvent鏃剁殑欏哄簭涓庡叾鍦ㄩ槦鍒椾腑鐨勯『搴忎竴鑷淬?
3.2.5 鍚慠esponse瀵硅薄閲屽啓鍏ヤ俊鎭?
涓?浜嗗悜Response瀵硅薄閲屽啓鍏ヤ俊鎭紝FacesContext綾繪彁渚涗簡涓や釜灞炴э紝涓涓槸
javax.faces.Context.ResponseStream綾誨瀷錛屽彟涓涓槸
javax.faces.context.ResponseWriter綾誨瀷銆俁esponseStream綾誨瀷鐨勫璞$敤浜庤緭鍑轟簩榪涘埗鏁版嵁錛岃?
ResponseWriter綾誨瀷鐨勫璞″垯鐢ㄤ簬杈撳嚭瀛楃銆傝繖浜涘睘鎬х殑璇誨彇鏂規硶鍜岃祴鍊兼柟娉曞涓嬶細
public abstract ResponseStream getResponseStream()
public abstract void setResponseStream(ResponseStream responseStream)
public abstract ResponseWriter getResponseWriter()
public abstract void setResponseWriter(ResponseWriter responseWriter)
3.2.6 鑾峰彇鍜岃緗湴鍖?
絎?1绔犲皢浼氳璁哄埌錛?span class="hilite1">JSF鏀寔鍥介檯鍖栧拰鏈湴鍖栥傝繖鎰忓懗鐫鎮ㄥ彲浠ユ牴鎹敤鎴風殑鍦板尯鍐沖畾鍙戦佷粈涔堟牱鐨勫洖搴斾俊鎭俵ocale灞炴ч噷瀛樻斁浜嗗綋鍓嶅鐞嗕腑鎵鐢ㄧ殑Locale瀵硅薄銆?
鍒濆鐘跺喌涓嬶紝locale灞炴х殑鍊煎拰緗戠粶嫻忚鍣ㄩ噷鎸囧畾鐨勫湴鍖烘槸涓鏍風殑錛屼絾鍙互淇敼榪欎釜鍊鹼紝浠庤屽彂閫佽緭鍑烘墍浣跨敤鐨勫湴鍖哄皢鐙珛浜庢祻瑙堝櫒鎵浣跨敤鐨勫湴鍖恒傛灞炴х殑璇誨彇鏂規硶鍜岃祴鍊兼柟娉曞涓嬶細
public abstract Locale getLocale()
public abstract void setLocale(Locale locale)
3.2.7 鎿嶄綔璇鋒眰澶勭悊鐢熷懡鍛ㄦ湡
FacesContext綾昏繕鎻愪緵浜嗕袱涓柟娉曚笌璇鋒眰澶勭悊鐢熷懡鍛ㄦ湡榪涜浜や簰錛?
鈼?nbsp; 鍦ㄥ綋鍓嶉樁孌電殑澶勭悊瀹屾垚鍚庯紝璋冪敤renderResponse鏂規硶閫氱煡JSF瀹炵幇鎶婃帶鍒舵潈杞埌鍛堢幇鍝嶅簲闃舵銆備篃灝辨槸璇達紝澶勪簬褰撳墠闃舵鍜屽憟鐜板搷搴旈樁孌典箣闂寸殑鎵鏈夊叾浠栭樁孌甸兘涓嶅啀鎵ц銆?
鈼?nbsp; 璋冪敤responseComplete鏂規硶錛屽憡璇?span class="hilite1">JSF瀹炵幇姝ゆ璇鋒眰鐨凥TTP鍝嶅簲宸茬粡瀹屾垚(姣斿鍦ㄤ嬌鐢ㄤ簡HTTP閲嶅畾鍚戠殑鎯呭喌涓?銆傚洜姝わ紝褰撳墠闃舵瀹屾垚鍚庯紝蹇呴』涓璇鋒眰澶勭悊鐢熷懡鍛ㄦ湡鐨勫鐞嗐?
榪欎簺鏂規硶鐨勭鍚嶅涓嬶細
public abstract void renderResponse()
public abstract void responseComplete()
3.2.8 鑾峰彇鍏朵粬璇鋒眰鐘舵佷俊鎭?
鍏朵粬姣忎釜璇鋒眰鐨勭姸鎬佷俊鎭皝瑁呭湪ExternalContext瀵硅薄閲岋紝鍙互浣跨敤getExternalContext鏂規硶鑾峰彇璇ュ璞★細
public abstract ExternalContext getExternalContext()
鐜板湪璁茶ВExternalContext銆?
浣?
鐢‥xternalContext綾繪彁渚涚殑鏂規硶鍙互鑾峰彇ServletContext銆丼ervletRequest鍜孲ervletResponse瀵?
璞★紝鏋勯燜acesContext瀹炰緥鏃墮渶瑕佽繖浜涘璞°傞櫎姝や箣澶栵紝ExternalContext瀹炰緥鎻愪緵浜嗗寘瑁呭櫒鏂規硶錛屽彲浠ヤ嬌鐢ㄨ繖浜涙柟娉曡幏寰楀師鏉ラ渶瑕佷粠
ServletContext銆丼ervletRequest鍙奡ervletResponse瀵硅薄涓婅皟鐢ㄤ竴浜涙柟娉曡幏寰楃殑淇℃伅銆?
3.3.1 鑾峰彇ServletContext銆丼ervletRequest鍜孲ervletResponse瀵硅薄
鍙嬌鐢ㄤ笅鍒楁柟娉曡幏鍙杝ervlet淇℃伅錛?
鈼?nbsp; getContext 姝ゆ柟娉曞彲鑾峰彇Web搴旂敤涓笌褰撳墠璇鋒眰鐩稿叧鑱旂殑ServletContext瀵硅薄銆傚叾絳懼悕濡備笅錛?
public abstract Object getContext()
鈼?nbsp; getRequest 姝ゆ柟娉曞彲鑾峰彇浠h〃褰撳墠姝e湪澶勭悊鐨勮姹傜殑ServletRequest瀵硅薄銆傚叾絳懼悕濡備笅錛?
public abstract Object getRequest()
鈼?nbsp; getResponse 姝ゆ柟娉曞彲鑾峰彇浠h〃褰撳墠姝e湪鍛堢幇鐨勫搷搴旂殑ServletResponse瀵硅薄銆傚叾絳懼悕濡備笅錛?
public abstract Object getResponse()
榪欎簺鏂規硶閮芥槸榪斿洖涓涓猨ava.lang.Object瀵硅薄錛屼笉鏄痵ervlet鐗規湁鐨勭被鍨嬶紝榪欐牱灝卞彲浠ヤ嬌JSF瀹炵幇鐙珛浜庡叾榪愯鐨勭幆澧冦傛瘮濡傦紝JSF鏃㈠彲鐢ㄤ簬Web瀹瑰櫒錛屼篃鍙互鐢ㄤ簬鍏朵粬瀹瑰櫒錛屽portlet絳夈?
3.3.2 鑾峰彇ServletContext鐗規?
getApplicationMap鏂規硶榪斿洖涓涓寘鍚玈ervletContext瀵硅薄閲屽叏閮ㄧ壒鎬у悕/鍊煎鐨凪ap瀵硅薄銆備笅闈㈡槸姝ゆ柟娉曠殑絳懼悕錛?
public abstract java.util.Map getApplication()
浣滀負涓涓緥瀛愶紝涓嬮潰鐨勪唬鐮佸彲鑾峰彇涓涓悕鍙玠atabaseUtility鐨勭壒鎬э細
Object contextAttribute = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map contextMap = externalContext.getApplicationMap();
if (contextMap!=null)
contextAttribute = contextMap.get("databaseUtility");
3.3.3 鑾峰彇Session瀵硅薄鍙婂叾鐗規?
閫?榪嘐xternalContext瀵硅薄鍙闂笌褰撳墠璇鋒眰鐩稿叧鑱旂殑Session瀵硅薄銆俫etSession鏂規硶鍙彇鍥炲綋鍓嶇敤鎴風殑
javax.servlet.http.HttpSession瀵硅薄錛屽鏋滃綋鍓嶇敤鎴鋒病鏈夌浉搴旂殑Session瀵硅薄錛屾鏂規硶鐨勮涓虹敱浼犲叆鐨勫弬鏁板喅瀹氾細濡傛灉涓?
璇ユ柟娉曚紶鍏ヤ簡涓涓猼rue鍊鹼紝瀹冧細鍒涘緩涓涓猄ession瀵硅薄錛涘惁鍒欙紝瀹冧細榪斿洖null銆備笅闈㈡槸getSession鏂規硶鐨勭鍚嶏細
public abstract Object getSession(boolean create)
姝ゆ柟娉曞叾瀹炴槸javax.servlet.http.HttpServletRequest鎺ュ彛涓璯etSession鏂規硶鐨勫寘瑁呭櫒銆?
getSessionMap鏂規硶榪斿洖涓涓寘鍚笌褰撳墠璇鋒眰鐩稿叧鑱旂殑Session瀵硅薄閲屾墍鏈夌壒鎬у悕/鍊煎鐨凪ap瀵硅薄銆備笅闈㈡槸瀹冪殑鏂規硶絳懼悕錛?
public abstract java.util.getSessionMap()
瑕?
鑾峰彇Session瀵硅薄閲岀殑鐗規э紝鍙皟鐢∕ap綾葷殑get鏂規硶錛屼紶鍏ヨ鑾峰彇鐨勭壒鎬у悕鍗沖彲銆傛枃妗d腑娌℃湁鎸囨槑鍦ㄥ綋鍓嶈姹傛病鏈夌浉搴擲ession瀵硅薄鐨勬儏鍐典笅錛?
姝ゆ柟娉曟槸榪斿洖null榪樻槸涓涓┖鐨凪ap瀵硅薄銆傛墍浠ュ湪璋冪敤Map鐨刧et鏂規硶涔嬪墠錛岄渶瑕佸厛媯鏌ap鏄惁涓簄ull銆備笅闈㈢殑浠g爜鏄幏鍙朣ession鐗規?
鐨勪緥瀛愶細
Object sessionAttribute = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map sessionMap = externalContext.getSessionMap();
if (sessionMap!=null)
sessionAttribute = sessionMap.get(key);
鏈鍚庝竴琛岀殑key鏄竴涓寘鍚壒鎬у悕鐨勫瓧絎︿覆銆?
3.3.4 鑾峰彇ServletContext瀵硅薄鐨勫垵濮嬪弬鏁?
getInitParameter鏂規硶鏄疭ervletContext瀵硅薄鐨刧etInitParameter鏂規硶鐨勫寘瑁呭櫒錛岀敤榪欎釜鏂規硶鍙互鎻愬彇鍦ㄩ儴緗叉弿榪扮(web.xml鏂囦歡)閲岀敤context-init鍏冪礌鎸囧畾鐨勫垵濮嬪弬鏁板箋傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract String getInitParameter(String parameterName)
涓句緥鏉ヨ錛屽鏋滃湪閮ㄧ講鎻忚堪絎﹀0鏄庝簡濡備笅context-init鍏冪礌錛?
<context-param>
<param-name>contactPerson</param-name>
<param-value>Scott Jobim</param-value>
</context-param>
涓嬮潰浠g爜涓殑瀛楃涓插彉閲廼nitParam鐨勫間細鏄疭cott Jobim銆?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String initParam = externalContext.getInitParameter("contactPerson");
getInitParameterMap鏂規硶榪斿洖涓涓寘鍚玈ervletContext瀵硅薄涓叏閮ㄥ垵濮嬪弬鏁扮殑Map瀵硅薄銆傚叾絳懼悕濡備笅錛?
public abstract java.util.Map getInitParameterMap()
涓轟簡鑾峰彇涓涓垵濮嬪弬鏁扮殑鍊鹼紝浣跨敤Map瀵硅薄鐨刧et鏂規硶錛屽悓鏃朵紶閫掑垵濮嬪弬鏁扮殑鍚嶇О銆傛瘮濡傦紝涓嬮潰鐨勪唬鐮佹妸鍒濆鍙傛暟databaseName鐨勫艱緭鍑哄埌鎺у埗鍙般?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map paramMap = externalContext.getInitParameterMap();
if (paramMap!=null) {
System.out.println(paramMap.get("databaseName"));
}
3.3.5 鑾峰彇Request瀵硅薄鐨勭壒鎬?
getRequestMap鏂規硶榪斿洖涓涓寘鍚綋鍓峈equest瀵硅薄涓叏閮ㄧ壒鎬у悕/鍊煎鐨凪ap瀵硅薄銆傚叾鏂規硶絳懼悕濡備笅錛?
public abstract java.util.Map getRequestMap()
浣滀負涓涓緥瀛愶紝涓嬮潰鐨勪唬鐮佸彲鐢ㄦ潵鎻愬彇Request瀵硅薄閲岀殑鐗規э細
Object requestAttribute = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestMap = externalContext.getRequestMap();
if (requestMap!=null)
requestAttribute = requestMap.get(key);
鏈鍚庝竴琛岄噷鐨凨ey鏄竴涓寘鍚鎻愬彇鐨勫睘鎬у悕鐨勫瓧絎︿覆銆?
3.3.6 璁塊棶Request瀵硅薄閲岀殑鍙傛暟鍚嶅拰鍊?
getRequestParameterMap銆乬etRequestParameterNames鍜実etRequestParameterValuesMap鏂規硶鍙敤鏉ヨ闂甊equest瀵硅薄閲岀殑鍙傛暟鍚嶅拰鍊箋?
getRequestParameterMap榪斿洖涓涓寘鍚玆equest瀵硅薄閲屽叏閮ㄥ弬鏁板悕/鍊煎鐨凪ap瀵硅薄銆傚叾絳懼悕濡備笅錛?
public abstract java.util.Map getRequestParameterMap()
浣滀負涓涓緥瀛愶紝涓嬮潰鐨勪唬鐮佸彲鐢ㄦ潵鎻愬彇鍚嶄負id鐨勮姹傚弬鏁扮殑鍊鹼細
String id = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestParameterMap = externalContext.getRequestParameterMap();
if (requestParameterMap!=null)
id = (String) requestParameterMap.get("id");
getRequestParameterNames
鏂規硶榪斿洖涓涓寘鍚叏閮ㄨ姹傚弬鏁板悕鐨処terator銆傛鏂規硶鍏跺疄鏄疭ervletRequest.getParameterNames鏂規硶鐨勫寘瑁呭櫒銆備笉鍚?
鐨勬槸錛孍xternalContext綾葷殑getRequestParameterNames榪斿洖涓涓狪terator錛岃屼笉鏄?
java.util.Enumeration銆傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Iterator getRequestParameterNames()
浣滀負涓涓緥瀛愶紝涓嬮潰鐨勪唬鐮佹妸鎵鏈夌殑璇鋒眰鍙傛暟鍚?鍊煎杈撳嚭鍒版帶鍒跺彴銆?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestParameterMap = externalContext.getRequestParameterMap();
Iterator parameterNames = externalContext.getRequestParameterNames();
while (parameterNames.hasNext()) {
String parameterName = (String) parameterNames.next();
String parameterValue =
(String) requestParameterMap.get(parameterName);
System.out.println(parameterName + " : " + parameterValue);
}
getRequestParameterValuesMap
鏂規硶榪斿洖涓涓寘鍚玆equest瀵硅薄閲屽叏閮ㄥ弬鏁板悕/鍊煎鐨凪ap瀵硅薄銆傛鏂規硶涓巊etRequestParameterMap鏂規硶寰堢浉浼鹼紝浣?
getRequestParameterValuesMap鍙繑鍥炲叏閮ㄧ浉鍚屽弬鏁板悕鐨勫箋傚湪姝ゆ柟娉曡繑鍥炵殑Map瀵硅薄涓婅皟鐢╣et(key)鏂規硶錛岃繖涓鐐圭瓑鍚?
浜庤幏鍙栧綋鍓嶈姹傜殑ServletRequest騫跺湪鍏朵笂璋冪敤getParameterValues(key)銆備篃灝辨槸璇達紝Map瀵硅薄榪斿洖鐨勬槸涓涓瓧絎︿覆鏁?
緇勩侴etRequestParameterValuesMap鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Map getRequestParameterValuesMap()
涓嬮潰渚嬪瓙涓殑浠g爜鎶婅姹傚弬鏁癷d鐨勫叏閮ㄥ艱緭鍑哄埌鎺у埗鍙般?
String[] id = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestParameterValuesMap = externalContext.getRequestParameterValuesMap();
if (requestParameterValuesMap!=null) {
id = (String[]) requestParameterValuesMap.get("id");
// print all values of id
for (int i=0; i<id.length; i++) {
System.out.println(id[i]);
}
}
3.3.7 鑾峰彇璇鋒眰澶寸殑鍚嶅拰鍊?
getRequestHeaderMap鏂規硶榪斿洖涓涓寘鍚綋鍓嶈姹備腑鍏ㄩ儴澶村悕/鍊煎鐨凪ap瀵硅薄銆傚叾鏂規硶絳懼悕濡備笅錛?
public abstract java.util.Map getRequestHeaderMap()
涓句釜渚嬪瓙鏉ヨ錛屼笅闈㈢殑浠g爜鎻愬彇host澶寸殑鍊鹼細
String host = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map headerMap = externalContext.getRequestHeaderMap();
if (headerMap!=null) {
host = (String) headerMap.get("host");
System.out.println(host);
}
娉ㄦ剰錛?
鎶ュご鐨勫悕縐版槸涓嶅尯鍒嗗ぇ灝忓啓鐨勩傛瘮濡傦紝瀵筭etRequestHeaderMap榪斿洖鐨凪ap瀵硅薄鍒嗗埆鐢╤ost銆丠ost鍜孒ost浣滀負鍙傛暟鏉ヨ皟鐢╣et鏂規硶錛屽叾緇撴灉鏄竴鏍風殑銆?
getRequestHeaderValuesMap鏂規硶涓巊etRequestHeaderMap鏂規硶鐩鎬技銆備絾鍦╣etRequestHeader
ValuesMap鏂規硶榪斿洖鐨凪ap瀵硅薄涓婅皟鐢╣et鏂規硶浼氬緱鍒頒竴涓瓧絎︿覆鐨勬暟緇勩俫etRequestHeaderValuesMap鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Map getRequestHeaderValuesMap()
鍦╣etRequestHeaderValuesMap鏂規硶榪斿洖鐨凪ap瀵硅薄涓婅皟鐢╣et鏂規硶浼氳繑鍥炰竴涓猨ava.util.Enumeration鍊箋?
涓嬮潰鐨勪唬鐮佷嬌鐢╣etRequestHeaderValuesMap鏂規硶鏉ヨ幏鍙栦竴涓寘鍚叏閮ㄥご鍚?鍊煎鐨凪ap瀵硅薄錛岀劧鍚庡湪姝ap瀵硅薄涓婅皟鐢╣et鏂規硶浠ヨ幏鍙栧叏閮ˋccept-Encoding澶寸殑鍊鹼紝騫跺皢緇撴灉杈撳嚭鍒版帶鍒跺彴銆?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map headerValuesMap = externalContext.getRequestHeaderValuesMap();
if (headerValuesMap!=null) {
Enumeration headers =
(Enumeration) headerValuesMap.get("Accept-Encoding");
while (headers.hasMoreElements()) {
String value = (String) headers.nextElement();
System.out.println(value);
}
}
3.3.8 鑾峰彇Cookie
getRequestCookies鏂規硶鏄疕ttpServletRequest.getCookies鏂規硶鐨勫寘瑁呭櫒錛屽畠榪斿洖涓涓猨avax.servlet.http.Cookie瀵硅薄鐨勬暟緇勶紝鏁扮粍涓槸褰撳墠Request瀵硅薄閲岀殑鍏ㄩ儴Cookie銆傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract Cookie[] getRequestCookies()
渚嬪錛屼笅闈㈢殑浠g爜鍙栧緱褰撳墠璇鋒眰涓殑鍏ㄩ儴Cookie瀵硅薄錛岀劧鍚庡湪緇撴灉鏁扮粍涓婂驚鐜紝杈撳嚭鍏ㄩ儴Cookie鐨勫悕鍜屽箋?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Cookie[] cookies = externalContext.getRequestCookies();
for (int i=0; i<cookies.length; i++) {
Cookie cookie = cookies[i];
String cookieName = cookie.getName();
String cookieValue = cookie.getValue();
System.out.println(cookieName + " : " + cookieValue);
}
getRequestCookieMap
鏂規硶榪斿洖涓涓寘鍚綋鍓嶈姹備腑鍏ㄩ儴Cookie鐨勩佷互Cookie鐨勫悕縐頒綔涓洪敭鐨凪ap瀵硅薄銆傚湪姝ap瀵硅薄涓婅皟鐢╣et鏂規硶浼氳繑鍥炰竴涓?
javax.servlet.http.Cookie瀵硅薄銆侴etRequestCookieMap鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Map getRequestCookieMap()
渚嬪錛屼笅闈㈢殑浠g爜鍙栧緱鍚嶄負password鐨凜ookie瀵硅薄騫跺皢鍏跺艱緭鍑哄埌鎺у埗鍙般?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map cookieMap = externalContext.getRequestCookieMap();
if (cookieMap!=null) {
Cookie cookie = (Cookie) cookieMap.get("password");
if (cookie!=null)
System.out.println("Value:" + cookie.getValue());
}
娉ㄦ剰錛?
Cookie鍚嶇О鍖哄垎澶у皬鍐欍?
3.3.9 鑾峰彇鍦烘墍
getRequestLocale鏂規硶鏄疭ervletRequest.getLocale鏂規硶鐨勫寘瑁呭櫒錛屽畠榪斿洖Request瀵硅薄涓殑Locale瀵硅薄銆傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Locale getRequestLocale()
渚嬪錛屼笅闈㈢殑浠g爜鍙栧洖鐢ㄦ埛鐨勫満鎵騫惰緭鍑鴻鍦烘墍鐨勬樉紺鴻璦鍜屾樉紺哄浗瀹躲?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Locale locale = externalContext.getRequestLocale();
System.out.println("Language:" + locale.getDisplayLanguage());
System.out.println("Country:" + locale.getDisplayCountry());
3.3.10 鑾峰彇涓婁笅鏂囪礬寰?
getRequestContextPath鏄疕ttpServletRequest.getContextPath鏂規硶鐨勫寘瑁呭櫒錛屽畠榪斿洖璇鋒眰URI涓寚鏄庤姹備笂涓嬫枃鐨勪笂涓嬫枃璺緞閮ㄥ垎銆傚叾鏂規硶絳懼悕濡備笅錛?
public abstract String getRequestContextPath()
涓嬮潰鐨勪唬鐮佹鎶婅姹俇RI鐨勪笂涓嬫枃璺緞杈撳嚭鍒版帶鍒跺彴錛?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
System.out.println("Context path:" +
externalContext.getRequestContextPath());
瀵逛簬URL http://localhost:8080/JSFCh03/faces/test.jsp鏉ヨ錛実etRequestContextPath鏂規硶鐨勮繑鍥炲間負/JSFCh03銆?
getRequestPathInfo
鏂規硶鏄疕ttpServletRequest.getPathInfo鏂規硶鐨勫寘瑁呭櫒錛屽畠榪斿洖褰撳鎴風榪涜璇鋒眰鏃朵笌瀹㈡埛绔彂閫佺殑URL鐩稿叧鑱旂殑棰濆璺緞淇?
鎭傝繖閮ㄥ垎淇℃伅璺熷湪servlet璺緞淇℃伅鐨勫悗闈紝浣嗗湪鏌ヨ瀛楃涓蹭箣鍓嶃俫etRequestPathInfo鏂規硶鐨勭鍚嶅涓嬶細
public abstract String getRequestPathInfo()
渚嬪錛屼笅闈唬鐮佽緭鍑鴻姹俇RL鐨勮礬寰勪俊鎭?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
System.out.println("Path info:" +
externalContext.getRequestPathInfo());
瀵逛簬URL http://localhost:8080/JSFCh03/faces/test.jsp鑰岃█錛実etRequestPathInfo鏂規硶鐨勮繑鍥炲間負test.jsp銆?
3.3.11 鑾峰彇璧勬簮璺緞
getResourcePaths
鏂規硶鏄疭ervletContext綾葷殑getResourcePaths鏂規硶鐨勫寘瑁呭櫒錛屽畠榪斿洖涓涓猄et瀵硅薄錛屽叾涓寘鍚玏eb搴旂敤涓渶闀垮瓙璺緞涓庝紶鍏ョ殑
璺緞鍙傛暟鐩稿尮閰嶇殑璧勬簮璺緞銆傝〃紺哄瓙鐩綍鐨勮礬寰勪互“/”緇撴潫銆傝繑鍥炵殑璺緞鏄浉瀵逛簬Web搴旂敤鏍硅礬寰勭殑鐩稿璺緞錛屽茍浠?#8220;/”寮濮嬨傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract java.util.Set getResourcePaths(String path)
姣斿錛岃冭檻濡備笅浠g爜錛?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Set resourcePaths = externalContext.getResourcePaths("/");
Iterator iterator = resourcePaths.iterator();
while (iterator.hasNext()) {
String path = (String) iterator.next();
System.out.println(path);
}
System.out.println("----------------------------");
resourcePaths = externalContext.getResourcePaths("/WEB-INF");
iterator = resourcePaths.iterator();
while (iterator.hasNext()) {
String path = (String) iterator.next();
System.out.println(path);
}
榪欐浠g爜涓ゆ璋冪敤浜唃etResourcePaths鏂規硶錛岀涓嬈′紶鍏?#8220;/”錛岀浜屾浼犲叆“/WEB-INF”銆傚鏋滃湪涓涓洰褰曠粨鏋勫鍥?-2鎵紺虹殑Web搴旂敤閲岃繍琛屼互涓婁唬鐮侊紝鍒欒繑鍥炵殑絎竴涓猄et閲屽寘鍚涓嬭礬寰勶細
/order.jsp
/index.jsp
/Styles.css
/images/
/details.jsp
/WEB-INF/
/checkOut.jsp
/browse.jsp
/shoppingCart.jsp
/search.jsp
/menu.jsp
絎簩涓猄et閲屽寘鍚涓嬭礬寰勶細
/WEB-INF/faces-config.xml
/WEB-INF/web.xml
/WEB-INF/classes/
/WEB-INF/lib/
鍥?-2 嫻嬭瘯getResourcesPath鐨勭洰褰曠粨鏋?
getResourceAsStream鏂規硶鏄疭ervletContext.getResourceAsStream鐨勫寘瑁呭櫒錛屽畠榪斿洖鎸囧畾璺緞涓綔涓簀ava.io.InputStream瀵硅薄鐨勮祫婧愩傚叾鏂規硶絳懼悕濡備笅錛?
public abstract java.io.InputStream getResourceAsStream(String path)
3.3.12 緙栫爜URL
encodeURL鏂規硶鏄疕ttpServletResponse.encodeURL鏂規硶鐨勫寘瑁呭櫒錛屽畠緙栫爜緇欏畾鐨刄RL錛屽叾鏂規硶鏄姞鍏ヤ細璇濈殑ID淇℃伅錛涙垨鑰咃紝濡傛灉涓嶉渶瑕佽繖涓楠わ紝鍒欑洿鎺ュ皢緇欏畾鐨刄RL鍘熷皝涓嶅姩鍦拌繑鍥炪傚叾鏂規硶絳懼悕濡備笅錛?
public abstract String encodeURL(String url)
鍦╬ortlet涓嬌鐢?span class="hilite1">JSF鏃訛紝encodeActionURL鍜宔ncodeResourceURL鏂規硶寰堟湁鐢ㄣ俥ncodeActionURL榪嬌URL浣滀負鍙傛暟浼犻掞紝閫犳垚鍔ㄤ綔鍦ㄥ叆鍙?portlet涓搗浣滅敤銆傝繖涓柟娉曠殑絳懼悕濡備笅錛?
public abstract String encodeResourceURL(String sb)
encodeResourceURL鏂規硶榪嬌URL浣滀負鍙傛暟浼犻掞紝寮曠敤璧勬簮浠ュ湪鍏ュ彛/portlet涓搗浣滅敤銆傝鏂規硶閫犳垚URL闇瑕佹牴鎹寘鎷殑鐗瑰畾鍏ュ彛榪涜閲嶅畾鍚戙傚疄闄呬笂錛屽畠綆鍗曞湴榪斿洖涓涓粷瀵筓RL銆備笅闈㈡槸encodeResourceURL鏂規硶鐨勭鍚嶏細
public abstract String encodeResourceURL(String sb)
3.3.13 鍒嗘淳璇鋒眰
dispatchMessage鏂規硶鍙牴鎹綋鍓嶄笂涓嬫枃鍒嗘淳璇鋒眰銆傚servlet鑰岃█錛屽畠閫氳繃璋冪敤forward瀹炵幇榪欎竴鐐癸紱鑰屽portlet鑰岃█錛屽垯鏄氳繃璋冪敤include鏂規硶瀹炵幇榪欎竴鐐廣傛鏂規硶鐨勭鍚嶅涓嬶細
public abstract void dispatchMessage(String requestURL)
throws java.io.IOException, FacesException
<img id="indicator1" src="${pageContext.request.contextPath}/images/indicator.gif"
alt="Loading Info" style="display:none"/>