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

来源:互联网 发布:剑网三dbm数据库 编辑:程序博客网 时间:2024/05/16 11:55

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的值为0public 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所示:




0 0
原创粉丝点击