jsp的scope屬性【轉載】

scope屬性決定了JavaBean對象存在的範圍。
scope的可選值包括:
---page(默認值)
---request
---session
---application
 
一、page範圍內:
客戶每次請求訪問JSP頁面時,都會建立一個JavaBean對象。JavaBean對象的有效範圍是客戶請求訪問的當前JSP網頁。JavaBean對象在如下兩種狀況下都會結束生命期:
---客戶請求訪問的當前JSP網頁經過<forward>標記將請求轉發到另外一個文件
---客戶請求訪問的當前JSP頁面執行完畢並向客戶端發回響應
 
二、request範圍內:
客戶每次請求訪問JSP頁面時,都會建立新的JavaBean對象。JavaBean對象的有效範圍爲:
---客戶請求訪問的當前JSP網頁
---和當前JSP網頁共享同一個客戶請求的網頁,即當前JSP網頁中<%@ include>指令以及<forward>標記包含的其餘JSP頁面
---當全部共享同一個客戶請求的JSP頁面執行完畢並向客戶端發回響應時,JavaBean對象結束生命週期。
 
三、session範圍內
javaBean對象被建立後,它存在於整個Session的生存週期內,同一個Session中的JSP文件共享這個JavaBean對象
javaBean對象做爲屬性保存在HttpSession對象中,屬性名爲JavaBean的id,屬性值爲javaBean對象。除了能夠經過JavaBean的id直接引用JavaBean對象外,也能夠經過HttpSession.getAttribute()方法取得JavaBean對象,例如:
CounterBean obj=(CounterBean)session.getAttribute("myBean");
 
四、application的範圍
JavaBean對象被建立後,它存在於整個Web應用的聲明週期內,Web應用中的全部JSP文件都能共享同一個JavaBean對象。
JavaBean對象做爲屬性保存在application對象中,屬性名爲JavaBean的id,屬性值爲JavaBean對象,除了能夠經過JavaBean的id直接引用JavaBean對象外,也能夠經過application.getAttribute()方法取得JavaBean對象,例如:
CounterBean obj=(CounterBean)application.getAttribute("myBean");
 
 
七、在session、application中屢次訪問同一個頁面的時候,(這個頁面裏面有<jap:useBean:    ……> 生成這個對象)系統經過以下方式進行判斷,是否生成對象!
session的<jsp:useBean:>語句生成的代碼,application原理相似。
 
注:日期(Date)放在session中的話是不會變的 ,就不會隨着時間的變化而變化了。會一直是生成日期這個類那個時候的時間
 
五、PageContext(系統內的對象)的setAttribute()方法
scope屬性決定了JavaBean對象存在的範圍。
scope的可選值包括:
---page(默認值)
---request
---session
---application
 
一、page範圍內:
客戶每次請求訪問JSP頁面時,都會建立一個JavaBean對象。JavaBean對象的有效範圍是客戶請求訪問的當前JSP網頁。JavaBean對象在如下兩種狀況下都會結束生命期:
---客戶請求訪問的當前JSP網頁經過<forward>標記將請求轉發到另外一個文件
---客戶請求訪問的當前JSP頁面執行完畢並向客戶端發回響應
 
二、request範圍內:
客戶每次請求訪問JSP頁面時,都會建立新的JavaBean對象。JavaBean對象的有效範圍爲:
---客戶請求訪問的當前JSP網頁
---和當前JSP網頁共享同一個客戶請求的網頁,即當前JSP網頁中<%@ include>指令以及<forward>標記包含的其餘JSP頁面
---當全部共享同一個客戶請求的JSP頁面執行完畢並向客戶端發回響應時,JavaBean對象結束生命週期。
 
三、session範圍內
javaBean對象被建立後,它存在於整個Session的生存週期內,同一個Session中的JSP文件共享這個JavaBean對象
javaBean對象做爲屬性保存在HttpSession對象中,屬性名爲JavaBean的id,屬性值爲javaBean對象。除了能夠經過JavaBean的id直接引用JavaBean對象外,也能夠經過HttpSession.getAttribute()方法取得JavaBean對象,例如:
CounterBean obj=(CounterBean)session.getAttribute("myBean");
 
四、application的範圍
JavaBean對象被建立後,它存在於整個Web應用的聲明週期內,Web應用中的全部JSP文件都能共享同一個JavaBean對象。
JavaBean對象做爲屬性保存在application對象中,屬性名爲JavaBean的id,屬性值爲JavaBean對象,除了能夠經過JavaBean的id直接引用JavaBean對象外,也能夠經過application.getAttribute()方法取得JavaBean對象,例如:
CounterBean obj=(CounterBean)application.getAttribute("myBean");
 
 
七、在session、application中屢次訪問同一個頁面的時候,(這個頁面裏面有<jap:useBean:    ……> 生成這個對象)系統經過以下方式進行判斷,是否生成對象!
session的<jsp:useBean:>語句生成的代碼,application原理相似。
  JSP中scope屬性


注:日期(Date)放在session中的話是不會變的 ,就不會隨着時間的變化而變化了。會一直是生成日期這個類那個時候的時間
 
五、PageContext(系統內的對象)的setAttribute()方法
 
JSP中scope屬性
相關文章
相關標籤/搜索