明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

一個區(qū)分Bean的作用域的例子,即的scope屬性

[摘要]以前很不明白Bean的scope屬性的含義,今天做了一個實驗,終于差不多搞明白了。貼出來與大家共享。例子很簡單,Bean的功能為取當前時間,其代碼為:Common.java:------------...
以前很不明白Bean的scope屬性的含義,今天做了一個實驗,終于差不多搞明白了。貼出來與大家共享。
例子很簡單,Bean的功能為取當前時間,其代碼為:
Common.java:
--------------------
package XX;

import java.util.Date;
import java.text.*;

public class Common
{
Date d=new Date();
public String now(String s)
{
SimpleDateFormat formatter = new SimpleDateFormat(s);
return formatter.format(d);
}
}

測試頁面的代碼為:
date.jsp
-----------------------------------------------------------
<jsp:useBean id="cm" scope="XX" class="XX.Common"/>
<%=cm.now("yyyy-MM-dd HH:mm:ss")%>


測試結(jié)果:

1、當scope=application時,我們?yōu)g覽date.jsp,這時顯示出了系統(tǒng)時間?墒遣还芪覀冊趺此⑿拢匦麓蜷_一次瀏覽器,甚至換臺機器,它顯示的時間始終不變,都是當初的時間(即bean剛創(chuàng)建時得到的系統(tǒng)時間),因為scope=application,所以Bean的實例在內(nèi)存中只有一份,此時只要不重新啟動WEB服務(wù),輸出不會變化。

2、當scope=session時,瀏覽date.jsp,刷新時顯示也不會變化?墒钱斘覀冎匦麓蜷_一瀏覽器,即一個新的session,系統(tǒng)便再次創(chuàng)建Bean的實例,取得當前系統(tǒng)時間,這時將得到正確的時間。同樣,再次刷新新打開的頁面(新的session),顯示也不會變化。

3、當scope=page/request(它們的區(qū)別只在于包含靜態(tài)文件時,此處無區(qū)別)時,不斷刷新頁面將不斷得到當前系統(tǒng)時間。

以上可以看出不同的scope,Bean有不同的作用域。使用時一定注意,不要將得到經(jīng)常變動的Bean的scope設(shè)為application或session,那將得到不正確的結(jié)果.