4.5.2 application域
一个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域一起详细讲解。