日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JSF如何使用ExternalContext

使用ExternalContext類(lèi)提供的方法可以獲取ServletContext、ServletRequest和ServletResponse 對(duì)象,構(gòu)造FacesContext實(shí)例時(shí)需要這些對(duì)象。除此之外,ExternalContext實(shí)例提供了包裝器方法,可以使用這些方法獲得原來(lái)需要從ServletContext、ServletRequest及ServletResponse對(duì)象上調(diào)用一些方法獲得的信息。

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元善右做網(wǎng)站,已為上家服務(wù),為善右各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575

獲取ServletContext、ServletRequest和ServletResponse對(duì)象可使用下列方法獲取servlet信息:
◆getContext 此方法可獲取Web應(yīng)用中與當(dāng)前請(qǐng)求相關(guān)聯(lián)的ServletContext對(duì)象。其簽名如下:public abstract Object getContext()
◆getRequest 此方法可獲取代表當(dāng)前正在處理的請(qǐng)求的ServletRequest對(duì)象。其簽名如下:public abstract Object getRequest()
◆getResponse 此方法可獲取代表當(dāng)前正在呈現(xiàn)的響應(yīng)的ServletResponse對(duì)象。其簽名如下:public abstract Object getResponse()這些方法都是返回一個(gè)java.lang.Object對(duì)象,不是servlet特有的類(lèi)型,這樣就可以使JSF實(shí)現(xiàn)獨(dú)立于其運(yùn)行的環(huán)境。比如,JSF既可用于Web容器,也可以用于其他容器,如portlet等。

獲取ServletContext特性getApplicationMap方法返回一個(gè)包含ServletContext對(duì)象里全部特性名/值對(duì)的Map 對(duì)象。下面是此方法的簽名:public abstract java.util.Map getApplication()作為一個(gè)例子,下面的代碼可獲取一個(gè)名叫databaseUtility的特性:

  1. Object contextAttribute = null;    
  2. FacesContext facesContext = FacesContext.getCurrentInstance();    
  3. ExternalContext externalContext = facesContext.getExternalContext();    
  4. Map contextMap = externalContext.getApplicationMap();    
  5. if (contextMap!=null)contextAttribute = contextMap.get("databaseUtility");   

獲取Session對(duì)象及其特性通過(guò)ExternalContext對(duì)象可訪問(wèn)與當(dāng)前請(qǐng)求相關(guān)聯(lián)的Session對(duì)象。getSession方法可取回當(dāng)前用戶(hù)的javax.servlet.http.HttpSession對(duì)象,如果當(dāng)前用戶(hù)沒(méi)有相應(yīng)的Session對(duì)象,此方法的行為由傳入的參數(shù)決定:如果為該方法傳入了一個(gè)true值,它會(huì)創(chuàng)建一個(gè)Session對(duì)象;否則,它會(huì)返回null。下面是getSession方法的簽名:public abstract Object getSession(boolean create)此方法其實(shí)是javax.servlet.http.HttpServletRequest接口中g(shù)etSession方法的包裝器。 getSessionMap方法返回一個(gè)包含與當(dāng)前請(qǐng)求相關(guān)聯(lián)的Session對(duì)象里所有特性名/值對(duì)的Map對(duì)象。下面是它的方法簽名:public abstract java.util.getSessionMap()要獲取Session對(duì)象里的特性,可調(diào)用Map類(lèi)的get方法,傳入要獲取的特性名即可。文檔中沒(méi)有指明在當(dāng)前請(qǐng)求沒(méi)有相應(yīng)Session對(duì)象的情況下,此方法是返回null還是一個(gè)空的Map對(duì)象。所以在調(diào)用Map的get方法之前,需要先檢查 Map是否為null。下面的代碼是獲取Session特性的例子:
◆Object sessionAttribute = null;
◆FacesContext facesContext = FacesContext.getCurrentInstance();
◆ExternalContext externalContext = facesContext.getExternalContext();
◆Map sessionMap = externalContext.getSessionMap();
◆if (sessionMap!=null)sessionAttribute = sessionMap.get(key);
***一行的key是一個(gè)包含特性名的字符串。

