以前很不明白Bean的scope属性的含义,今天做了一个实验,终于差不多搞明白了。贴出来与大家共享。
例子很简单,Bean的功能为取当前时间,其代码为:
Common.java:
--------------------
package XX;
import java.util.Date;
import java.text.*;
public class Common
{
Date d=new Date();
public String now(String s)
{
SimpleDateFormat formatter = new SimpleDateFormat(s);
return formatter.format(d);
}
}
测试页面的代码为:
date.jsp
-----------------------------------------------------------
<jsp:useBean id="cm" scope="XX" class="XX.Common"/>
<%=cm.now("yyyy-MM-dd HH:mm:ss") %>
测试结果:
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来统计访问次数。 首先,让我们深入了解一下JavaBean。JavaBean遵循以下规范: 1. 是一个公共类,且非抽象。 2. 有一个无参数的构造器...
javabean表现与实现分离 在JSP中使用JavaBean JavaBean的Scope属性 在Web服务器上部署JavaBean
1. 属性(Properties):JavaBean 的属性是指 JavaBean 中的变量或字段,它可以是基本数据类型如 int、double 等,也可以是对象类型如 String、Array 等。 2. 方法(Method):JavaBean 的方法是指 JavaBean 中的...
还可以通过`scope`属性设置JavaBean的作用域。 ```jsp <jsp:useBean id="yourBeanInstanceName" class="package.class" scope="page|request|session|application"/> ``` - `id`属性:用来绑定Bean实例的变量名...
JavaBean 的属性可以是任意类型,并且一个 JavaBean 可以拥有多个属性。为了方便访问这些属性,通常会为每个属性提供对应的 getter 和 setter 方法。 - **Getter 方法**:以 `get` 开头,后面紧跟属性名,首字母...
其中,`id`是JavaBean的引用名,`class`是JavaBean的全限定类名,`scope`指定作用域(page, request, session或application)。 2. **初始化JavaBean**:如果JavaBean需要初始化数据,可以在`<jsp:setProperty>`...
3. **属性类型与数量**:JavaBean 的属性可以是任意Java类型,一个JavaBean可以有多个属性。例如,`User` 类可能包含 `username`、`password` 和 `hobby` 等属性。 4. **setter/getter 方法**:setter 方法(如 `...
这里的`id`属性指定了JavaBean在页面中的引用名,`scope`决定了JavaBean的作用范围,可以是`page`、`request`、`session`或`application`。`jsp:setProperty`和`jsp:getProperty`分别用于设置和获取属性值,`...
- 在这里,`id`属性定义了JavaBean在JSP页面上的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性指定了JavaBean的作用范围,可以是`page`, `request`, `session`或`application`。 2. **设置和获取...
通过JSP标签或其他Java API,开发者能够轻松地在JSP页面中创建、初始化、修改和显示JavaBean的属性。 总之,JavaBean是Java开发中的一个重要组成部分,它简化了组件的创建和使用,促进了代码的复用,提高了开发效率...
这里的`id`属性是JavaBean的唯一标识符,`scope`表示其作用域,`class`则是JavaBean的全限定类名。 2. `<jsp:setProperty>`标签 `<jsp:setProperty>`用于设置JavaBean的属性值。它通常与`<jsp:useBean>`配合使用,...
除了`<jsp:useBean>`之外,还可以使用`<jsp:getProperty>`和`<jsp:setProperty>`来获取和设置JavaBean的属性值。 - `<jsp:getProperty>`用于获取JavaBean的属性值。 - `<jsp:setProperty>`用于设置JavaBean的属性值...
这里的`id`属性定义了JavaBean在页面作用域内的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用范围,可以是page、request、session或application。 当JSP遇到`<jsp:useBean>`...
JavaBean是Java编程语言中的一种特定类,它遵循一定的规范,用于封装数据并提供属性访问。在JavaWeb开发中,JavaBean通常作为业务逻辑层(Business Logic Layer)的一部分,用来存储和处理数据,同时也可以作为组件...
标签的`id`属性定义了JavaBean的唯一标识,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用域(page, request, session, 或 application)。如果已存在相同ID和作用域的JavaBean实例,那么...
1. **简化开发**:通过提供预定义的行为和属性,JavaBean 可以帮助开发者快速构建功能模块。 2. **提高代码质量**:良好的封装性和模块化特性使得 JavaBean 能够降低系统复杂度,提高代码的可维护性和可读性。 3. **...
这里的`id`属性定义了Bean实例的名称,`scope`定义了作用域,`class`指定了JavaBean的完整类路径。 接着,我们可以使用`<jsp:setProperty>`动作来设置JavaBean的属性值。如果表单提交的数据和JavaBean的属性名一致...
- **解析**:上述 `FirstJavaBean` 类定义了一个简单的 JavaBean,其中包含了 `firstProperty` 属性,并提供了对应的 `get` 和 `set` 方法。此类可以通过 JSP 的 `<jsp:useBean>` 标签进行实例化,并通过 `...
这个标签有一个重要的属性`scope`,用于定义Javabean的作用域,即Javabean的生命周期和可见性。以下是四个主要的Javabean作用域: 1. **page**:当`scope`设置为`page`时,Javabean只在当前的JSP页面内有效。这意味...