①概要
application对象用于保存所有应用程序中的公有数据,服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。application对象与session对象有所区别,session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内置的application对象。
②访问应用程序初始化参数
通过application对象调用的ServletContext对象提供了对应用程序环境属性的访问。对于将安装信息与给定的应用程序关联起来而言,这是非常有用的。例如,通过初始化信息为数据库提供了一个主机名,每一个Servlet程序客户和JSP页面都可以使用它连接到该数据库并检索应用程序数据。为了实现这个目的,Tomcat使用了web.xml文件,它位于应用程序环境目录下的WEB-INF子目录中。
访问应用程序初始化参数的方法如下表所示:
方 法 说 明
getInitParameter(String name) 返回一个已命名的初始化参数的值
getInitParameterNames() 返回所有已定义的应用程序初始化参数名称的枚举
在web.xml 文件中
<context-param> <!--设置IP信息-->
<param-name>database_host</param-name>
<param-value>192.168.1.17</param-value>
</context-param>
使用时 application.getInitParameterNames();
//获取初始化参数的名字,再用getInitParameter(String name)获取值。
与session对象相同,也可以在application对象中设置属性。在session中设置的属性只是在当前客户的会话范围内容有效,客户超过保存时间不发送请求时,session对象将被回收,而在application对象中设置的属性在整个应用程序范围内是有效的,即使所有的用户都不发送请求,只要不关闭应用服务器,在其中设置的属性仍然是有效的。
application对象管理应用程序环境属性的方法如下所示:
方 法 说 明
removeAttribute(String name) 从ServletContext的对象中去掉指定名称的属性
setAttribute(String name,Object object) 使用指定名称和指定对象在ServletContext的对象中进行关联
getAttribute(String name) 从ServletContext的对象中获取一个指定对象
getAttributeNames() 返回存储在ServletContext对象中属性名称的枚举数据