Java Web从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

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对象中去掉指定名称的属性。