web開發之四個域物件
Web開發中的四個域物件(範圍由小到大):
page(jsp有效)request(一次請求) session(一次會話) application(當前web應用)
page域指的是pageContext.
request域指的是request HttpServletRequest
session 域指的是 session HTTPSession
application 域指的是 application ServletContext
之所以他們是域物件,原因就是他們都內建了map集合,都有setAttribute getAttribute方法。
他們都有自己固定的生命週期和作用域。
這四個物件的生命週期(
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。
申明:此文轉自百度文庫,作者不詳,因為覺得寫得很詳細轉自本空間以備日後好查。