JavaBean详解---JavaBean的保存范围和删除JavaBean

JavaBean的保存范围

在<jsp:useBean>的指令上存在了一个scope属性,表示的是一个JavaBean的保存范围,保存的范围一共是四种

1):page:保存在一页的范围之中,跳转之后此JavaBean无效;

2):request:一个JavaBean对象可以保存在一次服务器跳转范围中;

3):session:在一个用户的操作范围中保存,重新打开浏览器的时候才会声明新的JavaBean。

4):application:在整个服务器上保存,服务器关闭时才会消失。


为了更好的验证JavaBean的范围,下面做一个简单的JavaBean,用于进行计数的操作

下面分别来观察属性范围:

【page_bean01.jsp的内容如下:】

<%@ page contentType="text/html" pageEncoding="GBK"%>

<html>

<head><title>javabean</title></head>

<jsp:useBean id="cou" scope="page" class="com.skewrain.demo.Count"/>

<body>

      <h3>第<jsp:getProperty name="cou" property="count"/>次访问!</h3>

</body>

</html>

执行此代码的结果如下:


服务器端的结果如下:



【page_bean02.jsp的内容如下:】

<%@ page contentType="text/html" pageEncoding="GBK"%>

<html>

<head><title>javabean</title></head>

    <jsp:useBean id="cou" scope="page" class="com.skewrain.demo.Count"/>

<body>

    <h3>第<jsp:getProperty name="cou" property="count"/>次访问!</h3>

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

</body>

</html>

我们刷新原来的执行页面,结果如下图所示:


服务器端一次增加了两个输出:


现在的对象只在一个JSP文件中保存,那么要想在一次跳转中保存,肯定就是request属性范围。

 

【request_bean01.jsp的内容如下:】

<%@ page contentType="text/html" pageEncoding="GBK"%>

<html>

<head><title>javabean</title></head>

    <jsp:useBean id="cou" scope="request" class="com.skewrain.demo.Count"/>

<body>

    <h3>第<jsp:getProperty name="cou" property="count"/>次访问!</h3>

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

</body>

</html>

【request_bean02.jsp的内容如下:】

<%@ page contentType="text/html" pageEncoding="GBK"%>

<html>

<head><title>javabean</title></head>

    <jsp:useBean id="cou" scope="request" class="com.skewrain.demo.Count"/>

<body>

    <h3>第<jsp:getProperty name="cou" property="count"/>次访问!</h3>

</body>

</html>

执行此代码的结果如下所示:



以此类推:

1):如果换为session属性,那么每刷新一次,那么次数就增加1,但是当新打开一个浏览器,次数又从0开始,而且,服务器重新启动的话,就创建了一个新的session。

2):如果换为application的话,那么每刷新一次,那么次数就增加1,但是当新打开一个浏览器,访问次数是接着上次的浏览器的访问次数增加,而且,服务器重新启动的话,就创建了一个新的session。


小结:

JavaBean一共包含了四种属性保存范围,这一点与JSP中的四种属性保存范围是一样的,唯一的区别就是page范围不用像在JSP那样通过pageContext指定了。


删除JavaBean

JavaBean虽然使用了<jsp:useBean>标签进行创建,但是其操作依靠的仍然是四种属性范围,如果一个JavaBean不再使用的话,则可以直接使用四种属性范围的removeAttribute()方法进行删除。

1):删除page范围的JavaBean可以使用:

     pageContext.removeAttribute(JavaBean名称)

2):删除request范围的JavaBean可以使用:

     request.removeAttribute(JavaBean名称)

3):删除session范围的JavaBean可以使用:

     session.removeAttribute(JavaBean名称)

4):删除application范围的JavaBean可以使用:

     application.removeAtttribute(JavaBean名称)。

例如:<% session.removeAttribute(“con”)%>

【remove_session.jsp内容如下:】

<%@ page contentType="text/html" pageEncoding="GBK"%>

<html>

<head><title>javabean</title></head>

    <jsp:useBean id="cou" scope="request" class="com.skewrain.demo.Count"/>

<body>

<h3>第<jsp:getProperty name="cou" property="count"/>次访问!</h3>

    <% session.removeAttribute(con)%>

</body>

</html>

每次刷新之后都会有一个新的对象产生,那么可以得出一个结论,每次的JavaBean声明id之后就是将对象保存在了属性范围之中。


小结:

JavaBean的删除依然使用了四种属性范围中提供的删除范围,所以实际上JavaBean就相当于是一个保存在指定范围中的属性。而且JavaBean的最大好处依然是结合表单来体现的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值