ServletContext接口
• Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。
• 由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为 application 对象(Web应用程序对象)。
• 功能:
ü 获取WEB应用程序的初始化参数
ü 记录日志
ü application域范围的属性
ü 访问资源文件
ü 获取虚拟路径所映射的本地路径
ü WEB应用程序之间的访问
ü ServletContext的其他方法
web.xml -----------------------------------------------------------------
<!-- 配置当前 WEB 应用的初始化参数 -->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///atguigu</param-value>
</context-param>
<!-- 配置和映射 Servlet -->
<servlet>
<!-- Servlet 注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet 的全类名 -->
<servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class>
<!-- 配置Servlet的初始化参数。且节点必须在load-on-startup节点的前面 -->
<init-param>
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///atguigu</param-value>
</context-param>
<!-- 配置和映射 Servlet -->
<servlet>
<!-- Servlet 注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet 的全类名 -->
<servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class>
<!-- 配置Servlet的初始化参数。且节点必须在load-on-startup节点的前面 -->
<init-param>
注意上面 <init-param>是局部的(只有 helloServlet可用) ,</context-param> 是全局的(任何Servlet 可用)。
HelloServlet.java
// 方法4: 获取 ServletContent对象
ServletContext servletContent = servletConfig.getServletContext();
String driver = servletContent.getInitParameter("driver");
System.out.println("driver, " + driver);
Enumeration<String> names2 = servletContent.getInitParameterNames();
while (names2.hasMoreElements()) {
String name = names2.nextElement();
System.out.println("-->" + name);
}
ServletContext servletContent = servletConfig.getServletContext();
String driver = servletContent.getInitParameter("driver");
System.out.println("driver, " + driver);
Enumeration<String> names2 = servletContent.getInitParameterNames();
while (names2.hasMoreElements()) {
String name = names2.nextElement();
System.out.println("-->" + name);
}