(三十四):JavaBean的保存范围 (JSP学习第十天)

JavaBean的保存范围

<jsp:useBean>存在一个scope属性,表示一个JavaBean的保存范围
保存范围一共有四种,page,request,session,application

用于计数操作 Count.java

package com.test.demo;
public class Count{
 private int  count=0;
 public Count(){
  System.out.println("一个新Count对象产生");
 }
 public int getCount(){
  return ++this.count;
 }
}

打包编译后存放到WEB-INF/classes文件夹中

 

page 范围的JavaBean

定义page范围的JavaBean page_bean01.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="page" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
<jsp:forward page="page_bean02.jsp"/>
</body>
</html>

跳转后的页面page_bean02.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="page" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
</body>
</html>

Tomcat后台输出:一个新Count对象产生
      一个新Count对象产生

 

request 范围的JavaBean

如果一个JavaBean设置成了request范围,则在一次服务器跳转后,将不会重复声明JavaBean对象

设置request范围的JavaBean并跳转 request_bean01.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="request" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
<jsp:forward page="request_bean02.jsp"/>
</body>
</html>

跳转后的页面 request_bean02.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="request" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
</body>
</html>

显示:第二次访问
Tomcat后台输出:一个新Count对象产生

 

session范围的JavaBean

当一个用户连接到Jsp页面后,此session范围的JavaBean将会一直保留,
用户无论如何操作,都不会重新声明新的JavaBean对象

设置session范围的JavaBean session_bean01.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="session" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
</body>
</html>

只要页面刷新,count就会一直往上计数,只有使用一个新的session才会重新声明JavaBean

 

application范围的JavaBean

application范围的JavaBean是所有用户共同拥有的,只要声明后,所有用户都可以直接访问

定义application范围的JavaBean application_bean.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>测试</title>
<jsp:useBean id="cou" scope="application" class="com.test.demo.Count"/>
</head>
<body>
<h2>第<jsp:getProperty name="cou" property="count"/>次访问</h2>
</body>
</html>

除非关闭服务器,JavaBean对象才会消失

 

 

(本文来自http://www.cnblogs.com/techstan/)博客

posted @ 2011-10-10 13:40  techstan  阅读(1311)  评论(0编辑  收藏  举报