獲取ServletContext對(duì)象的初始參數(shù)getInitParameter方法是ServletContext對(duì)象的 getInitParameter方法的包裝器,用這個(gè)方法可以提取在部署描述符(web.xml文件)里用context-init元素指定的初始參數(shù)值。此方法的簽名如下:public abstract String getInitParameter(String parameterName)舉例來(lái)說(shuō),如果在部署描述符聲明了如下context-init元素:contactPersonScott Jobim下面代碼中的字符串變量initParam的值會(huì)是
◆Scott Jobim。FacesContext facesContext = FacesContext.getCurrentInstance();
◆ExternalContext externalContext = facesContext.getExternalContext();
◆String initParam = externalContext.getInitParameter("contactPerson");
◆getInitParameterMap方法返回一個(gè)包含ServletContext對(duì)象中全部初始參數(shù)的Map對(duì)象。

其簽名如下:public abstract java.util.Map getInitParameterMap()為了獲取一個(gè)初始參數(shù)的值,使用Map對(duì)象的get方法,同時(shí)傳遞初始參數(shù)的名稱(chēng)。比如,下面的代碼把初始參數(shù)databaseName的值輸出到控制臺(tái)。
◆FacesContext facesContext = FacesContext.getCurrentInstance();
◆ExternalContext externalContext = facesContext.getExternalContext();
◆Map paramMap = externalContext.getInitParameterMap();
◆if (paramMap!=null) {System.out.println(paramMap.get"databaseName"));}

獲取Request對(duì)象的特性getRequestMap方法返回一個(gè)包含當(dāng)前Request對(duì)象中全部特性名/值對(duì)的Map對(duì)象。其方法簽名如下:public abstract java.util.Map getRequestMap()作為一個(gè)例子,下面的代碼可用來(lái)提取Request對(duì)象里的特性:
◆Object requestAttribute = null;FacesContext facesContext = FacesContext.getCurrentInstance();
◆ExternalContext externalContext = facesContext.getExternalContext();
◆Map requestMap = externalContext.getRequestMap();if (requestMap!=null)requestAttribute = requestMap.get(key);

***一行里的Key是一個(gè)包含要提取的屬性名的字符串。

訪問(wèn)Request對(duì)象里的參數(shù)名和值getRequestParameterMap、getRequestParameterNames和 getRequestParameterValuesMap方法可用來(lái)訪問(wèn)Request對(duì)象里的參數(shù)名和值。 getRequestParameterMap返回一個(gè)包含Request對(duì)象里全部參數(shù)名/值對(duì)的Map對(duì)象。其簽名如下:public abstract java.util.Map getRequestParameterMap()作為一個(gè)例子,下面的代碼可用來(lái)提取名為id的請(qǐng)求參數(shù)的值:

  1. String id = null;    
  2. FacesContext facesContext = FacesContext.getCurrentInstance();    
  3. ExternalContext externalContext = facesContext.getExternalContext();    
  4. Map requestParameterMap = externalContext.getRequestParameterMap();    
  5. if (requestParameterMap!=null)    
  6. id = (String) requestParameterMap.get("id");  

getRequestParameterNames方法返回一個(gè)包含全部請(qǐng)求參數(shù)名的Iterator。此方法其實(shí)是 ServletRequest.getParameterNames方法的包裝器。不同的是,ExternalContext類(lèi)的 getRequestParameterNames返回一個(gè)Iterator,而不是java.util.Enumeration。此方法的簽名如下:
public abstract java.util.Iterator getRequestParameterNames()
作為一個(gè)例子,下面的代碼把所有的請(qǐng)求參數(shù)名/值對(duì)輸出到控制臺(tái)。

  1. FacesContext facesContext = FacesContext.getCurrentInstance();    
  2. ExternalContext externalContext = facesContext.getExternalContext();    
  3. Map requestParameterMap = externalContext.getRequestParameterMap();    
  4. Iterator parameterNames = externalContext.getRequestParameterNames();    
  5.  while (parameterNames.hasNext()) {    
  6.     String parameterName = (String) parameterNames.next();    
  7.     String parameterValue =(String) requestParameterMap.get(parameterName);    
  8.     System.out.println(parameterName + " : " + parameterValue);    
  9.  }   

