ServletContext

ServletContext是一個儲存了web應用程序下所有servlet可共享的資源的上下文對象,通過ServletContext可以獲取全局共享的資源,也可以通過名稱將對象屬性綁定到上下文。

setAttribute
getAttribute
getAttributeNames
removeAttribute

以上這些方法提供了綁定,移除,獲取全局資源的方法。(方法爲ServletContext接口中的方法)

ServletContext接口通過下列方法提供對web應用組成的靜態內容文檔層級的直接訪問,包括HTML,GIF和JPEG文件:
getResource
getResourceAsStream

舉例來理解ServletContext對象

1.Tomcat啓動→讀入xml文件
2.容器爲這個應用建立一個新的ServletContext實例,應用的所有部分都共享這個上下文
3.如果xml中有定義上下文的初始參數,則容器首先創建初始參數實例(應該就像一個Bean一樣)
4.把初始化參數實例的引用交給ServletContext
5.容器建立一個新的servlet,這時建立一個新的ServletConfig對象,並且爲這個ServletConfig對象提供一個ServletContext的引用
6.調用servlet的init()方法初始化servlet

既然,ServletContext是由Servlet容器初始化的,那spring的ContextLoaderListener又做了什麼初始化呢?

1、servlet容器啓動,爲應用創建一個“全局上下文環境”:ServletContext
2、容器調用web.xml中配置的contextLoaderListener,初始化WebApplicationContext上下文環境(即IOC容器),加載context-param指定的配置文件信息到IOC容器中。WebApplicationContext在ServletContext中以鍵值對的形式保存
3、容器初始化web.xml中配置的servlet,爲其初始化自己的上下文信息servletContext,並加載其設置的配置信息到該上下文中。將WebApplicationContext設置爲它的父容器。
4、此後的所有servlet的初始化都按照3步中方式創建,初始化自己的上下文環境,將WebApplicationContext設置爲自己的父上下文環境。

以我的理解,webApplicationContext(IOC容器)中儲存了

web.xml中 param-name 爲 contextConfigLocation的參數下的所有配置文件的信息,作爲所有servlet的父上下文環境

http://www.cnblogs.com/brolanda/p/4265597.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章