scope取默認,page,request,session,application的區別

scope取默認,page,request,session,application的區別

(2009-11-27 19:06:31)
標籤:

jsp

編程

軟件

scope

javabean

it

分類: 魔術

自己做實驗討論一下javabean中scope的不同取值的區別和其默認值問題。

1,先討論request,sessionapplication的區別,倆文件如下:

Trick.java

package trick;

import java.io.*;

public class Trick

{        int i=1;

         public int getI()

         { i++;

           return i;

         }

}

trick.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="trick.Trick"%>

<HTML><BODY>

         <jsp:useBean id="trick" class="trick.Trick" scope="request/session/application" />

         <jsp:getProperty name="trick" property="i" />

</BODY><HTML>


運行trick.jsp

Request: 刷新頁面3次屏幕顯示2,重啓瀏覽器屏幕顯示2

Session: 刷新頁面3次數字從2開始遞增至4,重啓瀏覽器屏幕重新從2開始遞增;

Application: 刷新頁面3次數字從2開始遞增4,重啓瀏覽器從4開始遞增。

 

結論:

應用範圍大小比較:request<session<application

Request: 請求期間有效

Session: 會話期間有效

Application: 服務器運行期間有效

 

2,因爲pageJSP自己弄出來的一範圍,所以單獨討論。

新增一個頁面:

trick1.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="trick.Trick"%>

<HTML><BODY>

         <jsp:useBean id="trick" class="trick.Trick" scope="request" />

         <jsp:getProperty name="trick" property="i" />

         <jsp:forward page="trick.jsp" />

</BODY><HTML>

 

運行trick1.jsp

Trick1.jsp,trick.jsp中同取scope=”request”: 屏幕顯示3

Trick1.jsp,trick.jsp中同取scope=”page”:屏幕顯示2;

結論:

應用範圍大小:page<request

Page:當前頁面有效


3scope不賦值的情況下的默認值。

trick1.jspscope=”request”

trick.jsp中去掉scope

運行trick1.jsp,屏幕顯示2,與scope=”page”時結果相同,故理論上默認值應爲page


看過一些文獻裏說默認值爲request,可能是版本問題,有待考證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章