JSP(JavaServer Pages)提供了四種不同的作用域,分別是:
Page作用域:也稱為頁面作用域,這是最小的作用域。Page作用域中的對象只在當前JSP頁面中有效。當客戶端請求JSP頁面時,頁面作用域的對象被創建,並在頁面回響傳送給客戶端或請求被轉發到其他資源後被銷毀。Page作用域的對象在每次訪問頁面時都會重新初始化。
Request作用域:請求作用域的對象在一次HTTP請求中有效,包括請求的處理和任何隨後的轉發。請求作用域的生命周期從客戶端發起請求開始,直到伺服器處理並回響該請求,或者將請求轉發到另一個頁面或Servlet為止。在此期間,請求參數和屬性都是有效的。一旦客戶端刷新頁面,之前的請求參數和屬性將失效。
Session作用域:會話作用域的對象在整個用戶會話期間有效,從用戶打開瀏覽器開始,直到關閉瀏覽器為止。會話作用域的生命周期從伺服器第一次調用`request.getSession()`方法開始,直到程式調用`HttpSession.invalidate()`方法銷毀會話為止。
Application作用域:應用程式作用域的對象在整個Web應用程式中有效,直到伺服器關閉為止。應用程式作用域的生命周期從伺服器啟動時創建,直到伺服器關閉時銷毀。
簡單總結,作用域從小到大為:PageContext(JSP頁面)、ServletRequest(一次請求)、HttpSession(一次會話)、ServletContext(整個Web套用)。這些作用域規定了數據可以傳遞和共享的範圍以及數據的存活時間。