ServletContext的概念和作用範圍
ServletContext是javax.servlet包內定義的接口,Web容器會為每個Web程序構造一個實現該接口的對象實例,通過這個對象,Servlet可以和web容器進行交互,如獲取Web容器版本號,通過Web容器的日誌機制記錄信息等;也可以和同一Web程序的其他Servlet進行交流,如可以通過該對象的屬性來共享數據。
獲取ServletContext()對象的方法:
- 通過ServletConfig對象的getServletContext()方法獲取。
ServletContext sc=getServletConfig().getServletContext();
- 直接通過Servlet的getServletContext()方法獲取
ServletContext sc=getServletContext();(其實底層實現也是通過ServletConfig對象)
web程序只有一個ServletContext對象,程序內所有Servlet獲取的實質都是同一個對象的引用,因此可以使用它進行數據共享。
ServletContext獲取初始化參數的方法,
String getInitParameter(String name) 獲取名為name的初始參數值,不存在時返回nul
Enumeration getInitParameterNames() 獲取所有初始參數的名稱,不存在時返回空的Enumeration,不會返回null
使用ServletContextAttributeListener監聽器
監聽器實際是一個實現特定接口的java類。Servlet中定義了幾種監聽器接口,分別對應不同的事件類型,這裏介紹ServletContextAttributeListener。ServletContextAttributeListener接口定義了三個方法,
Web容器調用監聽器方法時,通過傳入ServletContextAttributeEvent對象來描述事件的詳細情況。
ServletContext的概念和作用範圍