`

JAVABEAN的SCOPE属性

 
阅读更多

对于JSP 程序而言,使用JavaBeans  组件不仅可以封装许多信息,而且还可以将一些

数据处理的逻辑隐藏到JavaBeans  的内部,除此之外,我们还可以设定JavaBeans  的Scope

属性,使得JavaBeans  组件对于不同的任务具有不同的生命周期和不同的使用范围。在

前面我们已经提到过Scope属性具有四个可能的值分别是application 、session 、request

page分别代表JavaBeans  的四种不同的生命周期和四种不同的使用范围。bean只有在它定义的范围里才能使用,在它的活动范围外将无法访问到它。JSP为它设定的范围有:

page:  bean的缺省使用范围

request:作用于任何相同请求的JSP文件中,直到页面执行完毕向客户端发回响应或在此这之前已通过某种方式(如重定向、链接等方式)转到另一个文件为止。还可通过使用    Request对象访问bean,如request.getAttribute(beanName)

session:作用于整个session的生存周期内,在session的生存周期内,对此bean属性的任何改动,都会影响到在此session内的另一page、另一request里对此bean的调用。但必须在创建此bean的文件里事先用page指令指定了session=true

application:作用于整个application的生存周期内,在application周期内,对此bean属性的任何改动,都会影响到此application内另一page、另一request以及另一session里对此bean的调用。

下面我们用一个最为简单的例子来搞明白它了。

例子很简单,Bean的功能为取当前时间,其代码为Common.java,其源程序如下:

package example3;

import java.util.Date;

import java.text.*;

public class Common

{

Date d=new Date();

public String now(String s)

{

SimpleDateFormat formatter = newSimpleDateFormat(s);

return formatter.format(d);

}

}

测试页面的代码为:

date.jsp

<jsp:useBeanscope="page" id="dt" class="example.Common"/>

<%

out.print(dt.now("yyyy-mm-dd"));

%>

输出结果:

 

总结: 

1、当scope=application时,我们浏览date.jsp,这时显示出了系统时间。可是不管我们怎么刷新,重新打开一次浏览器,甚至换台机器,它显示的时间始终不变,都是当初的时间(即bean刚创建时得到的系统时间),因为scope=application,所以Bean的实例在内存中只有一份,此时只要不重新启动WEB服务,输出不会变化。

2、当scope=session时,浏览date.jsp,刷新时显示也不会变化。可是当我们重新打开一浏览器,即一个新的session,系统便再次创建Bean的实例,取得当前系统时间,这时将得到正确的时间。同样,再次刷新新打开的页面(新的session),显示也不会变化。

3、当scope=page/request(它们的区别只在于包含静态文件时,此处无区别)时,不断刷新页面将不断得到当前系统时间。

以上可以看出不同的scope,Bean有不同的作用域。使用时一定注意,不要将得到经常变动的Bean的scope设为application或session,那将得到不正确的结果

分享到:
评论

相关推荐

    javabean表现与实现分离

    javabean表现与实现分离 在JSP中使用JavaBean JavaBean的Scope属性 在Web服务器上部署JavaBean

    jsp结合javabean的实践

    Jsp结合JavaBean的实践(用到HashMap) javaBean的用处主要在于存取页面信息,通过getXXX和setXXX方法实现。 1、声明javaBean &lt;jsp:useBean id="localName" class="com.jguru.Person" scope="application" /&gt; Id:...

    Spring IOC Bean标签属性介绍(教学视频+源代码)

    Spring IOC Bean标签属性介绍 0.Bean标签属性介绍 1.0 新建一个Maven工程 1.1 pom.xml 1.2 实体类JavaBean 1.2.1 User类 1.3 当Scope="singleton"时 1.4 当 Scope="singleton" 且 lazy-init="true" 时 1.5 当scope=...

    Javaweb:JavaBean实验

    1、 创建学生成绩的表单页面,并创建对应的JavaBean,在JSP页面中使用标签来设置和读取属性 2、 在多个页面间测试JavaBean的作用范围,通过实验对scope为page,request,session,application加强理解

    等差等比求和

    等差的求和以及等比求和。 Javabean模型Example6_1_Bean.java中的getXxx和setXxx方法不涉及对数据的具体处理细节,以便增强模型...在本例子中Example6_1_Bean创建的Javabean模型的id是seriesData,scope取值是request。

    关于jsp语法和练习

    2. JSP页面需要创建仅在本页面使用的JavaBean的示例,为了完成此功能必须使用jsp:useBean的哪两个属性进行设置?(选择两个选项) A. id B. type C. name D. class E. scope F. create 答案: A, D Scope 默认值为...

    JSP网上订餐系统毕业论文

    4.5.2 JavaBeans的Scope属性 31 4.7 Tomcat配置 33 4.7.1 Server.xml文件配置 33 4.8 数据库编程 35 4.8.1数据库编程基础及语法 35 4.8.2 本系统中的连接方式 37 第五章 测试问题及解决 38 5.1 java汉字处理问题及...

    Java-Web程序设计题库(1).doc

    A、nameB、paramC、propertyD、scope 20、以下方法中,哪一个方法不是HTTPServlet类的方法( B )。 A、doGetB、doServiceC、doPostD、doDelete 21、以下类中,哪一个类不是javax.servlet和javax.servlet.http包中...

    Java-Web程序设计题库(2).doc

    A、name B、param C、property D、scope 20、以下方法中,哪一个方法不就是Servlet类得方法( B )。 A、doGet B、doService C、doPost D、doDelete 21、以下类中,哪一个类不就是javax、servlet与...

    Java-Web程序设计题库.doc

    A、name B、param C、property D、scope 20、以下方法中,哪一个方法不就是HTTPServlet类的方法( B )。 A、doGet B、doService C、doPost D、doDelete 21、以下类中,哪一个类不就是javax、servlet与javax、servlet、...

    JSP2.0技术手册pdf(带示例源码).zip

    5-1 属性( Attribute ) 与范围( Scope ) 5-2 与 Servlet 有关的隐含对象 5-3 与 Input / Output 有关的隐含对象 5-4 与 Context 有关的隐含对象 5-5 与 Error 有关的隐含对象 第六章 Expression Language 6-1 EL ...

    jsp servlet 入门学习资料-新手一看就懂

    4.6.1 id和scope属性 4.6.2 标准动作 第5章 作为XML的JSP 5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 ...

    jsp从入门到高级编程

    4.6.1 id和scope属性 4.6.2 标准动作 第5章 作为XML的JSP 5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 ...

    JSP高级教程

    4.6.1 id和scope属性 4.6.2 标准动作 第5章 作为XML的JSP 5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 ...

    JSP 程序设计从入门到精通 PDF 教程

     3.3 JavaBeans的scope属性 57  3.4 JavaBeans应用实例 59  3.4.1 实例1(HelloWord.java) 59  3.4.2 实例2(People.java) 60  3.4.3实例子3数组应用 (Example2_3.java) 60  3.4.4实例子4运算符、...

    JAVA项目源代码的笔记

     显示变量的值。   User user = new User();  user.setUserName( "Janet" );... &lt;bean:define id="myName" name="user" property="userName" scope="request"/&gt;  &lt;bean:write name="myName"/&gt;

    JSP高级编程

    4.6.1 id和scope属性 4.6.2 标准动作 第5章 作为XML的JSP 5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 ...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    &lt;scope&gt;application&lt;/scope&gt; &lt;/properties&gt; &lt;/destination&gt; 服务名称通过 destination 的 id 属性指定,Flex 前端通过该服务名称来进行远程调用。scope 指定为 application,表示该对象是一个全局对象。 ...

Global site tag (gtag.js) - Google Analytics