今天小編就給大家詳細分析一下JavaWeb的四大作用域。四大范圍從小到大:PageContext(jsp頁面)、ServletRequest(一個請求)、HttpSession(一個會話)、ServletContext(整個web應用)。相信大家對這四種javaweb作用域對象,但你真的了解嗎?
一、PageContext 字段:
范圍是整個JSP頁面,是四個范圍中最小的;生命周期在向 JSP 發出請求時開始,在響應結束時被銷毀。
二、ServletRequest 字段:
范圍是整個請求鏈(請求轉發也存在);生命周期由服務器在調用服務方法并傳遞給服務方法之前創建。整個請求結束,請求生命周期結束。
三、HttpSession 域:
范圍是一個會話。生命周期是當第一次調用request.getSession()方法時,服務端會檢查是否已經存在對應的會話,如果沒有則在內存中創建會話并返回。當會話在一段時間內(默認為 30 分鐘)未使用時,服務器將銷毀會話。如果服務器異常關閉(強制關閉),未過期的會話也會被銷毀。如果調用session提供的invalidate(),可以立即銷毀session。
注意:服務器正常關機重啟,Session對象會被鈍化和激活。同時,如果服務器鈍化時間在默認會話銷毀時間內,則激活后會話仍然存在。否則會話不存在。如果在session被鈍化時JavaBean數據沒有實現Serializable,那么在Session被激活時它就會消失。
四、ServletContext 字段:
范圍是整個 Web 應用程序。代表整個 Web 應用程序的 ServletContext 對象在 Web 應用程序加載到容器時創建,并在服務器關閉或 Web 應用程序被刪除時銷毀。
簡而言之,4個javaweb作用域對象可以概括為:PageContext:在本頁有效,跳出頁面無效;ServletRequest:跨頁功能,一般用于表單提交等;HttpSession:在某個會話期間使用;ServletContext:一直有效,關閉服務器后無效。更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。