Servlet初始化參數與上下文初始化參數
Servlet初始化參數:
Servlet初始化參數定義在web.xml中的一個servlet元素中,例如:
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>com.bk.Test</servlet-class>
<init-param>
<param-name>default-time</param-name>
<param-value>60</param-value>
</init-param>
</servlet>
可以有若干個<init-param>對。
怎樣取得Servlet初始化參數?
通過ServletConfig接口的getInitParameter(java.lang.String name)方法。
getServletConfig()該方法定義在Servlet接口中,返回ServletConfig接口的引用。
所有的servlet都繼承了該方法。當容器實例化一個servlet之前,會從web.xml中讀取這個servlet的初始化參數,
並把這些參數交給ServletConfig,然後在調用init()方法時,容器會傳送這個ServletConfig的引用
到servlet。每個servlet都會有一個唯一的ServletConfig引用。一旦有了ServletConfig的引用就可以調用getInitParameter()方法來
取得我們在servlet中設置的初始化參數。
上下文初始化參數:
上下文初始化參數與Servlet初始化參數類似,區別是上下文初始化參數對整個web應用而不是Servlet初始化參數只對應一個servlet。
在web應用的整個生命週期中上下文初始化參數都存在,任意的servlet和jsp都可以隨時隨地的訪問它。
在web.xml中的配置例子如下:
<context-param>
<param-name>default-time</param-name>
<param-value>60</param-value>
</context-param>
上下文初始化參數對應於整個web應用,因此它不在某個servlet元素內。一個web應用有一個ServletContext,而一個servlet有一個ServletConfig。
怎樣取得上下文初始化參數?
servlet的ServletConfig對象擁有該servlet的ServletContext的一個引用,所以可這樣取得上下文初始化參數;
getServletConfig().getServletContext().getInitParameter()
也可以在servlet中直接調用getServletContext().getInitParameter(),兩者是等價的。