<web-app ...>
<context-param>
<param-name>foo</param-name>
<param-value>bar</param-value>
</context-param>
<!-- other stuff including
servlet declarations -->
</web-app>
Within the <web-app> element but NOT
within a specific <servlet> element
Servlet init parameters在web.xml中如下
<servlet>
<servlet-name>
BeerParamTests</servlet-name>
<servlet-class>
TestInitParams
</servlet-class>
<init-param>
<param-name>foo</param-name>
<param-value>bar</param-value>
</init-param>
<!-- other stuff -->
</servlet>
Within the <servlet> element for each
specific servlet
通过这样的代码获取ServletContext
getServletContext().getInitParameter(“foo”);
通过这样的代码获取ServletConfig
getServletConfig().getInitParameter(“foo”);
Availability
To any servlets and JSPs that are part
of this web app.(ServletContext是对于任何的jsp或者servlet都是有效的,可以访问的)
configured.
(Although the servlet can choose to make it more
widely available by storing it in an attribute.)
(ServletConfig对于特定配置好<inti-param>的servlet有效)
对于每一个servlet都有一个servletConfig
对于整个webapp有一个ServletContext
当web app初始化的时候,容器(比如tomcat)读取web.xml,并且为<context-param>创建一个键值对,
容器创建一个新的ServletContext实例,
容器将键值对传递给创建好的实例ServletContext
web app中的任何一部分都有访问这个ServletContext的权限