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(),两者是等价的。