JavaBean的生命周期

<%@page contentType="text/html;charset=GB2312"%>
public class Counter
{
   private int counter=0;
   public String getCounter()
   {
      return ""+counter++
   }
}
1.page范围
<html>
<body>
<jsp:useBeen id="obj" class="Counter" scope="page"/>
当前计数是:<jsp:getProperty name="obj" property="counter"/><br>
</body>
</html>
无论你如何刷新页面显示永远是1.原因是,在page范围里,当页面开始执行,组件创立,页面执行完

毕后组件被销毁,每次刷新时一个新的JavaBean被创建,又开始重复执行。
2.request范围
<html>
<body>
<jsp:useBeen id="obj" class="Counter" scope="request"/>
当前计数是:<jsp:getProperty name="obj" property="counter"/><br>
<jsp:forward page="a.jsp">
</body>
</html>
显示为2.
3.session范围
<html>
<body>
<jsp:useBeen id="obj" class="Counter" scope="session"/>
当前计数是:<jsp:getProperty name="obj" property="counter"/><br>
</body>
</html>
在一个浏览器中每刷新一次刷新会增加1,一旦关闭浏览器,信息销毁。再打开浏览器时,由从1开始
4.application范围
<html>
<body>
<jsp:useBeen id="obj" class="Counter" scope="application"/>
当前计数是:<jsp:getProperty name="obj" property="counter"/><br>
</body>
</html>
无论打开浏览器,重启浏览器,计数只会自增1.只在web应用程序重新启动时数据才重新至于零




JSP中JavaBean是通过标签<jsp:useBean>来声明实现的,基本语法如下:

<jsp:userBean id="beanName" class="className" scope="page/request/session/application></jsp:userBean>。

JavaBean的生命通过scope属性来描述的,也就是JavaBean的实例id在JSP程序中存在的范围。下面看看具体的scope四个值的含义:

page-JavaBean对象保存在pageContext对象中,有page范围JavaBean实例只能在当前创建这个JavaBean的JSP文件中进行操作,这个实例只有在请求返回给客户端后或者转移到另外的JSP页面后才会释放掉。page范围的JavaBean常用于进行一次性操作的JavaBean,这样的Bean用的最多,比如大部分表单提交,Bean的一些计算处理等都可以使用page范围的JavaBean。

request-JavaBean对象保存在request对象中,有request范围的JavaBean实例可以在处理请求所有JSP页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉,request范围的JavaBean常用于共享同一次请求的JSP页面中,比如判断用户登录功能,如果用户名密码合法就可以forward到一个合法页面中,否则就forward到一个出错页面,当然转移后的页面仍然能够得到用户的输入。

session-JavaBean对象是保存在session范围的JavaBean实例的生存周期是整个session,只有当session过期后才能释放掉,这样常用于共享同一session的JSP页面,比如购物车一般就是放在session中的或者登陆后的用户信息等也可以在session中,注意<%@page标签中不要设置session=false,否则在这个JSP页面中session将不会起作用,幸好JSP默认session=true,所以可以不必管它了。

application-JavaBean对象保存在application对象中,有application范围的JavaBean对象的生存周期是整个application。这就意味着这样的JavaBean的生存周期是整个应用程序,当web Server停掉才会消失掉。这样的常用于共享同一application的JSP程序中,比如程序中一些经常用到配置东西如数据库连接URL,全局的计数器或者是聊天室中人员信息等


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值