getRequestParameterValuesMap方法返回一個(gè)包含Request對(duì)象里全部參數(shù)名/值對(duì)的Map對(duì)象。此方法與 getRequestParameterMap方法很相似,但getRequestParameterValuesMap可返回全部相同參數(shù)名的值。在此方法返回的Map對(duì)象上調(diào)用get(key)方法,這一點(diǎn)等同于獲取當(dāng)前請(qǐng)求的ServletRequest并在其上調(diào)用 getParameterValues(key)。也就是說(shuō),Map對(duì)象返回的是一個(gè)字符串?dāng)?shù)組。 GetRequestParameterValuesMap方法的簽名如下:public abstract java.util.Map getRequestParameterValuesMap()下面例子中的代碼把請(qǐng)求參數(shù)id的全部值輸出到控制臺(tái)。

  1. String[] id = null;    
  2. FacesContext facesContext = FacesContext.getCurrentInstance();    
  3. ExternalContext externalContext = facesContext.getExternalContext();    
  4. Map requestParameterValuesMap = externalContext.getRequestParameterValuesMap();    
  5. if (requestParameterValuesMap!=null) {    
  6.     id = (String[]) requestParameterValuesMap.get("id");// print all values of id    
  7.     for (int i=0; i; i++) {    
  8.        System.out.println(id[i]);    
  9.     }    
  10. }   

獲取請(qǐng)求頭的名和值getRequestHeaderMap方法返回一個(gè)包含當(dāng)前請(qǐng)求中全部頭名/值對(duì)的Map對(duì)象。其方法簽名如下:
public abstract java.util.Map getRequestHeaderMap()
舉個(gè)例子來(lái)說(shuō),下面的代碼提取host頭的值:

  1. String host = null;    
  2. FacesContext facesContext = FacesContext.getCurrentInstance();    
  3. ExternalContext externalContext = facesContext.getExternalContext();    
  4.  Map headerMap = externalContext.getRequestHeaderMap();    
  5. if (headerMap!=null) {    
  6.      host = (String) headerMap.get("host");    
  7.      System.out.println(host);    
  8. }   

注意:報(bào)頭的名稱(chēng)是不區(qū)分大小寫(xiě)的。比如,對(duì)getRequestHeaderMap返回的Map對(duì)象分別用host、Host和Host作為參數(shù)來(lái)調(diào)用 get方法,其結(jié)果是一樣的。getRequestHeaderValuesMap方法與getRequestHeaderMap方法相似。但在 getRequestHeader
ValuesMap方法返回的Map對(duì)象上調(diào)用get方法會(huì)得到一個(gè)字符串的數(shù)組。getRequestHeaderValuesMap方法的簽名如下:
public abstract java.util.Map getRequestHeaderValuesMap()
在getRequestHeaderValuesMap方法返回的Map對(duì)象上調(diào)用get方法會(huì)返回一個(gè) java.util.Enumeration值。下面的代碼使用getRequestHeaderValuesMap方法來(lái)獲取一個(gè)包含全部頭名/值對(duì)的 Map對(duì)象,然后在此Map對(duì)象上調(diào)用get方法以獲取全部Accept-Encoding頭的值,并將結(jié)果輸出到控制臺(tái)。

  1. FacesContext facesContext = FacesContext.getCurrentInstance();    
  2. ExternalContext externalContext = facesContext.getExternalContext();    
  3. Map headerValuesMap = externalContext.getRequestHeaderValuesMap();    
  4. if (headerValuesMap!=null) {    
  5.      Enumeration headers =(Enumeration) headerValuesMap.get("Accept-Encoding");    
  6.      while (headers.hasMoreElements()) {    
  7.         String value = (String) headers.nextElement();    
  8.         System.out.println(value);    
  9.     }    
  10. }   

分享題目:JSF如何使用ExternalContext
文章出自:http://m.5511xx.com/article/coijjjp.html