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) | 將信息寫入日志文件中。 |