- 论坛徽章:
- 0
|
JavaBean的保存范围
<jsp:useBean>存在一个scope属性,表示一个JavaBean的保存范围
保存范围一共有四种,page,request,session,application
用于计数操作 Count.java
view sourceprint?
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
view sourceprint?
<%@ 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
view sourceprint?
<%@ 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
view sourceprint?
<%@ 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
view sourceprint?
<%@ 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
view sourceprint?
<%@ 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
view sourceprint?
<%@ 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/)博客 |
|