`

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,那将得到不正确的结果

分享到:
评论

相关推荐

    jsp获取javaBean数据+scope获取访问次数

    在这个场景下,我们将探讨如何在JSP页面中获取JavaBean的数据以及如何利用scope来统计访问次数。 首先,让我们深入了解一下JavaBean。JavaBean遵循以下规范: 1. 是一个公共类,且非抽象。 2. 有一个无参数的构造器...

    javabean表现与实现分离

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

    javaBean的详细介绍

    1. 属性(Properties):JavaBean 的属性是指 JavaBean 中的变量或字段,它可以是基本数据类型如 int、double 等,也可以是对象类型如 String、Array 等。 2. 方法(Method):JavaBean 的方法是指 JavaBean 中的...

    javabean基础知识

    还可以通过`scope`属性设置JavaBean的作用域。 ```jsp &lt;jsp:useBean id="yourBeanInstanceName" class="package.class" scope="page|request|session|application"/&gt; ``` - `id`属性:用来绑定Bean实例的变量名...

    JavaBean及内省文档

    JavaBean 的属性可以是任意类型,并且一个 JavaBean 可以拥有多个属性。为了方便访问这些属性,通常会为每个属性提供对应的 getter 和 setter 方法。 - **Getter 方法**:以 `get` 开头,后面紧跟属性名,首字母...

    JSP课件-javabean的使用教程

    其中,`id`是JavaBean的引用名,`class`是JavaBean的全限定类名,`scope`指定作用域(page, request, session或application)。 2. **初始化JavaBean**:如果JavaBean需要初始化数据,可以在`&lt;jsp:setProperty&gt;`...

    javaBean简介.doc

    3. **属性类型与数量**:JavaBean 的属性可以是任意Java类型,一个JavaBean可以有多个属性。例如,`User` 类可能包含 `username`、`password` 和 `hobby` 等属性。 4. **setter/getter 方法**:setter 方法(如 `...

    JavaBean组件程序设计

    这里的`id`属性指定了JavaBean在页面中的引用名,`scope`决定了JavaBean的作用范围,可以是`page`、`request`、`session`或`application`。`jsp:setProperty`和`jsp:getProperty`分别用于设置和获取属性值,`...

    JavaBean在JSP中的典型应用

    - 在这里,`id`属性定义了JavaBean在JSP页面上的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性指定了JavaBean的作用范围,可以是`page`, `request`, `session`或`application`。 2. **设置和获取...

    JavaBean总结

    通过JSP标签或其他Java API,开发者能够轻松地在JSP页面中创建、初始化、修改和显示JavaBean的属性。 总之,JavaBean是Java开发中的一个重要组成部分,它简化了组件的创建和使用,促进了代码的复用,提高了开发效率...

    javabean教程[2]

    这里的`id`属性是JavaBean的唯一标识符,`scope`表示其作用域,`class`则是JavaBean的全限定类名。 2. `&lt;jsp:setProperty&gt;`标签 `&lt;jsp:setProperty&gt;`用于设置JavaBean的属性值。它通常与`&lt;jsp:useBean&gt;`配合使用,...

    JavaBean技术

    除了`&lt;jsp:useBean&gt;`之外,还可以使用`&lt;jsp:getProperty&gt;`和`&lt;jsp:setProperty&gt;`来获取和设置JavaBean的属性值。 - `&lt;jsp:getProperty&gt;`用于获取JavaBean的属性值。 - `&lt;jsp:setProperty&gt;`用于设置JavaBean的属性值...

    jsp调用javabean的问题

    这里的`id`属性定义了JavaBean在页面作用域内的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用范围,可以是page、request、session或application。 当JSP遇到`&lt;jsp:useBean&gt;`...

    JavaBean学习资料

    JavaBean是Java编程语言中的一种特定类,它遵循一定的规范,用于封装数据并提供属性访问。在JavaWeb开发中,JavaBean通常作为业务逻辑层(Business Logic Layer)的一部分,用来存储和处理数据,同时也可以作为组件...

    小谈JavaBean

    标签的`id`属性定义了JavaBean的唯一标识,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用域(page, request, session, 或 application)。如果已存在相同ID和作用域的JavaBean实例,那么...

    javabean 学习(适合初学者)

    1. **简化开发**:通过提供预定义的行为和属性,JavaBean 可以帮助开发者快速构建功能模块。 2. **提高代码质量**:良好的封装性和模块化特性使得 JavaBean 能够降低系统复杂度,提高代码的可维护性和可读性。 3. **...

    javabean的详解

    JavaBean是一种Java类,它遵循特定的编写规则,并且被设计用于封装一组属性以及这些属性的操作方法(通常称为getter和setter)。JavaBean是Java平台的一种标准组件模型,广泛应用于各种Java应用程序中,尤其是在Web...

    JavaBean和JSP中的标准动作_总结与作业

    这里的`id`属性定义了Bean实例的名称,`scope`定义了作用域,`class`指定了JavaBean的完整类路径。 接着,我们可以使用`&lt;jsp:setProperty&gt;`动作来设置JavaBean的属性值。如果表单提交的数据和JavaBean的属性名一致...

    Jsp+Javabean教程《共享》

    - **解析**:上述 `FirstJavaBean` 类定义了一个简单的 JavaBean,其中包含了 `firstProperty` 属性,并提供了对应的 `get` 和 `set` 方法。此类可以通过 JSP 的 `&lt;jsp:useBean&gt;` 标签进行实例化,并通过 `...

    四大属性范围内的javabean(完整版)实用资料.doc

    这个标签有一个重要的属性`scope`,用于定义Javabean的作用域,即Javabean的生命周期和可见性。以下是四个主要的Javabean作用域: 1. **page**:当`scope`设置为`page`时,Javabean只在当前的JSP页面内有效。这意味...

Global site tag (gtag.js) - Google Analytics