对于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来统计访问次数。 首先,让我们深入了解一下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. **...
JavaBean是一种Java类,它遵循特定的编写规则,并且被设计用于封装一组属性以及这些属性的操作方法(通常称为getter和setter)。JavaBean是Java平台的一种标准组件模型,广泛应用于各种Java应用程序中,尤其是在Web...
这里的`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页面内有效。这意味...