:Web開發中的四個域對象: 有
範圍小到大:
page(jsp有效) page域指的是pageContext.
request(一次請求) request域指的是request HttpServletRequest
session(一次會話) session 域指的是 session HTTPSession
application(當前web應用) application 域指的是 application ServletContext
之所以他們是域對象,原因就是他們都內建了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。