javabean的保存范围:
在<jsp:useBean>的指令上存在了一个scope属性,表示的是一个javabean的保存范围,
保存的范围一个四种:
·page----------保存在一个页面的范围之中,跳转之后此javabean失效;
·request-------保存在服务器一次跳转内
·response------保存在一次回话内,即浏览器打开到浏览器关闭
·application---在整个服务器上;
为了更好的验证javabean的范围,下面做一个简单的javabean,用于进行计数的操作;
Count.java:
package org.lid.demo;
public class Count{
private int count=0;
public Count(){
System.out.println("====一个新的Count对象产生=====");
}
public int getCount(){
return ++this.count;
}
}
下面来观察属性范围:
page_bean01.jsp:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<body>
<jsp:useBean id="cou" scope="page" class="org.lid.demo.CountBean"/>
<h3>第<jsp:getProperty name="cou" property="count"/></h3>
<jsp:forward page="page_bean02.jsp"/>
</body>
</html>
page_bean01.jsp:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<body>
<jsp:useBean id="cou" scope="page" class="org.lid.demo.CountBean"/>
<h3>第<jsp:getProperty name="cou" property="count"/>次</h3>
</body>
</html>
现在的对象只在一个jsp文件中保存,那么要想在一次跳转中保存,肯定是request范围
request_bean01.jsp
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<jsp:useBean id="cou" scope="request"
class="org.lid.demo.CountBean"/>
<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>这是测试</title></head>
<jsp:useBean id="cou" scope="request"
class="org.lid.demo.CountBean"/>
<body>
<h3>第<jsp:getProperty name="cou" property="count"/>次</h3>
</body>
</html>
CountBean创建一次,页面显示为2;
一下是session范围:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<jsp:useBean id="cou" scope="session"
class="org.lid.demo.CountBean"/>
<body>
<h3>第<jsp:getProperty name="cou" property="count"/>次</h3>
</body>
</html>
只要不关浏览器,刷新一次增加一次;
以下是application范围:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<jsp:useBean id="cou" scope="application"
class="org.lid.demo.CountBean"/>
<body>
<h3>第<jsp:getProperty name="cou" property="count"/>次</h3>
</body>
</html>
只要不重启tomcat,即使关闭浏览器后在打开,数据还是按照原来的增加,不出从1开始;