1. 程式人生 > 其它 >javaWEB中的四種域物件

javaWEB中的四種域物件

javaWEB中的四種域物件

(1)ServletContext

 

ServletContext是最大的Web域物件,在整個工程內有效,可以儲存一些需要全域性部署的配置檔案,也可以儲存其他資訊,不過因為它的生命週期最長,是隨著伺服器的開

啟而開啟,隨著伺服器的關閉而銷燬,或者專案從伺服器中移除工程而銷燬。所以ServletContext中儲存資料,會一直儲存在記憶體中,所以少用這個物件會比較節省記憶體。

(2)Session

 

session的生命週期,隨著getSession方法的呼叫而建立,預設是30分鐘不呼叫就會銷燬這個session物件,伺服器非正常關閉也會銷燬session,伺服器正常關閉只會將

session序列化到磁碟中,在下一次開啟的時候會再載入進記憶體,所以一次會話結束,瀏覽器結束,並不會銷燬session,但是會使得該瀏覽器失去金鑰,從而無法訪問這個

session;還有手動呼叫session.invalidate()會銷燬session。session的作用範圍是一次會話,也就是從開啟瀏覽器到關閉瀏覽器。

Session與Cookie的比較:

1)、cookie是存於瀏覽器端,而session是存於伺服器端。

2)、cookie有數量和大小限制,而session沒有,可以無限建立。

3)、session因為幾乎只有一次的作用,會對伺服器產生較多的垃圾,所以還是慎用。

(3)Request

 

Request的作用範圍是一次訪問的過程,生命週期隨著訪問開始而開始,隨著伺服器的響應完畢而結束,所以

更多的資料會新增到這個域物件。

 1)、轉發會攜帶這第一次的ServletRequest的資訊,傳遞到下一個檔案,而重定向是重新開啟一次訪問,不會攜帶。

2)、轉發上面的位址列不會發生改變就訪問了別的內容,重定向會發生改變。

3)、轉發只能存在於伺服器內部,重定向可以訪問任何其他的網頁。

4)、因為轉發只建立了一次客戶端和伺服器的連結,所以相對而言轉發會比較節省網路資源。

(4)Page域

Page的作用範圍為當前頁有效,只能用於jsp頁面中,是四個域物件中作用範圍最小的的一個域物件。