本章目标
掌握JavaBean的四种属性范围的特点。

 

JavaBean的保存范围
在<jsp:useBean>的指令上存在了一个scope属性,表示的是一个JavaBean的保存范围,保存的范围一共是四种:
page:保存在一页的范围之中,跳转之后此JavaBean无效;
request:一个JavaBean对象可以保存在一次服务器跳转范围中;
session:在一个用户的操作范围中保存,重新打开浏览器的时候才会声明新的JavaBean;
application:在整个服务器上保存,服务器关闭时才会消失。

 

用于计数的操作

package cn.demo;

public class Count {
	private int count=0;//定义count属性
	public Count(){
		System.out.println("========= 一个新的Count对象产生=========");
	}
	public int getCount(){
		return ++this.count;//每次自增之后返回
	}
}

 

page范围的JavaBean

<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>定义page范围的JavaBean</title>
</head>
<jsp:useBean id="cou" scope="page" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
	<jsp:forward page="demo1_f.jsp"></jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>跳转后的页面</title>
</head>
<jsp:useBean id="cou" scope="page" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
</body>
</html>

效果图:

JavaBean的保存范围_html

 

request范围的JavaBean

<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>定义request范围的JavaBean</title>
</head>
<jsp:useBean id="cou" scope="request" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
	<jsp:forward page="demo2_f.jsp"></jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>跳转后的页面</title>
</head>
<jsp:useBean id="cou" scope="request" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
</body>
</html>

 效果图:

JavaBean的保存范围_html_02

 

session范围的JavaBean

<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>定义session范围的JavaBean</title>
</head>
<jsp:useBean id="cou" scope="session" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
</body>
</html>

效果图:

JavaBean的保存范围_html_03


 

application范围的JavaBean

<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%>
<html>
<head>
	<title>定义application范围的JavaBean</title>
</head>
<jsp:useBean id="cou" scope="application" class="cn.demo.Count"></jsp:useBean>
<body>
	<h3>第<jsp:getProperty name="cou" property="count" />次访问!</h3>
</body>
</html>

效果图:

JavaBean的保存范围_java_04


小结

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