?? 一個(gè)區(qū)分bean的作用域的例子,即jspusebean scope=xx的scope屬性.txt
字號(hào):
作者:yukuang
email: yukuang@163.net
日期:7/27/2001 4:18:43 PM
以前很不明白Bean的scope屬性的含義,今天做了一個(gè)實(shí)驗(yàn),終于差不多搞明白了。貼出來(lái)與大家共享。
例子很簡(jiǎn)單,Bean的功能為取當(dāng)前時(shí)間,其代碼為:
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);
}
}
測(cè)試頁(yè)面的代碼為:
date.jsp
-----------------------------------------------------------
<jsp:useBean id="cm" scope="XX" class="XX.Common"/>
<%=cm.now("yyyy-MM-dd HH:mm:ss") %>
測(cè)試結(jié)果:
1、當(dāng)scope=application時(shí),我們?yōu)g覽date.jsp,這時(shí)顯示出了系統(tǒng)時(shí)間。可是不管我們?cè)趺此⑿?,重新打開(kāi)一次瀏覽器,甚至換臺(tái)機(jī)器,它顯示的時(shí)間始終不變,都是當(dāng)初的時(shí)間(即bean剛創(chuàng)建時(shí)得到的系統(tǒng)時(shí)間),因?yàn)閟cope=application,所以Bean的實(shí)例在內(nèi)存中只有一份,此時(shí)只要不重新啟動(dòng)WEB服務(wù),輸出不會(huì)變化。
2、當(dāng)scope=session時(shí),瀏覽date.jsp,刷新時(shí)顯示也不會(huì)變化??墒钱?dāng)我們重新打開(kāi)一瀏覽器,即一個(gè)新的session,系統(tǒng)便再次創(chuàng)建Bean的實(shí)例,取得當(dāng)前系統(tǒng)時(shí)間,這時(shí)將得到正確的時(shí)間。同樣,再次刷新新打開(kāi)的頁(yè)面(新的session),顯示也不會(huì)變化。
3、當(dāng)scope=page/request(它們的區(qū)別只在于包含靜態(tài)文件時(shí),此處無(wú)區(qū)別)時(shí),不斷刷新頁(yè)面將不斷得到當(dāng)前系統(tǒng)時(shí)間。
以上可以看出不同的scope,Bean有不同的作用域。使用時(shí)一定注意,不要將得到經(jīng)常變動(dòng)的Bean的scope設(shè)為application或session,那將得到不正確的結(jié)果.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -