6.5 application对象
视频讲解:光盘\TM\lx\6\05 application对象.mp4
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参数。代码如下:
... <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);
参数说明:
name:用于指定参数名。
【例6.20】获取上面web.xml文件中配置的url参数的值,可以使用下面的代码:
application.getInitParameter("url");
getAttributeNames()方法
该方法用于返回所有已定义的应用程序初始化参数名的枚举。其语法格式如下:
application.getAttributeNames();
【例6.21】应用getAttributeNames()方法获取web.xml中定义的全部应用程序初始化参数名,并通过循环输出。示例代码如下:
<%@page import="java.util.*"%>
<%
Enumeration enema=application.getInitParameterNames(); //获取全部初始化参数
while(enema.hasMoreElements()){
String name=(String)enema.nextElement(); //获取参数名
String value=application.getInitParameter(name); //获取参数值
out.println(name+":"); //输出参数名
out.println(value); //输出参数值
}
%>
如果在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对象中去掉指定名称的属性。