內置對象的作用范圍是指每個內置對象的某個實例在多長時間和多大的范圍中有效,即在什么樣的范圍內可以有效地訪問同一個對象實例。
在javax.servlet.jsp.PageContext的類中定義了4個常量來指定內置對象的作用范圍:APPLICATION_SCOPE、SESSION_SCOPE、PAGE_SCOPE、REQUEST_SCOPE,它們分別代表了對象的“生命周期”。
1、Application的作用范圍
該范圍是從服務器開始運行到服務器關閉。
所有jsp內置對象中,application對象停留的時間最長。一旦application對象的數量過大,服務器運行效率會大大降低。
2、Session的作用范圍
該范圍是從客戶端與服務器連接開始,到連接中斷為止。
指定的session對象作用范圍根據訪問用戶的數量和時間而定。與application對象不同,服務器中可能存在多個session對象,但每個session對象實例的作用范圍會相差很大。此外,有些服務器對session對象有默認的時間限制,若超出該時間限制,session會自動消失,自動斷開連接。
3、Request的作用范圍
該范圍是從一個jsp頁面向另一個jsp頁面提出請求到請求完成之間,到完成請求后結束。
項目ch04案例:
step1:創建request.jsp頁面
step2:創建reques1.jsp頁面
step3:創建request2.jsp頁面
結果:http://localhost:8080/ch04/request.jsp
點擊鏈接后:
點擊鏈接后,request對象的作用范圍消失,所以獲取不到值。
4、Page的作用范圍
該范圍是當前頁面。
上述表中,除了pageContext對象中沒有getAttributeNames()方法外,其余方法在pageContext、request、session和application對象中均可使用。