Javaweb学习总结(五):JavaBean的作用域

JavaBean的最用于主要包括:page作用域 ,request作用域 ,session作用域,application作用域,JavaBean获取作用域数据。

page作用域:

 page作用域在这4种类型中范围是最小的,客户端每次请求访问时都会创建一个JavaBean对象。JavaBean对象的有效范围是客户请求访问的当前页面文件,当客户执行当前的页面文件完毕后JavaBean对象结束生命。在page范围内,每次访问页面文件时都会生成新的JavaBean对象,原有的JavaBean对象已经结束生命期。 

request作用域 :

当scope为request时,JavaBean对象被创建后,它将存在于整个request的生命周期内,request对象是一个内建对象,使用它的getParameter方法可以获取表单中的数据信息。Request范围的JavaBean与request对象有着很大的关系,它的存取范围除了page外,还包括使用动作元素<jsp:include>和<jsp:forward>包含的网页,所有通过这两个操作指令连接在一起的JSP程序都可以共享同一个JavaBean对象。 

session作用域:

当scope为session时,JavaBean对象被创建后,它将存在于整个session的生命周期内,session对象是一个内建对象,当用户使用浏览器访问某个网页时,就创建了一个代表该链接的session对象,同一个session中的文件共享这个JavaBean对象。客户对应的session生命期结束时JavaBean对象的生命也结束了。在同一个浏览器内,JavaBean对象就存在于一个session中。当重新打开新的浏览器时,就会开始一个新的session。每个session中拥有各自的JavaBean对象。 

application作用域:

当scope为application时,JavaBean对象被创建后,它将存在于整个主机或虚拟主机的生命周期内,application范围是JavaBean的生命周期最长的。同一个主机或虚拟主机中的所有文件共享这个JavaBean对象。如果服务器不重新启动,scope为application的JavaBean对象会一直存放在内存中,随时处理客户的请求,直到服务器关闭,它在内存中占用的资源才会被释放。在此期间,服务器并不会创建新的JavaBean组件,而是创建源对象的一个同步拷贝,任何拷贝对象发生改变都会使源对象随之改变,不过这个改变不会影响其它已经存在的拷贝对象。 

JavaBean获取作用域数据 (1):

通过下面的实例说明4个作用域:

首先,创建一个JavaBean:“Scope.java” 

package scope;
public class Scope {
	public Scope(){}                                        //无参的构造函数
	private int number=0;                                //初始化变量number的值为0
	public int getNmuber(){                             //增加并返回变量number的值
		number++;
		return number;
         }
	public void setNumber(int newNumber) {	
		this.number = newNumber;       //给变量number赋新值
	}
}  
然后,创建名称为“scope.jsp”的页面文件,用来显示JavaBean存在的范围的具体区别。主要代码:
<body>
       <jsp:useBean id="pageScope" scope="page" class="scope.Scope" />
         <% out.println("使用page获取的数据为:" + pageScope.getNmuber());%> 

       <jsp:useBean id="requestScope" scope="request" class="scope.Scope" />
       <%out.println("使用request获取的数据为:" + requestScope.getNmuber());%>

       <jsp:useBean id="sessionScope" scope="session" class="scope.Scope" />
       <% out.println("使用session获取的数据为:" + sessionScope.getNmuber()); %> 

       <jsp:useBean id="applicationScope" scope="application"class="scope.Scope" />
       <% out.println(“使用application获取的数据为:” +
                                  applicationScope.getNmuber());%> 
</body> 

程序运行结果如图1所示: 



关闭该浏览器,重新打开新的浏览器后的结果如图2所示:




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员springmeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值