(三十四):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/)博客