4.5.2 application域

优质
小牛编辑
136浏览
2023-12-01

一个Web应用程序中的所有Servlet共享一个ServletContext对象,所以,ServletContext对象在JSP中也被称为application对象(application是JSP的9个内置对象之一)。在application对象内部有一个Map对象,用来保存Web应用程序中使用的key-value对,保存在application对象中的每一个key-value对也被称为application对象的属性。由于Web应用程序中的所有Servlet共享一个application对象,因此,application对象中的属性也可被称为application域范围内的属性,application域范围内的属性往往被当成Web应用程序的全局变量使用(如整个网站的访问计数器就可以作为application对象的属性被保存在application域中)。在ServletContext接口中定义了如下四个方法来操作application对象的属性:

l getAttributeNames方法

该方法返回一个Enumeration对象,通过这个对象可以获得application对象中所有属性的key值。getAttributeNames方法的定义如下:

public Enumeration getAttributeNames();

2  getAttribute方法

该方法返回一个指定application域属性的值。getAttribute方法的定义如下:

public Object getAttribute(String name);

3  removeAttribute方法

该方法用于删除application对象中的属性。

4  setAttribute方法

向application对象添加一个属性,如果该属性存在,则替换这个属性。如果设置的属性值为null,则相当于调用removeAttribute方法来删除该属性。

Servlet引擎会为每一个Web应用程序创建一个application对象,一个Servlet程序可以被发布到不同的Web应用程序中,而在不同的Web应用程序中该Servlet所对应的application对象是不同的。关于application域的具体应用将会在5.5节和Session域一起详细讲解。