1. 程式人生 > >JSP的範圍(作用域)

JSP的範圍(作用域)

如果 用戶 請求 方法 str tro 不同 include 來看

JSP的範圍(作用域)

JSP頁面中的對象,包括用戶創建的對象如JavaBean,都有一個範圍屬性,這個範圍也被叫做“作用域”。範圍定義了在什麽時間內,在哪一個JSP頁面中可以訪問這些對象。例如,session對象在會話期間內,可以在多個頁面被訪問。Application對象在整個Web應用的整個生命周期範圍內都可以被訪問。在JSP中,有4種範圍。那就是page範圍、request範圍、session範圍和application範圍。

page範圍

首先,我們來看page範圍,具有page範圍的對象被綁定到javax.servlet.jsp.PageContext對象中,這個範圍的對象,只能在創建對象的頁面中訪問。可以調用pageContext這個隱含對象的getAttribute()方法來訪問這個範圍的對象,也可以使用setAttribute方法來設置這個範圍的對象或屬性。Page範圍的對象,在客戶端每次請求JSP頁面時創建,在頁面向客戶端發送響應或者請求被轉發之後這個對象或屬性就會被刪除了。

request範圍

接下來,我們再來看request範圍的對象。具有request範圍的對象被綁定到了javax.servlet.http.HttpServletRequest對象中,可以調用request內置對象的set/getAttribute方法來設置或者訪問這個範圍的對象。在調用forward方法轉向其他頁面或者使用include中包含的頁面中也是可以訪問這個範圍的對象的。但是這個範圍內的對象只對相同的請求是有效的,也就是說對於不同的請求之間是不能共享這個範圍內的對象的。

session範圍

接下來,我們再來看session範圍的對象。具有session範圍的對象被綁定到 javax.servlet.http.HttpSession對象中,可以調用session內置對象的set/getAttribute方法來訪問具有這種範圍的對象,這個範圍的對象是針對會話的,它們只能在相同的會話期間被訪問,如果不同的會話期間,則這樣的對象也是不能共享的。

application範圍

最後,我們來看application範圍的對象。具有application範圍的對象被綁定到javax.servlet.ServletContext對象中,可以調用application內置對象的set/getAttribute方法來訪問具有這種範圍的對象。在web應用運行期間,所有的頁面都可以訪問這個範圍的對象。

JSP的範圍(作用域)