JSP的作用域一般是對於變數而言的,描述的是變數在某處是否有效(可用) 1.第一個作用域是page,只在當前頁面有效。也就是用戶請求的頁面有效,噹噹前頁面關閉或轉到其他頁面時,page對象將在響應回饋給客戶端後釋放。 2.第二個作用域是request,在當前請求中有效。request可以通過setA ...
JSP的作用域一般是對於變數而言的,描述的是變數在某處是否有效(可用)
名稱 | 作用域 |
page | 當前頁面有效 |
request | 當前請求中有效 |
session | 當前會話有效 |
application | 整個項目應用中有效 |
1.第一個作用域是page,只在當前頁面有效。也就是用戶請求的頁面有效,噹噹前頁面關閉或轉到其他頁面時,page對象將在響應回饋給客戶端後釋放。
2.第二個作用域是request,在當前請求中有效。request可以通過setAttribute()和getAttribute方法存取值實現頁面中的信息傳遞,也可以通過forward()方法進行頁面間的跳轉(需要註意的是request是轉發不是重定向,轉發相對於瀏覽器來說是透明的,也就是無論頁面如何跳轉,地址欄上顯示的依舊是最初的地址,瀏覽器感知不到),在這些轉發頁面中都可以使用request中存儲的信息。
3.第三個作用域是session,在當前會話中有效。當一個臺電腦上的同一瀏覽器對伺服器進行多次訪問時,在這多次訪問之間傳遞的信息就是session作用域的範圍。它從瀏覽器發出第一個HTTP請求即可認為會話開始,在瀏覽器關閉時結束會話,但是會話結束的時間是不確定的,因為在瀏覽器關閉時並不會通知伺服器,一般Tomcat設置的預設時間為120分鐘,也可以通過setMaxInactiveInterval(int)方法進行設置,或是通過invalidate()方法強制結束當前會話。session也可以通過setAttribute賦值和getAttribute取值。
4.第四個作用域是application,在整個項目的應用程式中都有效。也就是當伺服器開始到伺服器結束這段時間,application作用域中存儲的數據都是有效的,同樣可以通過setAttribute賦值和getAttribute取值。要註意application里的變數可以被所有用戶共用,當一個用戶對application中的變數做了修改,其他用戶再訪問的是修改後的值。