手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

浅析jsp中usebean的作用域

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
首先申明本测试用例非本人原创,启发来源于互联网上某篇文摘,下面切入正题:)。先看测试代码,很简单,一个Java文件和一个JSP文件。
Test.java
package test;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Test {
Date d=new Date();
public Test() {
//super();
System.out.println("在构造方法中");
// TODO Auto-generated constructor stub
}
public String getDateTime(){
System.out.println("在实例方法中");
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
String now=format.format(d);
return now;
}
}
index.jsp
<%@page language="java" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="tobby" class="test.Test" scope="page"/>
<%= tobby.getDateTime()%>
OK,下面开始我们的测试
1.page/request
scopepage或者request的时候,我每一次刷新页面或者新开一个页面,页面上总是显示的最新的时间,并且在“构造方法中”“在实例方法中”总是成对出现,这说明了当scopepage或者request的时候,每次装载页面都会重新调用构造方法生成该bean的一个实例,这就导致了页面上的时间每次都是变化的。(因为在调用构造方法的时候,会执行Date d=new Date(),从而生成一个新的时间)
2.session
ok,我现在把scope改为session,再来刷新页面或者新开一个页面进入,看会出现什么情况。这时会看到任凭你如何刷新页面时间都不变了,但是如果新开一个页面进入时间就和前一个页面不同了,但之后再怎么刷新也不会变了。另外,在刚进入页面时,会同时出现

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!