1. 程式人生 > >Context上下文的理解,此文比較通俗易懂轉發給大家看看

Context上下文的理解,此文比較通俗易懂轉發給大家看看

淺談上下文(context)

Context(上下文)在Java程式設計中是一個非常重要的概念,而且出現頻率很高;但是又是一個比較難理解的東西,或許“上下文”這種翻譯也不太恰當,我覺得如果找不到一個合適的中文意思,倒不如不翻譯。下面列舉幾個涉及Context的例子。

第一、ServletContext是Servlet中最大的一個介面,呈現了web應用的Servlet檢視。它代表當前的web應用,所有的Servlet共享同一個ServletContext物件,因此Servlet物件之間可以通過ServletContext物件來實現通訊。ServletContext物件通常也被稱之為context域物件。這裡的Context可以理解成是一種容器,而且容器裡的東西是共享的。

第二、pageContext是JSP中的內建物件之一,它是javax.servlet.jsp.PageContext類的例項物件。提供了對JSP頁面所有的物件及名稱空間的訪問,這裡Context看作是一個實現訪問JSP頁面之間的資料共享的容器。

第三、在著名框架Spring中,Context(上下文)的概念更是得到了廣泛的應用。BeanFactory 介面的子介面ApplicationContext 就表示一個功能更加豐富的工廠,它既涵蓋了BeanFactory 具備的所有功能,也增加了國際化、資源訪問(如URL和檔案)、事件傳播等方面的支援。

第四、Context在android中的應用,可以說Context的概念貫穿了整個android體系;在Service、BroadcastReceiver、Activity等都會用到Context的相關方法。位於framework package的android.content.Context中。它是一個抽象類,而且提供了該抽象類的具體實現類ContextIml類。只有通過Context才能識別呼叫者的例項,比如說Toast的第一個引數就是Context,一般在Activity中我們直接用this代替,代表呼叫者的 例項為Activity,Context提供了關於應用環境全域性資訊的介面。這裡的Context可以理解為呼叫所在的環境

。總之,Context可以理解為提供資訊或功能的容器或者環境。個人觀點,感覺說得有點淺顯、片面。希望大家補充指正。