6.5 application对象
application对象用于保存所有应用程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。
6.5.1 访问应用程序初始化参数
application对象提供了对应用程序初始化参数进行访问的方法。应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过<context-param>标记配置应用程序初始化参数。
【例6.19】 在web.xml文件中配置连接MySQL数据库所需的url参数。示例代码如下:
application对象提供了两种访问应用程序初始化参数的方法,下面分别进行介绍。
getInitParameter()方法
该方法用于返回已命名的参数值。其语法格式如下:
application.getInitParameter(String name);
参数说明:
name:用于指定参数名。
【例6.20】 获取上面web.xml文件中配置的url参数的值,可以使用下面的代码:
application.getInitParameter("url");
getAttributeNames()方法
该方法用于返回所有已定义的应用程序初始化参数名的枚举。其语法格式如下:
application.getAttributeNames();
【例6.21】 应用getAttributeNames()方法获取web.xml中定义的全部应用程序初始化参数名,并通过循环输出。示例代码如下:
如果在web.xml文件中,只包括一个上面添加的url参数,执行上面的代码将显示以下内容:
url: jdbc:mysql://127.0.0.1:3306/db_database
6.5.2 管理应用程序环境属性
与session对象相同,也可以在application对象中设置属性。与session对象不同的是,session只是在当前客户的会话范围内有效,当超过保存时间,session对象就被收回;而application对象在整个应用区域中都有效。application对象管理应用程序环境属性的方法分别介绍如下。
getAttributeNames():获得所有application对象使用的属性名。
getAttribute(String name):从application对象中获取指定对象名。
setAttribute(String key,Object obj):使用指定名称和指定对象在application对象中进行关联。
removeAttribute(String name):从application对象中去掉指定名称的属性。