web開發中的四個域物件生命週期 作用域詳細介紹
Web開發中的四個域物件:
有範圍小到大:page(jsp有效) request(一次請求)session(一次會話) application(當前web應用)
page域指的是pageContext.
request域指的是requestHttpServletRequest
session 域指的是 sessionHTTPSession
application 域指的是 applicationServletContext
追所以他們是域物件,原因就是他們都內建了map集合,都有setAttribute getAttribute方法。
他們都有自己固定的生命週期和作用域。
這4個物件的生命週期
宣告週期就是值物件的建立到銷燬的期間。
page:jsp頁面被執行,生命週期開始,jsp頁面執行完畢,宣告週期結束
request:使用者傳送一個請求,開始,伺服器返回響應,請求結束,生命週期結束
session:使用者開啟瀏覽器訪問,建立session(開始),session超時或被宣告失效,該物件生命週期結束
application:web應用載入的時候建立。Web應用被移除或伺服器關閉,物件銷燬。[結束]。
Page只在當前jsp有效,每次請求風別對應不同的request.
Request,只在當前請求有效,每次請求分別對應不同的request域
Session只在一次會話中有效,會話結束就無法取到資料了。
四個域物件在選擇的時候,能用範圍小的絕不用範圍大的
page:資料只是暫時存在集合,在jsp頁面的其他地方要用,用page(頁面中自定義的map)
(什麼時候需要用map了,就用page)
Request:資料只是做顯示的,看完了就沒用了。就存request域,請求轉發,Servlet產生的處理結果(資料)交給jsp顯示。 資料轉發可以帶資料。
Session:資料給使用者看完了,一定還要用,會話結束了就沒用了
使用者登入,使用者資訊發給客戶端看,看完了,一會訪問別的頁面還要看使用者資訊。
購物車,購物車成功了,給使用者看購物車,待會隨時間可以檢視購物車
請求重定向,因為是兩次請求,每一次請求的資料,第二次請求還要看。
application:資料給一個使用者用完了,別人還要用
聊天室,聊天記錄,需要給所有的使用者看
統計網站線上人數,所有看到的應該是一個數
總結:需要定義Map不如用page,請求轉發Servlet,帶給jsp的資料存request請求重定向帶過去的資料存Session,全域性的資料存application。