application对象
1 什么是application对象 ?
(1) 当Web服务器启动时,Web服务器会自动创建一个application对象。application对象一旦创建,它将一直存在,直到Web服务器关闭。
一个Web服务器通常有多个Web服务目录 (网站),当Web服务器启动时,它自动为每个Web服务目录都创建一个application对象,这些application对象各自独立,而且和Web服务目录一一对应。
访问同一个网站的客户都共享一个application对象,因此,application对象可以实现多客户间的数据共享。
访问不同网站的客户,对应的application对象不同。
(2) application对象的生命周期:从Web服务器启动,直到Web服务器关闭。
注意:一个Web应用程序启动后,将会自动创建一个application对象,而且在整个应用程序的运行过程中只有一个application对象,也即所有访问该网站的客户都共享一个application对象。
(3) application对象的作用范围:application对象是一个应用程序级的对象,它作用于当前Web应用程序,也即作用于当前网站,所有访问当前网站的客户都共享一个application对象。
具体来说:不管哪个客户来访问网站A,也不管客户访问网站A下哪个页面文件,都可以对网站A的application对象进行操作,因为,所有访问网站A的客户都共用一个application对象。
因此,当在application对象中存储数据后,所有访问网站A的客户都能够对其进行访问,实现了多客户之间的数据共享。
(4) application对象的基类是:javax.servlet.ServletContext类。
注意:有些Web服务器不直接支持使用application对象,必须用ServletContext类来声明application对象,再调用getServletContext()方法来获取当前页面的application对象。
(5) ServletContext类:用于表示应用程序的上下文。
一个ServletContext类的对象表示一个Web应用程序的上下文。
具体来说:在Web服务器中,提供了一个Web应用程序的运行时环境,专门负责Web应用程序的部署、编译、运行以及生命周期的管理,通过ServletContext类,可以获取Web应用程序的运行时环境信息。
常识:JSP引擎、Servlet引擎、JSP容器和Servlet容器,都是指Web服务器,Web服务器用于管理所有Web应用程序。
(6) application对象的常用方法,如下所示:
方法名 | 描述 |
String getAttribute(String name) | 根据属性名称获取属性值。 |
Enumeration getAttributeNames() | 获取所有的属性名称。 |
void setAttribute(String name, Object object) | 设置属性,指定属性名称和属性值。 |
void removeAttribute(String name) | 根据属性名称删除对应的属性。 |
ServletContext getContext(String uripath) | 获取指定URL的ServletContext对象。 |
String getContextPath() | 获取当前Web应用程序的根目录。 |
String getInitParameter(String name) | 根据初始化参数名称,获取初始化参数值。 |
int getMajorVersion() | 获取Servlet API的主版本号。 |
int getMinorVersion() | 获取Servlet API的次版本号。 |
String getMimeType(String file) | 获取指定文件的MIME 类型。 |
String getServletInfo() | 获取当前Web服务器的版本信息。 |
String getServletContextName() | 获取当前Web应用程序的名称。 |
void log(String message) | 将信息写入日志文件中。 |