- web容器在启动时,它会为每个web应用程序都创建一个对应的ServletContext对象,他代表当前的web应用。
- 由于一个web应用中所有的servlet共享同一个ServlrtContext对象,因此servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称为context域对象
- 查看ServletContext API文档,了解ServletContext对象的功能
应用:
- 获取web应用的全局初始化参数
- 通过ServletContext对象实现数据共享,例如统计站点访问次数
- 利用ServletContext对象读取资源文件
在ServletConfig类里有getServletContext()方法
创建一个servlet类,命名为ServletContextDemo里面的init方法改为带参数的
public void init(ServletConfig config) throws ServletException {
//获得ServletContext对象
ServletContext sc=config.getServletContext();
//获得ServletContext级别的全局容器参数
String contextvalue=sc.getInitParameter("context_key");
System.out.println(contextvalue);
}
通过“context_key”获得web.xml配置文件里响应的paprm_value并输出到屏幕上
web.xml文件中的配置:
<!-- 全局的容器参数 -->
<context-param>
<param-name>context_key</param-name>
<param-value>context_value</param-value>
</context-param>
<servlet>
<servlet-name>ServletContextDemo</servlet-name>
<servlet-class>ServletContextDemo</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletContextDemo</servlet-name>
<url-pattern>/ServletContextDemo</url-pattern>
</servlet-mapping>
输出结果: