scope取默认,page,request,session,application的区别

来源:互联网 发布:你对大数据的理解 编辑:程序博客网 时间:2024/06/08 04:53

原文网址:http://blog.sina.com.cn/s/blog_4b66675d0100fmdi.html

 

自己做实验讨论一下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,可能是版本问题,有待考证。
原创粉丝点击