JSP中初始化參數的設定和擷取方法

來源:互聯網
上載者:User

JSP中初始化參數的設定和擷取方法

Get Init Parameter in JSP Page

By Reawer 2008-8-13
InitParamter存取方法一(內建對象):

一、By ServletConfig :
  Parameter1: {config.getInitParameter("p1") }
  Parameter2: {config.getInitParameter("p2") }
  Parameter3: {config.getInitParameter("p3") }

config遍曆所有Parameter:
二、By ServletContext :
  Parameter1: {application.getInitParameter("p1") }
  Parameter2: {application.getInitParameter("p2") }
  Parameter3: {application.getInitParameter("p3") }

application遍曆所有Parameter:

InitParamter存取方法二(JSF):

InitParamter存取方法三(EL)--相當於application對象訪問:

= ${initParam.p1}
= ${initParam.p2}
= ${initParam.p3}

JSP中的initParameter使用方法及體會
    1. 使用JSP對應的Servlet初始化參數
    給JSP頁面提供初始化參數在三個方面不同於給servlet提供初始化參數。
    1)需要使用使用jsp-file元素代替servlet-class。因此,WEB-INF/web.xml檔案的servlet元素如下所示:

<servlet>
<description>initParameter</description>
<display-name>initParameterJsp</display-name>
<servlet-name>initParameterJsp</servlet-name>
<jsp-file>/jsp/initParameter.jsp</jsp-file>
<init-param>
  <description>parameter Test</description>
  <param-name>paraName</param-name>
  <param-value>paraValue</param-value>
</init-param>
</servlet>

    2) 幾乎總是分配一個明確的URL模式。對servlet,一般相應地使用以http://localhost:8080/webApp/servlet/ 開始的預設URL。
  只需記住,使用註冊名而不是原名稱即可。這對於JSP頁面在技術上也是合法的。例如,可用URL http://localhost:8080/webApp/servlet/PageName
  訪問*.jsp的對初始化參數具有訪問權的版本。但在用於JSP頁面時,我們經常似乎不喜歡應用常規的servlet的URL。
  因此,好的辦法是使用url-pattern將JSP頁面的原URL與註冊的 servlet名相關聯。
  這樣,客戶機可使用JSP頁面的指定名稱,進行訪問。例如,給本JSP的servlet定義,可使用下面的 servlet-mapping定義:
 
<servlet-mapping>
<servlet-name>initParameterJsp</servlet-name>
<!-- 關聯URL模式.此處若不寫成:/jsp/initParameter.jsp則在使用URL(/jsp/initParameter.jsp)訪問時無法取到Servlet中的initParamter值 -->
<url-pattern>/jsp/initParameter</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>initParameterJsp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

    3)JSP頁使用jspInit而不是init。自動從JSP頁面建立的servlet或許已經使用了inti方法。
  一般如上在url-pattern中未寫成/jsp/initParameter.jsp形式,則http://localhost:8080/webApp/*.jsp
  形式的URL將啟用此頁面的不具有初始化參數訪問權的版本,從而將對參數paraName失去訪問權,如本頁中使用config內建對象訪問:
    config.getInitParameter("paraName") ---- 得到結果: null。
  但是, web.xml檔案中已為本JSP頁分配了一個註冊名,該註冊名已與URL模式/jsp/initParameter相關聯。這時使用如下形式訪問:
    http://localhost:8080/webApp/jsp/initParameter
  即則可得到參數:
    config.getInitParameter("paraName"); //---- 得到結果: paraValue。
   
  2. 使用應用範圍內(項目)的初始化參數
  一般,對單個地servlet或JSP頁面分配初始化參數。指定的servlet或JSP頁面利用ServletConfig的getInitParameter方法讀取這些參數。
  但是,在某些情形下,希望設定可由任意servlet或JSP頁面藉助ServletContext的getInitParameter方法讀取的系統範圍內的初始化參數。
  可利用context-param元素宣告這些系統範圍內的初始化值。
  1)context-param元素應該包含param-name、param-value以及可選的description子項目,如下所示:
 
<context-param>
<description>這是一個樣本參數的描述資訊</description>
<!-- 參數名 -->
<param-name>appParaName</param-name>
<!-- 參數值 -->
<param-value>appParaValue</param-value>
</context-param>

  2)存取方法,使用內建的application對象:
  String value = application.getInitParameter("參數名");//---- 得到結果: appParaValue。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.