javaBean的使用范围

<jsp:useBean>中的scope属性:用来设定JavaBean存在的范围:

1: page;

2: request;

3: session;

4: application

利用一个计数器说明,用一个JavaBean保存访问量,在JSP页面中调用。

首先建立一个SampleBean1.java 代码如下:

package ch04;
import java.io.*;

public class SampleBean1 {
public SampleBean1(){
}
   private int num=0;
   public void setNum(int num)
   {
    this.num=num;
   }
   public int getNum()
   {
    num++;
    return num;
   }
}

我们来看一下另外的知识点(一):

page范围:生命周期只能在一个页面里,只能在一个页面里存取该JavaBean,重新刷新页面时会将原来的JavaBean实例删除掉,产生一个新JavaBean实例.

<jsp:useBean id="..." class="..." scop="page">

JSP程序:Sample1.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="splBean" class="ch04.SampleBean1" scope="page"/>
<html>
<head>
<title>page范围JavaBean</title>
</head>
<body>

<center><p><font size="5">访问人次:<%=splBean.getNum()%><strong></strong></font></p></center>
</body>
</html>

运行结果可知:无论刷新页面还是新建页面访问人数总是1,不会改变,说明page的存在范围只在当前页面有效

知识点(二):

request范围(与page范围有些类似只是比page范围大一些):与request对象有很大关系,存取范围除了整个页面外,还包括动作元素<jsp:include>和<jsp:forword>包含的页面(也就是说它能在include和forword页面中生效),即原页面和包含的页面都可以访问原来产生的JavaBean实例。

<jsp:useBean id="..." class="..." scop="request">

JSP程序:Sample2.jsp 和Sample3.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<jsp:getProperty name="splBean" property="num"/>

在这个程序当中getProperty标签的作用和调用Bean的get()方法是一样的。现在就是去调用的getName()方法是num加一

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="splBean" class="ch04.SampleBean1" scope="request"/>
<html>
<head>
<title>page范围JavaBean</title>
</head>
<body>

<%=splBean.getNum()%>

<center><p><font size="5">访问人次:<jsp:include page="Sample2.jsp"flush="true"/><strong></strong></font></p></center>
</body>
</html>

这个程序里在include中将转入到Sample2.jsp页面即又调用了一次getNum();所以这个运行的时候访问人次2,刷新就没有用了。它也只能在当前页面和包括include和forword中有效。

知识点(三):

session范围:生命周期在一个链接里,可以在一个连接里访问该JavaBean(当用户使用浏览器访问某个网页时,就进行了一场连接,同时创建了一个代表该链接的session对象

<jsp:useBean id="..." class="..." scop="session">

JSP:程序:Sample4.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="splBean" class="ch04.SampleBean1" scope="session"/>
<html>
<head>
<title>page范围JavaBean</title>
</head>
<body>

<center><p><font size="5">访问人次:<%=splBean.getNum()%><strong></strong></font></p></center>
</body>
</html>

运行结果:当刷新一次页面的时候访问人次加1,但是当我们打开另外一个浏览器的时候它将重新计数。

知识点(四):

application范围:生命周期最长,只要Web服务器不重启,JavaBean就永远运行在服务器中,所以任何页面都可以使用该JavaBean 实例。

<jsp:useBean id="..." class="..." scop="session">

JSP:程序:Sample5.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="splBean" class="ch04.SampleBean1" scope="application"/>
<html>
<head>
<title>page范围JavaBean</title>
</head>
<body>

<center><p><font size="5">访问人次:<%=splBean.getNum()%><strong></strong></font></p></center>
</body>
</html>

运行结果:当刷新页面和打开另外一个页面的时候都会以原来的那个数加一;只有当服务器关闭的时候才停止运行。

缺点:常驻内存,消耗资源,重启服务器后清零。

用一个实例来综合运用JavaBean的作用范围

设计个人所得税计算器

个人所得税计算公式:
当月应缴个人所得税=(当月总收入-当地个人所得税起征额)×适合税率-速算扣除数

转自:http://hi.baidu.com/g882/blog/item/38b3903418d7aa44241f14f1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值