jsp useBean scope屬性的區分

來源:互聯網
上載者:User

      scope屬性用於指定JavaBean執行個體對象所儲存的域範圍,其取值只能是page、request、session和application四個值中的一個,其預設值是page。

      我可以測試下面代碼:

date.jsp

---------------------------------------------------------

<jsp:useBean id="currentDate" class="java.util.Date" scope="request" />
<%=currentDate.toString() %>

 

測試結果:

1、當scope=application時,我們瀏覽date.jsp,這時顯示出了系統時間。可是不管我們怎麼重新整理,另外開啟一個瀏覽器,甚至換台機 器,它顯示的時間始終不變,都是當初的時間(即bean剛建立時得到的系統時間),因為scope=application,所以JavaBean的執行個體在記憶體中只有一份,此時只要不重新啟動WEB服務,輸出不會變化。

2、當scope=session時,瀏覽date.jsp,重新整理時顯示也不會變化。可是當我們重新開啟一瀏覽器,即一個新的session,系統便再次建立JavaBean的執行個體,取得當前系統時間,這時將得到正確的時間。同樣,再次重新整理新開啟的頁面,顯示也不會變化。

3、當scope=page/request時,不斷重新整理頁面將不斷得到當前系統時間。

 

scope屬性的各個設定值的意義和作用:

(1)page表示將JavaBean執行個體對象儲存在PageContext對象中,作用範圍是當前JSP頁面有效。

(2)request表示將JavaBean執行個體Object Storage Service在ServletRequest對象中,儲存在request對象中的JavaBean對象可以被屬於同一個請求的所有Servlet和JSP頁面訪問。

(3)session表示將JavaBean執行個體Object Storage Service在HttpSession對象中,儲存在HttpSession對象中的JavaBean對象可以被屬於同一個會話的所有Servlet和JSP頁面訪問,此設定要求當前JSP頁面支援Session,即沒有將page指令的session屬性設定為false。也就是對一個特定使用者有效,一個http會話。

(4)application表示將JavaBean執行個體Object Storage Service在ServletContext對象中,儲存在ServletContext對象中的JavaBean對象可以被同一個Web應用程式中的所有Servlet和JSP頁面訪問。也就是所有使用者都可以使用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.