application 对象用于保存所有应用程序中的共有数据,它在服务器启动时自动创建,在服务器停止时销毁。
当application对象没有被销毁时,所有用户都可以共享该application对象。
与session相比,application的生命周期更长,类似于系统的“全局变量”
访问应用程序初始化参数
application 提供了对应用程序初始化参数进行访问的方法。
应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。
eg:先在web.xml文件中通过<context-param>标记配置应用程序初始化参数
// 配置链接MySQL数据库所需的url参数
...
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/db_database</param-value>
</context-param>
</web-app>
application对象提供了两种访问应用程序初始化参数的方法:
- getInitParameter()方法
用于返回已命名的参数值,语法如下:
application.getInitParameter(String name);
// eg
application.getInitParameter("url");
- getAttributeNames()方法
用于返回所有已定义的应用程序初始化参数名的枚举,语法如下:
application.getAttributeNames();
// eg
<%@ page import = "java.util.*"%>
<%
Enumeration enumeration = application.getInitParameterNames();
while (enumeration.hasMoreElements()){
String name = (String)enumeration.nextElement();
String value = application.getInitParameter(name);
out.println(name + ": ");
out.println(value);
}
%>
// result
url: jdbc:mysql://127.0.0.1:3306/db-database
管理应用程序环境属性
与session对象相同,可以在application对象中设置属性,但application对象在整个应用区域中都有效
application对象管理应用程序环境属性的方法介绍如下:
- getAttributeNames():获取所有application对象使用的属性名
- getAttribute(String name):从application对象中获取指定对象名
- setAttribute(String key, Object obj):使用指定名称和指定对象在application对象中进行关联
- removeAttribute(String name):从application对象中删去指定名称的属性